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