
Hi Simon,
I met two issue when using of-platdata
1. compitable name with '.' I get compile error as below: In file included from include/dt-structs.h:16:0, from spl/dts/dt-platdata.c:3: include/generated/dt-structs.h:26:35: error: expected identifier or ‘(’ before numeric constant struct dtd_rockchip_rk3399_sdhci_5.1 { ^ spl/dts/dt-platdata.c:41:42: error: expected identifier or ‘(’ before numeric constant static struct dtd_rockchip_rk3399_sdhci_5.1 dtv_sdhci_at_fe330000 = { ^ spl/dts/dt-platdata.c:55:15: error: ‘dtv_sdhci_at_fe330000’ undeclared here (not in a function) .platdata = &dtv_sdhci_at_fe330000, ^ make[2]: *** [spl/dts/dt-platdata.o] Error 1 make[1]: *** [spl/u-boot-spl] Error 2 make: *** [__build_one_by_one] Error 2
The dts node starts like this: sdhci: sdhci@fe330000 { u-boot,dm-pre-reloc; compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1"; ...
2. multi compatible name When a dts node have more than one compatible name, which is prefer to use? for example, we have two dwmmc compatible name in rk3399, the tool is using the first one, while the source code using the last one.
"drivers/mmc/rockchip_dw_mmc.c" 23 struct rockchip_mmc_plat { 24 #if CONFIG_IS_ENABLED(OF_PLATDATA) 25 struct dtd_rockchip_rk3288_dw_mshc dtplat; 26 #endif 27 struct mmc_config cfg; 28 struct mmc mmc; 29 }; ... dts node sdmmc: dwmmc@fe320000 { compatible = "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc"; ...
Thanks, - Kever