More Peripheral-to-pins cleanups
This commit is contained in:
		@@ -22,10 +22,10 @@ trait HasPeripheryI2C extends HasSystemNetworks {
 | 
			
		||||
trait HasPeripheryI2CBundle {
 | 
			
		||||
  val i2cs: Vec[I2CPort]
 | 
			
		||||
 | 
			
		||||
  def toGPIOPins(syncStages: Int = 0): Seq[I2CGPIOPort] = i2cs.map { i =>
 | 
			
		||||
    val pin = Module(new I2CGPIOPort(syncStages))
 | 
			
		||||
    pin.io.i2c <> i
 | 
			
		||||
    pin
 | 
			
		||||
  def I2CtoGPIOPins(syncStages: Int = 0): Seq[I2CPinsIO] = i2cs.map { i =>
 | 
			
		||||
    val pins = Module(new I2CGPIOPort(syncStages))
 | 
			
		||||
    pins.io.i2c <> i
 | 
			
		||||
    pins.io.pins
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,10 +43,10 @@ trait HasPeripheryPWM extends HasSystemNetworks {
 | 
			
		||||
trait HasPeripheryPWMBundle {
 | 
			
		||||
  val pwms: HeterogeneousBag[PWMPortIO]
 | 
			
		||||
 | 
			
		||||
  def PWMtoGPIOPins(dummy: Int = 1): Seq[PWMGPIOPort] = pwms.map { p =>
 | 
			
		||||
    val pin = Module(new PWMGPIOPort(p.c))
 | 
			
		||||
    pin.io.pwm <> p
 | 
			
		||||
    pin
 | 
			
		||||
  def PWMtoGPIOPins(dummy: Int = 1): Seq[PWMPinsIO] = pwms.map { p =>
 | 
			
		||||
    val pins = Module(new PWMGPIOPort(p.c))
 | 
			
		||||
    pins.io.pwm <> p
 | 
			
		||||
    pins.io.pins
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -23,10 +23,10 @@ trait HasPeripherySPI extends HasSystemNetworks {
 | 
			
		||||
trait HasPeripherySPIBundle {
 | 
			
		||||
  val spis: HeterogeneousBag[SPIPortIO]
 | 
			
		||||
 | 
			
		||||
  def SPItoGPIOPins(syncStages: Int = 0): Seq[SPIGPIOPort] = spis.map { s =>
 | 
			
		||||
    val pin = Module(new SPIGPIOPort(s.c, syncStages))
 | 
			
		||||
    pin.io.spi <> s
 | 
			
		||||
    pin
 | 
			
		||||
  def SPItoGPIOPins(syncStages: Int = 0): Seq[SPIPinsIO] = spis.map { s =>
 | 
			
		||||
    val pins = Module(new SPIGPIOPort(s.c, syncStages))
 | 
			
		||||
    pins.io.spi <> s
 | 
			
		||||
    pins.io.pins
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -54,6 +54,15 @@ trait HasPeripherySPIFlash extends HasSystemNetworks {
 | 
			
		||||
 | 
			
		||||
trait HasPeripherySPIFlashBundle {
 | 
			
		||||
  val qspi: HeterogeneousBag[SPIPortIO]
 | 
			
		||||
 | 
			
		||||
  // It is important for SPIFlash that the syncStages is agreed upon, because
 | 
			
		||||
  // internally it needs to realign the input data to the output SCK.
 | 
			
		||||
  // Therefore, we rely on the syncStages parameter.
 | 
			
		||||
  def SPIFlashtoGPIOPins(syncStages: Int = 0): Seq[SPIPinsIO] = qspi.map { s =>
 | 
			
		||||
    val pins = Module(new SPIGPIOPort(s.c, syncStages))
 | 
			
		||||
    pins.io.spi <> s
 | 
			
		||||
    pins.io.pins
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
trait HasPeripherySPIFlashModuleImp extends LazyMultiIOModuleImp with HasPeripherySPIFlashBundle {
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,9 @@ trait HasPeripheryUARTBundle {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  def UARTtoGPIOPins(syncStages: Int = 0): Seq[UARTPinsIO] = uarts.map { u =>
 | 
			
		||||
    val pin = Module(new UARTGPIOPort(syncStages))
 | 
			
		||||
    pin.io.uart <> u
 | 
			
		||||
    pin.io.pins
 | 
			
		||||
    val pins = Module(new UARTGPIOPort(syncStages))
 | 
			
		||||
    pins.io.uart <> u
 | 
			
		||||
    pins.io.pins
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user