Hi Yangbo, On Tue, Nov 24, 2020 at 09:02:57AM +0000, Y.b. Lu wrote: > > Am 2020-11-24 09:47, schrieb Y.b. Lu: > > > Hi Michael, > > >> > I don't think it's a problem in board dts to define board specific > > >> > thing, like re-defining alias, and disabling any IP it not using. > > >> > > >> First, why would you put it in the architecture include anyway? That > > >> is really board-specific. That is like you would say, we enable all > > >> devices and a board could potentially disable it. TBH it seems that > > >> this will fit your reference boards and you don't care about the > > >> other ones which uses that include. > > > > > > In soc dtsi, this is giving default alias for two esdhc controllers. > > > This is not board specific. > > > That's natural esdhc0 is mmc0 and esdhc1 is mmc1. > > > > How could this be not board specific if there are at least three > > different use cases the board can choose from - and needs three > > different configurations: > > > > (1) eMMC at /dev/mmcblk0, SD card at /dev/mmcblk1 > > (2) SD card at /dev/mmcblk0, eMMC at /dev/mmcblk1 > > (3) no eMMC at all, SD card at /dev/mmcblk0 > > Not matter it's SD card or eMMC card, if it's on esdhc0, use /dev/mmcblk0. > Not matter it's SD card or eMMC card, if it's on esdhc1, use /dev/mmcblk1. With the note here that you can't actually connect an SD card to eSDHC1, due to the lack of pins for CD/WP. > It's not related to board and card type, it's only related to esdhc interface in use. I understand the hardware-centric view that you are coming from. It may be natural for you that eSDHC0 is for the SD card and eSDHC1 is for eMMC, because these are the designations in the SoC. But it is also natural for a customer to define the indices according to their schematics and what they use. If, say, there is a board that only uses eMMC, I would expect that for the lay person, no one would even bat an eye if that was called /dev/mmcblk0. Whereas, if it was called /dev/mmcblk1 (and there was no /dev/mmcblk0 in the system), maybe you'd have to come up with some explanations which could be avoided. I am only a passerby when it comes to the MMC subsystem. But in networking/DSA, it is frequent that the board designer comes up with their own numbering scheme, which has nothing to do with the numbering of the chip. Consider this extreme case from arch/arm/boot/dts/ls1021a-tsn.dts: sja1105: ethernet-switch@1 { ports { port@0 { /* ETH5 written on chassis */ label = "swp5"; }; port@1 { /* ETH2 written on chassis */ label = "swp2"; }; port@2 { /* ETH3 written on chassis */ label = "swp3"; }; port@3 { /* ETH4 written on chassis */ label = "swp4"; }; }; }; You just have to go along with how the hardware is being used in the product. I could have insisted that hardware switch port 0 is named as swp0, but that would have not helped anybody.