On Fri, Jul 08, 2022 at 06:05:28PM +0200, Pali Rohár wrote: > On Wednesday 06 July 2022 17:36:43 Krzysztof Kozlowski wrote: > > On 06/07/2022 17:27, Marek Behún wrote: > > > On Wed, 6 Jul 2022 13:19:12 +0200 > > > Pali Rohár <pali@xxxxxxxxxx> wrote: > > > > > >> On Wednesday 06 July 2022 13:15:07 Marek Behún wrote: > > >>> On Tue, 5 Jul 2022 17:59:28 +0200 > > >>> Pali Rohár <pali@xxxxxxxxxx> wrote: > > >>> > > >>>> +examples: > > >>>> + - | > > >>>> + #include <dt-bindings/leds/common.h> > > >>>> + > > >>>> + cpld@3,0 { > > >>> > > >>> The generic node name should be just "bus". That it is a CPLD > > >>> implementation should come from compatible string. > > >> > > >> Sorry, I do not understand why "bus". Why other memory chips are named > > >> e.g. "nand" or "nor" and not "bus" too? > > > > > > As far as I understand this is because that is the preferred name for > > > busses and this is a bus, since there is also the simple-bus compatible. > > > > > >> By this logic should not be _every_ node called just "bus"? Hm... and > > >> are names needed at all then? > > > > > > :-) > > > > > > The schema > > > https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/simple-bus.yaml > > > allows for different names (soc|axi|ahb|*-bus) to avoid warnings on > > > existing old dts files. > > > > > > The preferred way is to not have the implementation in nodename, > > > similar to how we use 'switch' instead of 'mv88e6xxx', or > > > 'ethernet-phy' instead of 'mv88e151x', or 'led-controller', ... > > > > Thanks Marek for detailed explanation. > > The cases above rather trigger my comments and this one here, after > > Pali's explanation, do not fit them. pld is a generic class of a device, > > so it is okay here. cpld probably as well (although one could argue that > > it is a subset of pld, so the generic name is pld, but then one would > > say fpga also should be called pld). For me it does not have to be bus, > > just don't want mv88e6xxx or any other vendor/model names. Therefore > > cpld is fine. > > Exactly. cpld, fpga, nor, nand, soc... all of them are not real buses. I guess you could (and we do) have 'cpld' and 'fpga' as devices where the OS can reprogram them and such. But if the implementation is fixed with no implementation specific controls, I don't think naming how it's implemented adds too much. If there's nothing else to identify the device though, having 'cpld' in there does have some value I guess. Same could be argued for soc too perhaps, but that's in the list largely to avoid a bunch of s/soc/bus/ on dts files. > simple-bus here is just name invented by device tree and without which > existing kernel drivers refuse to work. Everything is just names invented by DT. simple-bus means 'a bus containing MMIO devices without any bus configuration'. You want to add a clock to it?, then no longer a simple-bus. Based on that definition, the kernel can enumerate child devices without platform specific help. Just use 'cpld-bus' and lets move on with our lives. Rob