On 04/02/2025 23:39, Chris Packham wrote: > Hi, > > As Krzysztof points out in [1] I seem to have made a bit of a mess with > the mfd binding for the RTL9300 Ethernet switch with integrated CPU. I'm > spinning up this email thread separately so as not to unnecessarily spam > the netdev folks and to maybe appease google so it doesn't automatically > get flagged as junk. > > First off sorry for not providing a more complete binding initially, > Krzysztof suggested doing so a few times but I was concentrating on > landing the drivers. > > The RTL9300 has these basic blocks: > - rtl9300 > |- cpu@0 - mips34kc > |- soc@18000000 > |- intc > |- spi-nor > |- spi-nand > |- timer > |- gpio > `- uart > `- switch@1b000000 > |- ethernet-ports > |- mdio > |- i2c > |- reset > `- led/gpio > > The CPU/soc can be disabled and the switch managed by an external CPU > (register access over SPI I think, the docs are a bit vague). > > I think I probably inferred too much from mfd/mscc,ocelot.yaml when I > created mfd/realtek,rtl9301-switch.yaml. ... and to recap to others for context, the problem is that switch is simple-mfd and most of the switch children have bus addresses (MMIO of the switch region) but ethernet-ports does not. This will work fine, but is discouraged style. Considering also that some of the children - like syscon-reboot or i2c - take one or few registers as address space, maybe adding MMIO for children was not necessary at all.