ODROIDC:dtd: Managing single device tree for SDCARD or eMMC boot

In order to assign a boot media to SDHC block between SDCARD or eMMC,
different two device tree have to be maintained. But this is risky to
maintain. Hence add both properties of SDCARD and eMMC to each contoller, SDHC
and SDIO, remove one of them in U-boot. Finally Linux kernel will have proper
device tree with corresponding to boot deivce.

Change-Id: I607575123f81e85d93c0c2613738e11f53892731
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
This commit is contained in:
Dongjin Kim
2014-11-13 12:40:18 +09:00
parent a709d1d0b7
commit e79967c706
2 changed files with 62 additions and 1569 deletions

View File

@@ -407,7 +407,7 @@ void root_func(){
//$$ L2 PROP_STR = "gpio_dat3"
//$$ L2 PROP_U32 = "card_type"
emmc{
status = "ok";
status = "okay";
port = <2>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
pinname = "emmc";
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
@@ -419,6 +419,41 @@ void root_func(){
gpio_dat3 = "BOOT_3";
card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
};
//$$ DEVICE="sd"
//$$ L2 PROP_STR = "status"
//$$ L3 PROP_U32 = "port"
//$$ L2 PROP_STR = "pinname"
//$$ L3 PROP_U32 = "ocr_avail"
//$$ L2 PROP_STR 3 = "caps"
//$$ L3 PROP_U32 = "f_min"
//$$ L3 PROP_U32 = "f_max"
//$$ L3 PROP_U32 = "f_max_w"
//$$ L3 PROP_U32 = "max_req_size"
//$$ L2 PROP_STR = "gpio_dat3"
//$$ L2 PROP_STR = "jtag_pin"
//$$ L2 PROP_STR = "gpio_cd"
//$$ L2 PROP_STR = "gpio_ro"
//$$ L2 PROP_U32 = "irq_in"
//$$ L2 PROP_U32 = "irq_out"
//$$ L2 PROP_U32 = "card_type"
sd{
status = "okay";
port = <1>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
pinname = "sd";
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
f_min = <300000>;
f_max = <50000000>;
f_max_w = <50000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = "CARD_4";
gpio_cd = "CARD_6";
gpio_volsw = "GPIOAO_3";
irq_in = <3>;
irq_out = <5>;
card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
};
};
/// ***************************************************************************************
@@ -485,6 +520,32 @@ void root_func(){
irq_out = <5>;
card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
};
//$$ DEVICE="emmc"
//$$ L2 PROP_STR = "status"
//$$ L3 PROP_U32 = "port"
//$$ L2 PROP_STR = "pinname"
//$$ L3 PROP_U32 = "ocr_avail"
//$$ L2 PROP_STR 4 = "caps"
//$$ L3 PROP_U32 = "f_min"
//$$ L3 PROP_U32 = "f_max"
//$$ L3 PROP_U32 = "f_max_w"
//$$ L3 PROP_U32 = "max_req_size"
//$$ L2 PROP_STR = "gpio_dat3"
//$$ L2 PROP_U32 = "card_type"
emmc{
status = "okay";
port = <5>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
pinname = "emmc";
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
caps = "MMC_CAP_8_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
caps2 = "MMC_CAP2_HS200_1_8V_SDR";
f_min = <300000>;
f_max = <150000000>;
max_req_size = <0x20000>; /**128KB*/
gpio_dat3 = "BOOT_3";
card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
};
};
/// ***************************************************************************************

File diff suppressed because it is too large Load Diff