[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