22
33from amaranth import *
44from amaranth .lib .cdc import FFSynchronizer
5+ from amaranth .lib import wiring
6+ from amaranth .lib .wiring import In
7+
8+ from amaranth_soc import gpio
59
610from amaranth_orchard .memory .spimemio import QSPIPins
7- from amaranth_orchard .base .gpio import GPIOPins
811from amaranth_orchard .io .uart import UARTPins
912from amaranth_orchard .memory .hyperram import HyperRAMPins
1013
@@ -29,34 +32,32 @@ def elaborate(self, platform):
2932 return m
3033
3134
32- class LEDGPIOProvider (Elaboratable ):
33- def __init__ (self ):
34- self .pins = GPIOPins (width = 8 )
35+ class LEDGPIOProvider (wiring .Component ):
36+ pins : In (gpio .PinSignature ()).array (8 )
3537
3638 def elaborate (self , platform ):
3739 m = Module ()
3840 for index in range (8 ):
3941 pin = platform .request (f"gpio_{ index } " )
4042 m .d .comb += [
41- self .pins . i [index ].eq (pin .i ),
42- pin .o .eq (self .pins . o [index ]),
43- pin .oe .eq (self .pins . oe [index ])
43+ self .pins [index ]. i .eq (pin .i ),
44+ pin .o .eq (self .pins [index ]. o ),
45+ pin .oe .eq (self .pins [index ]. oe ),
4446 ]
4547 return m
4648
4749
48- class ButtonGPIOProvider (Elaboratable ):
49- def __init__ (self ):
50- self .pins = GPIOPins (width = 2 )
50+ class ButtonGPIOProvider (wiring .Component ):
51+ pins : In (gpio .PinSignature ()).array (2 )
5152
5253 def elaborate (self , platform ):
5354 m = Module ()
5455 for index in range (2 ):
5556 pin = platform .request (f"btn_{ index } " )
5657 m .d .comb += [
57- self .pins . i [index ].eq (pin .i ),
58- pin .o .eq (self .pins . o [index ]),
59- pin .oe .eq (self .pins . oe [index ])
58+ self .pins [index ]. i .eq (pin .i ),
59+ pin .o .eq (self .pins [index ]. o ),
60+ pin .oe .eq (self .pins [index ]. oe ),
6061 ]
6162 return m
6263
0 commit comments