> As you have pointed out with certain examples, once the driver starts > operating out of what the devicetree says, in other words, once the driver > starts guessing the hardware, there's no guarantee it will always guess it > correctly. This is partially a result of history. Some of these drivers are older than DT. This guessing was sufficient to make them work in the systems of that time. Some drivers are used when DT is not available, e.g. USB or PCI devices, or even ACPI. > There is also a case for DSA. If there's an implication that the DSA > controlled switch has an MDIO bus (phy_read() and phy_write()), the DSA > driver will connect the switch MACs to the PHYs on the MDIO bus of the > switch, even if there's no description of that MDIO bus on the devicetree. > As unlikely as it is on a real life scenario, there may be a device that > has its switch MACs wired to the PHYs on another MDIO bus. > This is why I've proposed to make the drivers strictly follow what the > devicetree says. There are mv88e6xxx systems which don't have a DT description, just platform data. So if you need to make code changes, keep that in mind. Andrew