1 // See LICENSE for license details.
2 package sifive.blocks.devices.gpio
5 import diplomacy.LazyModule
6 import rocketchip.{TopNetwork,TopNetworkModule}
7 import uncore.tilelink2.TLFragmenter
10 this: TopNetwork { val gpioConfig: GPIOConfig } =>
11 val gpio = LazyModule(new TLGPIO(p, gpioConfig))
12 gpio.node := TLFragmenter(peripheryBusConfig.beatBytes, cacheBlockBytes)(peripheryBus.node)
13 intBus.intnode := gpio.intnode
16 trait PeripheryGPIOBundle {
17 this: { val gpioConfig: GPIOConfig } =>
18 val gpio = new GPIOPortIO(gpioConfig)
21 trait PeripheryGPIOModule {
22 this: TopNetworkModule {
23 val gpioConfig: GPIOConfig
24 val outer: PeripheryGPIO
25 val io: PeripheryGPIOBundle
27 io.gpio <> outer.gpio.module.io.port