[U-Boot] U-Boot of-platdata issue

Kever Yang kever.yang at rock-chips.com
Mon Jan 16 02:28:04 CET 2017


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 at 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 at fe320000 {
                compatible = "rockchip,rk3399-dw-mshc",
                              "rockchip,rk3288-dw-mshc";
...

Thanks,
- Kever


More information about the U-Boot mailing list