Commit 98d2d5e8c473232dc718763dbec284b7349dcc05
Exists in
v2017.01-smarct4x
and in
37 other branches
Merge branch 'master' of git://git.denx.de/u-boot-ti
Showing 56 changed files Side-by-side Diff
- arch/arm/cpu/armv7/omap-common/boot-common.c
- arch/arm/cpu/armv7/omap-common/emif-common.c
- arch/arm/cpu/armv7/omap5/Kconfig
- arch/arm/cpu/armv7/omap5/hw_data.c
- arch/arm/cpu/armv7/omap5/prcm-regs.c
- arch/arm/cpu/armv7/omap5/sdram.c
- arch/arm/include/asm/arch-am33xx/spl.h
- arch/arm/include/asm/arch-omap5/clock.h
- arch/arm/include/asm/arch-omap5/omap.h
- arch/arm/include/asm/omap_common.h
- board/comelit/dig297/dig297.c
- board/compulab/cm_t35/cm_t35.c
- board/corscience/tricorder/tricorder.c
- board/isee/igep00x0/igep00x0.c
- board/logicpd/omap3som/omap3logic.c
- board/logicpd/zoom1/zoom1.c
- board/matrix_vision/mvblx/mvblx.c
- board/nokia/rx51/rx51.c
- board/overo/overo.c
- board/pandora/pandora.c
- board/siemens/common/board.c
- board/siemens/common/factoryset.c
- board/siemens/common/factoryset.h
- board/siemens/draco/board.c
- board/siemens/pxm2/board.c
- board/siemens/rut/board.c
- board/technexion/tao3530/tao3530.c
- board/ti/beagle/beagle.c
- board/ti/beagle_x15/Kconfig
- board/ti/beagle_x15/Makefile
- board/ti/beagle_x15/board.c
- board/ti/beagle_x15/mux_data.h
- board/ti/dra7xx/evm.c
- board/ti/dra7xx/mux_data.h
- board/ti/evm/evm.c
- board/ti/sdp3430/sdp.c
- board/timll/devkit8000/devkit8000.c
- configs/beagle_x15_defconfig
- drivers/mmc/mmc.c
- drivers/mmc/omap_hsmmc.c
- drivers/mtd/nand/omap_gpmc.c
- drivers/power/palmas.c
- drivers/power/twl4030.c
- drivers/serial/ns16550.c
- drivers/spi/ti_qspi.c
- drivers/usb/phy/omap_usb_phy.c
- include/configs/beagle_x15.h
- include/configs/cm_t54.h
- include/configs/dra7xx_evm.h
- include/configs/omap5_uevm.h
- include/configs/pxm2.h
- include/configs/rut.h
- include/configs/ti_omap5_common.h
- include/linux/usb/xhci-omap.h
- include/mmc.h
- include/twl4030.h
arch/arm/cpu/armv7/omap-common/boot-common.c
... | ... | @@ -33,9 +33,20 @@ |
33 | 33 | * used. But it not correct to assume that romcode structure |
34 | 34 | * encoding would be same as u-boot. So use the defined offsets. |
35 | 35 | */ |
36 | - gd->arch.omap_boot_params.omap_bootdevice = boot_device = | |
37 | - *((u8 *)(rom_params + BOOT_DEVICE_OFFSET)); | |
36 | + boot_device = *((u8 *)(rom_params + BOOT_DEVICE_OFFSET)); | |
38 | 37 | |
38 | +#if defined(BOOT_DEVICE_NAND_I2C) | |
39 | + /* | |
40 | + * Re-map NAND&I2C boot-device to the "normal" NAND boot-device. | |
41 | + * Otherwise the SPL boot IF can't handle this device correctly. | |
42 | + * Somehow booting with Hynix 4GBit NAND H27U4G8 on Siemens | |
43 | + * Draco leads to this boot-device passed to SPL from the BootROM. | |
44 | + */ | |
45 | + if (boot_device == BOOT_DEVICE_NAND_I2C) | |
46 | + boot_device = BOOT_DEVICE_NAND; | |
47 | +#endif | |
48 | + gd->arch.omap_boot_params.omap_bootdevice = boot_device; | |
49 | + | |
39 | 50 | gd->arch.omap_boot_params.ch_flags = |
40 | 51 | *((u8 *)(rom_params + CH_FLAGS_OFFSET)); |
41 | 52 | |
... | ... | @@ -57,7 +68,7 @@ |
57 | 68 | } |
58 | 69 | } |
59 | 70 | |
60 | -#ifdef CONFIG_DRA7XX | |
71 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
61 | 72 | /* |
62 | 73 | * We get different values for QSPI_1 and QSPI_4 being used, but |
63 | 74 | * don't actually care about this difference. Rather than |
arch/arm/cpu/armv7/omap-common/emif-common.c
... | ... | @@ -1226,13 +1226,14 @@ |
1226 | 1226 | emif1_enabled = 1; |
1227 | 1227 | emif2_enabled = 1; |
1228 | 1228 | break; |
1229 | - } else if (valid == 1) { | |
1229 | + } | |
1230 | + | |
1231 | + if (valid == 1) | |
1230 | 1232 | emif1_enabled = 1; |
1231 | - } else if (valid == 2) { | |
1233 | + | |
1234 | + if (valid == 2) | |
1232 | 1235 | emif2_enabled = 1; |
1233 | - } | |
1234 | 1236 | } |
1235 | - | |
1236 | 1237 | } |
1237 | 1238 | |
1238 | 1239 | static void do_bug0039_workaround(u32 base) |
arch/arm/cpu/armv7/omap5/Kconfig
... | ... | @@ -12,6 +12,9 @@ |
12 | 12 | config TARGET_DRA7XX_EVM |
13 | 13 | bool "TI DRA7XX" |
14 | 14 | |
15 | +config TARGET_BEAGLE_X15 | |
16 | + bool "BeagleBoard X15" | |
17 | + | |
15 | 18 | endchoice |
16 | 19 | |
17 | 20 | config SYS_SOC |
... | ... | @@ -20,6 +23,7 @@ |
20 | 23 | source "board/compulab/cm_t54/Kconfig" |
21 | 24 | source "board/ti/omap5_uevm/Kconfig" |
22 | 25 | source "board/ti/dra7xx/Kconfig" |
26 | +source "board/ti/beagle_x15/Kconfig" | |
23 | 27 | |
24 | 28 | endif |
arch/arm/cpu/armv7/omap5/hw_data.c
... | ... | @@ -365,31 +365,31 @@ |
365 | 365 | .mpu.value = VDD_MPU_DRA752, |
366 | 366 | .mpu.efuse.reg = STD_FUSE_OPP_VMIN_MPU_NOM, |
367 | 367 | .mpu.efuse.reg_bits = DRA752_EFUSE_REGBITS, |
368 | - .mpu.addr = TPS659038_REG_ADDR_SMPS12_MPU, | |
368 | + .mpu.addr = TPS659038_REG_ADDR_SMPS12, | |
369 | 369 | .mpu.pmic = &tps659038, |
370 | 370 | |
371 | 371 | .eve.value = VDD_EVE_DRA752, |
372 | 372 | .eve.efuse.reg = STD_FUSE_OPP_VMIN_DSPEVE_NOM, |
373 | 373 | .eve.efuse.reg_bits = DRA752_EFUSE_REGBITS, |
374 | - .eve.addr = TPS659038_REG_ADDR_SMPS45_EVE, | |
374 | + .eve.addr = TPS659038_REG_ADDR_SMPS45, | |
375 | 375 | .eve.pmic = &tps659038, |
376 | 376 | |
377 | 377 | .gpu.value = VDD_GPU_DRA752, |
378 | 378 | .gpu.efuse.reg = STD_FUSE_OPP_VMIN_GPU_NOM, |
379 | 379 | .gpu.efuse.reg_bits = DRA752_EFUSE_REGBITS, |
380 | - .gpu.addr = TPS659038_REG_ADDR_SMPS6_GPU, | |
380 | + .gpu.addr = TPS659038_REG_ADDR_SMPS6, | |
381 | 381 | .gpu.pmic = &tps659038, |
382 | 382 | |
383 | 383 | .core.value = VDD_CORE_DRA752, |
384 | 384 | .core.efuse.reg = STD_FUSE_OPP_VMIN_CORE_NOM, |
385 | 385 | .core.efuse.reg_bits = DRA752_EFUSE_REGBITS, |
386 | - .core.addr = TPS659038_REG_ADDR_SMPS7_CORE, | |
386 | + .core.addr = TPS659038_REG_ADDR_SMPS7, | |
387 | 387 | .core.pmic = &tps659038, |
388 | 388 | |
389 | 389 | .iva.value = VDD_IVA_DRA752, |
390 | 390 | .iva.efuse.reg = STD_FUSE_OPP_VMIN_IVA_NOM, |
391 | 391 | .iva.efuse.reg_bits = DRA752_EFUSE_REGBITS, |
392 | - .iva.addr = TPS659038_REG_ADDR_SMPS8_IVA, | |
392 | + .iva.addr = TPS659038_REG_ADDR_SMPS8, | |
393 | 393 | .iva.pmic = &tps659038, |
394 | 394 | }; |
395 | 395 | |
... | ... | @@ -593,7 +593,7 @@ |
593 | 593 | .ctrl_ddr_ctrl_ext_0 = 0xA2000000, |
594 | 594 | }; |
595 | 595 | |
596 | -void hw_data_init(void) | |
596 | +void __weak hw_data_init(void) | |
597 | 597 | { |
598 | 598 | u32 omap_rev = omap_revision(); |
599 | 599 |
arch/arm/cpu/armv7/omap5/prcm-regs.c
... | ... | @@ -376,6 +376,7 @@ |
376 | 376 | |
377 | 377 | struct omap_sys_ctrl_regs const dra7xx_ctrl = { |
378 | 378 | .control_status = 0x4A002134, |
379 | + .control_phy_power_usb = 0x4A002370, | |
379 | 380 | .control_phy_power_sata = 0x4A002374, |
380 | 381 | .control_core_mac_id_0_lo = 0x4A002514, |
381 | 382 | .control_core_mac_id_0_hi = 0x4A002518, |
... | ... | @@ -800,6 +801,7 @@ |
800 | 801 | .cm_clkmode_dpll_dsp = 0x4a005234, |
801 | 802 | .cm_shadow_freq_config1 = 0x4a005260, |
802 | 803 | .cm_clkmode_dpll_gmac = 0x4a0052a8, |
804 | + .cm_coreaon_usb_phy_core_clkctrl = 0x4a008640, | |
803 | 805 | .cm_coreaon_usb_phy2_core_clkctrl = 0x4a008688, |
804 | 806 | |
805 | 807 | /* cm1.mpu */ |
... | ... | @@ -906,6 +908,7 @@ |
906 | 908 | .cm_gmac_gmac_clkctrl = 0x4a0093d0, |
907 | 909 | .cm_l3init_ocp2scp1_clkctrl = 0x4a0093e0, |
908 | 910 | .cm_l3init_ocp2scp3_clkctrl = 0x4a0093e8, |
911 | + .cm_l3init_usb_otg_ss_clkctrl = 0x4a0093f0, | |
909 | 912 | |
910 | 913 | /* cm2.l4per */ |
911 | 914 | .cm_l4per_clkstctrl = 0x4a009700, |
arch/arm/cpu/armv7/omap5/sdram.c
arch/arm/include/asm/arch-am33xx/spl.h
arch/arm/include/asm/arch-omap5/clock.h
... | ... | @@ -278,11 +278,11 @@ |
278 | 278 | |
279 | 279 | /* TPS659038 */ |
280 | 280 | #define TPS659038_I2C_SLAVE_ADDR 0x58 |
281 | -#define TPS659038_REG_ADDR_SMPS12_MPU 0x23 | |
282 | -#define TPS659038_REG_ADDR_SMPS45_EVE 0x2B | |
283 | -#define TPS659038_REG_ADDR_SMPS6_GPU 0x2F | |
284 | -#define TPS659038_REG_ADDR_SMPS7_CORE 0x33 | |
285 | -#define TPS659038_REG_ADDR_SMPS8_IVA 0x37 | |
281 | +#define TPS659038_REG_ADDR_SMPS12 0x23 | |
282 | +#define TPS659038_REG_ADDR_SMPS45 0x2B | |
283 | +#define TPS659038_REG_ADDR_SMPS6 0x2F | |
284 | +#define TPS659038_REG_ADDR_SMPS7 0x33 | |
285 | +#define TPS659038_REG_ADDR_SMPS8 0x37 | |
286 | 286 | |
287 | 287 | /* TPS */ |
288 | 288 | #define TPS62361_I2C_SLAVE_ADDR 0x60 |
... | ... | @@ -314,7 +314,7 @@ |
314 | 314 | */ |
315 | 315 | #define CONFIG_DEFAULT_OMAP_RESET_TIME_MAX_USEC 31219 |
316 | 316 | |
317 | -#ifdef CONFIG_DRA7XX | |
317 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
318 | 318 | #define V_OSCK 20000000 /* Clock output from T2 */ |
319 | 319 | #else |
320 | 320 | #define V_OSCK 19200000 /* Clock output from T2 */ |
arch/arm/include/asm/arch-omap5/omap.h
... | ... | @@ -27,7 +27,7 @@ |
27 | 27 | #define CONTROL_CORE_ID_CODE 0x4A002204 |
28 | 28 | #define CONTROL_WKUP_ID_CODE 0x4AE0C204 |
29 | 29 | |
30 | -#ifdef CONFIG_DRA7XX | |
30 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
31 | 31 | #define CONTROL_ID_CODE CONTROL_WKUP_ID_CODE |
32 | 32 | #else |
33 | 33 | #define CONTROL_ID_CODE CONTROL_CORE_ID_CODE |
... | ... | @@ -163,7 +163,7 @@ |
163 | 163 | * much larger) and do not, at this time, make use of the additional |
164 | 164 | * space. |
165 | 165 | */ |
166 | -#ifdef CONFIG_DRA7XX | |
166 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
167 | 167 | #define NON_SECURE_SRAM_START 0x40300000 |
168 | 168 | #define NON_SECURE_SRAM_END 0x40380000 /* Not inclusive */ |
169 | 169 | #else |
arch/arm/include/asm/omap_common.h
... | ... | @@ -540,12 +540,15 @@ |
540 | 540 | extern struct prcm_regs const omap4_prcm; |
541 | 541 | extern struct prcm_regs const dra7xx_prcm; |
542 | 542 | extern struct dplls const **dplls_data; |
543 | +extern struct dplls dra7xx_dplls; | |
543 | 544 | extern struct vcores_data const **omap_vcores; |
544 | 545 | extern const u32 sys_clk_array[8]; |
545 | 546 | extern struct omap_sys_ctrl_regs const **ctrl; |
546 | 547 | extern struct omap_sys_ctrl_regs const omap4_ctrl; |
547 | 548 | extern struct omap_sys_ctrl_regs const omap5_ctrl; |
548 | 549 | extern struct omap_sys_ctrl_regs const dra7xx_ctrl; |
550 | + | |
551 | +extern struct pmic_data tps659038; | |
549 | 552 | |
550 | 553 | void hw_data_init(void); |
551 | 554 |
board/comelit/dig297/dig297.c
board/compulab/cm_t35/cm_t35.c
board/corscience/tricorder/tricorder.c
... | ... | @@ -147,6 +147,13 @@ |
147 | 147 | } |
148 | 148 | #endif |
149 | 149 | |
150 | +#if defined(CONFIG_GENERIC_MMC) | |
151 | +void board_mmc_power_init(void) | |
152 | +{ | |
153 | + twl4030_power_mmc_init(0); | |
154 | +} | |
155 | +#endif | |
156 | + | |
150 | 157 | /* |
151 | 158 | * Routine: get_board_mem_timings |
152 | 159 | * Description: If we use SPL then there is no x-loader nor config header |
board/isee/igep00x0/igep00x0.c
board/logicpd/omap3som/omap3logic.c
... | ... | @@ -128,6 +128,13 @@ |
128 | 128 | } |
129 | 129 | #endif |
130 | 130 | |
131 | +#if defined(CONFIG_GENERIC_MMC) | |
132 | +void board_mmc_power_init(void) | |
133 | +{ | |
134 | + twl4030_power_mmc_init(0); | |
135 | +} | |
136 | +#endif | |
137 | + | |
131 | 138 | #ifdef CONFIG_SMC911X |
132 | 139 | /* GPMC CS1 settings for Logic SOM LV/Torpedo LAN92xx Ethernet chip */ |
133 | 140 | static const u32 gpmc_lan92xx_config[] = { |
board/logicpd/zoom1/zoom1.c
board/matrix_vision/mvblx/mvblx.c
board/nokia/rx51/rx51.c
board/overo/overo.c
... | ... | @@ -493,6 +493,13 @@ |
493 | 493 | } |
494 | 494 | #endif |
495 | 495 | |
496 | +#if defined(CONFIG_GENERIC_MMC) | |
497 | +void board_mmc_power_init(void) | |
498 | +{ | |
499 | + twl4030_power_mmc_init(0); | |
500 | +} | |
501 | +#endif | |
502 | + | |
496 | 503 | #if defined(CONFIG_USB_EHCI) && !defined(CONFIG_SPL_BUILD) |
497 | 504 | static struct omap_usbhs_board_data usbhs_bdata = { |
498 | 505 | .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, |
board/pandora/pandora.c
board/siemens/common/board.c
... | ... | @@ -96,15 +96,6 @@ |
96 | 96 | return &dpll_ddr; |
97 | 97 | } |
98 | 98 | |
99 | -#ifdef CONFIG_BOARD_LATE_INIT | |
100 | -int board_late_init(void) | |
101 | -{ | |
102 | - omap_nand_switch_ecc(1, 8); | |
103 | - | |
104 | - return 0; | |
105 | -} | |
106 | -#endif | |
107 | - | |
108 | 99 | #ifndef CONFIG_SPL_BUILD |
109 | 100 | #if defined(BOARD_DFU_BUTTON_GPIO) |
110 | 101 | /* |
board/siemens/common/factoryset.c
... | ... | @@ -86,6 +86,7 @@ |
86 | 86 | int i, nxt = 0; |
87 | 87 | int c; |
88 | 88 | unsigned char end = 0xff; |
89 | + unsigned char tmp; | |
89 | 90 | |
90 | 91 | for (i = 0; fact_get_char(i) != end; i = nxt) { |
91 | 92 | nxt = i + 1; |
... | ... | @@ -93,6 +94,7 @@ |
93 | 94 | int pos; |
94 | 95 | int endpos; |
95 | 96 | int z; |
97 | + int level = 0; | |
96 | 98 | |
97 | 99 | c = strncmp((char *)&eeprom_buf[i + 1], (char *)record, |
98 | 100 | strlen((char *)record)); |
99 | 101 | |
100 | 102 | |
101 | 103 | |
102 | 104 | |
103 | 105 | |
... | ... | @@ -103,22 +105,30 @@ |
103 | 105 | /* search for "<" */ |
104 | 106 | c = -1; |
105 | 107 | for (z = pos; fact_get_char(z) != end; z++) { |
106 | - if ((fact_get_char(z) == '<') || | |
107 | - (fact_get_char(z) == '>')) { | |
108 | - endpos = z; | |
109 | - nxt = endpos; | |
110 | - c = 0; | |
111 | - break; | |
108 | + if (fact_get_char(z) == '<') { | |
109 | + if (level == 0) { | |
110 | + endpos = z; | |
111 | + nxt = endpos; | |
112 | + c = 0; | |
113 | + break; | |
114 | + } else { | |
115 | + level--; | |
116 | + } | |
112 | 117 | } |
118 | + if (fact_get_char(z) == '>') | |
119 | + level++; | |
113 | 120 | } |
121 | + } else { | |
122 | + continue; | |
114 | 123 | } |
115 | 124 | if (c == 0) { |
116 | 125 | /* end found -> call get_factory_val */ |
126 | + tmp = eeprom_buf[endpos]; | |
117 | 127 | eeprom_buf[endpos] = end; |
118 | 128 | ret = get_factory_val(&eeprom_buf[pos], |
119 | - size - pos, name, buf, len); | |
129 | + endpos - pos, name, buf, len); | |
120 | 130 | /* fix buffer */ |
121 | - eeprom_buf[endpos] = '<'; | |
131 | + eeprom_buf[endpos] = tmp; | |
122 | 132 | debug("%s: %s.%s = %s\n", |
123 | 133 | __func__, record, name, buf); |
124 | 134 | return ret; |
... | ... | @@ -210,15 +220,6 @@ |
210 | 220 | printf("DFU USB: VID = 0x%4x, PID = 0x%4x\n", factory_dat.usb_vendor_id, |
211 | 221 | factory_dat.usb_product_id); |
212 | 222 | #endif |
213 | - if (0 <= get_factory_record_val(cp, size, (uchar *)"DEV", | |
214 | - (uchar *)"id", buf, | |
215 | - MAX_STRING_LENGTH)) { | |
216 | - if (strncmp((const char *)buf, "PXM50", 5) == 0) | |
217 | - factory_dat.pxm50 = 1; | |
218 | - else | |
219 | - factory_dat.pxm50 = 0; | |
220 | - } | |
221 | - debug("PXM50: %d\n", factory_dat.pxm50); | |
222 | 223 | #if defined(CONFIG_VIDEO) |
223 | 224 | if (0 <= get_factory_record_val(cp, size, (uchar *)"DISP1", |
224 | 225 | (uchar *)"name", factory_dat.disp_name, |
... | ... | @@ -237,6 +238,23 @@ |
237 | 238 | factory_dat.version = simple_strtoul((char *)buf, |
238 | 239 | NULL, 16); |
239 | 240 | debug("version number: %d\n", factory_dat.version); |
241 | + } | |
242 | + /* Get ASN from factory set if available */ | |
243 | + if (0 <= get_factory_record_val(cp, size, (uchar *)"DEV", | |
244 | + (uchar *)"id", factory_dat.asn, | |
245 | + MAX_STRING_LENGTH)) { | |
246 | + debug("factoryset asn: %s\n", factory_dat.asn); | |
247 | + } else { | |
248 | + factory_dat.asn[0] = 0; | |
249 | + } | |
250 | + /* Get COMP/ver from factory set if available */ | |
251 | + if (0 <= get_factory_record_val(cp, size, (uchar *)"COMP", | |
252 | + (uchar *)"ver", | |
253 | + factory_dat.comp_version, | |
254 | + MAX_STRING_LENGTH)) { | |
255 | + debug("factoryset COMP/ver: %s\n", factory_dat.comp_version); | |
256 | + } else { | |
257 | + strcpy((char *)factory_dat.comp_version, "1.0"); | |
240 | 258 | } |
241 | 259 | |
242 | 260 | return 0; |
board/siemens/common/factoryset.h
board/siemens/draco/board.c
... | ... | @@ -280,5 +280,14 @@ |
280 | 280 | #endif /* #if defined(CONFIG_DRIVER_TI_CPSW) */ |
281 | 281 | #endif /* #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) */ |
282 | 282 | |
283 | +#ifdef CONFIG_BOARD_LATE_INIT | |
284 | +int board_late_init(void) | |
285 | +{ | |
286 | + omap_nand_switch_ecc(1, 8); | |
287 | + | |
288 | + return 0; | |
289 | +} | |
290 | +#endif | |
291 | + | |
283 | 292 | #include "../common/board.c" |
board/siemens/pxm2/board.c
... | ... | @@ -428,5 +428,39 @@ |
428 | 428 | return 0; |
429 | 429 | } |
430 | 430 | #endif |
431 | + | |
432 | +#ifdef CONFIG_BOARD_LATE_INIT | |
433 | +int board_late_init(void) | |
434 | +{ | |
435 | + int ret; | |
436 | + | |
437 | + omap_nand_switch_ecc(1, 8); | |
438 | + | |
439 | +#ifdef CONFIG_FACTORYSET | |
440 | + if (factory_dat.asn[0] != 0) { | |
441 | + char tmp[2 * MAX_STRING_LENGTH + 2]; | |
442 | + | |
443 | + if (strncmp((const char *)factory_dat.asn, "PXM50", 5) == 0) | |
444 | + factory_dat.pxm50 = 1; | |
445 | + else | |
446 | + factory_dat.pxm50 = 0; | |
447 | + sprintf(tmp, "%s_%s", factory_dat.asn, | |
448 | + factory_dat.comp_version); | |
449 | + ret = setenv("boardid", tmp); | |
450 | + if (ret) | |
451 | + printf("error setting board id\n"); | |
452 | + } else { | |
453 | + factory_dat.pxm50 = 1; | |
454 | + ret = setenv("boardid", "PXM50_1.0"); | |
455 | + if (ret) | |
456 | + printf("error setting board id\n"); | |
457 | + } | |
458 | + debug("PXM50: %d\n", factory_dat.pxm50); | |
459 | +#endif | |
460 | + | |
461 | + return 0; | |
462 | +} | |
463 | +#endif | |
464 | + | |
431 | 465 | #include "../common/board.c" |
board/siemens/rut/board.c
... | ... | @@ -467,5 +467,28 @@ |
467 | 467 | return 0; |
468 | 468 | } |
469 | 469 | #endif /* ifdef CONFIG_VIDEO */ |
470 | + | |
471 | +#ifdef CONFIG_BOARD_LATE_INIT | |
472 | +int board_late_init(void) | |
473 | +{ | |
474 | + int ret; | |
475 | + char tmp[2 * MAX_STRING_LENGTH + 2]; | |
476 | + | |
477 | + omap_nand_switch_ecc(1, 8); | |
478 | + | |
479 | + if (factory_dat.asn[0] != 0) | |
480 | + sprintf(tmp, "%s_%s", factory_dat.asn, | |
481 | + factory_dat.comp_version); | |
482 | + else | |
483 | + sprintf(tmp, "QMX7.E38_4.0"); | |
484 | + | |
485 | + ret = setenv("boardid", tmp); | |
486 | + if (ret) | |
487 | + printf("error setting board id\n"); | |
488 | + | |
489 | + return 0; | |
490 | +} | |
491 | +#endif | |
492 | + | |
470 | 493 | #include "../common/board.c" |
board/technexion/tao3530/tao3530.c
... | ... | @@ -188,6 +188,13 @@ |
188 | 188 | } |
189 | 189 | #endif |
190 | 190 | |
191 | +#if defined(CONFIG_GENERIC_MMC) | |
192 | +void board_mmc_power_init(void) | |
193 | +{ | |
194 | + twl4030_power_mmc_init(0); | |
195 | +} | |
196 | +#endif | |
197 | + | |
191 | 198 | #if defined(CONFIG_USB_EHCI) && !defined(CONFIG_SPL_BUILD) |
192 | 199 | /* Call usb_stop() before starting the kernel */ |
193 | 200 | void show_boot_progress(int val) |
board/ti/beagle/beagle.c
... | ... | @@ -534,6 +534,13 @@ |
534 | 534 | } |
535 | 535 | #endif |
536 | 536 | |
537 | +#if defined(CONFIG_GENERIC_MMC) | |
538 | +void board_mmc_power_init(void) | |
539 | +{ | |
540 | + twl4030_power_mmc_init(0); | |
541 | +} | |
542 | +#endif | |
543 | + | |
537 | 544 | #if defined(CONFIG_USB_EHCI) && !defined(CONFIG_SPL_BUILD) |
538 | 545 | /* Call usb_stop() before starting the kernel */ |
539 | 546 | void show_boot_progress(int val) |
board/ti/beagle_x15/Kconfig
board/ti/beagle_x15/Makefile
board/ti/beagle_x15/board.c
1 | +/* | |
2 | + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com | |
3 | + * | |
4 | + * Author: Felipe Balbi <balbi@ti.com> | |
5 | + * | |
6 | + * Based on board/ti/dra7xx/evm.c | |
7 | + * | |
8 | + * SPDX-License-Identifier: GPL-2.0+ | |
9 | + */ | |
10 | + | |
11 | +#include <common.h> | |
12 | +#include <palmas.h> | |
13 | +#include <sata.h> | |
14 | +#include <usb.h> | |
15 | +#include <asm/omap_common.h> | |
16 | +#include <asm/emif.h> | |
17 | +#include <asm/arch/clock.h> | |
18 | +#include <asm/arch/sys_proto.h> | |
19 | +#include <asm/arch/mmc_host_def.h> | |
20 | +#include <asm/arch/sata.h> | |
21 | +#include <asm/arch/gpio.h> | |
22 | +#include <environment.h> | |
23 | + | |
24 | +#include "mux_data.h" | |
25 | + | |
26 | +#ifdef CONFIG_DRIVER_TI_CPSW | |
27 | +#include <cpsw.h> | |
28 | +#endif | |
29 | + | |
30 | +DECLARE_GLOBAL_DATA_PTR; | |
31 | + | |
32 | +const struct omap_sysinfo sysinfo = { | |
33 | + "Board: BeagleBoard x15\n" | |
34 | +}; | |
35 | + | |
36 | +static const struct dmm_lisa_map_regs beagle_x15_lisa_regs = { | |
37 | + .dmm_lisa_map_3 = 0x80740300, | |
38 | + .is_ma_present = 0x1 | |
39 | +}; | |
40 | + | |
41 | +void emif_get_dmm_regs(const struct dmm_lisa_map_regs **dmm_lisa_regs) | |
42 | +{ | |
43 | + *dmm_lisa_regs = &beagle_x15_lisa_regs; | |
44 | +} | |
45 | + | |
46 | +static const struct emif_regs beagle_x15_emif1_ddr3_532mhz_emif_regs = { | |
47 | + .sdram_config_init = 0x61851b32, | |
48 | + .sdram_config = 0x61851b32, | |
49 | + .sdram_config2 = 0x00000000, | |
50 | + .ref_ctrl = 0x00001035, | |
51 | + .sdram_tim1 = 0xceef266b, | |
52 | + .sdram_tim2 = 0x328f7fda, | |
53 | + .sdram_tim3 = 0x027f88a8, | |
54 | + .read_idle_ctrl = 0x00050001, | |
55 | + .zq_config = 0x0007190b, | |
56 | + .temp_alert_config = 0x00000000, | |
57 | + .emif_ddr_phy_ctlr_1_init = 0x0e24400a, | |
58 | + .emif_ddr_phy_ctlr_1 = 0x0e24400a, | |
59 | + .emif_ddr_ext_phy_ctrl_1 = 0x10040100, | |
60 | + .emif_ddr_ext_phy_ctrl_2 = 0x00740074, | |
61 | + .emif_ddr_ext_phy_ctrl_3 = 0x00780078, | |
62 | + .emif_ddr_ext_phy_ctrl_4 = 0x007c007c, | |
63 | + .emif_ddr_ext_phy_ctrl_5 = 0x007b007b, | |
64 | + .emif_rd_wr_lvl_rmp_win = 0x00000000, | |
65 | + .emif_rd_wr_lvl_rmp_ctl = 0x00000000, | |
66 | + .emif_rd_wr_lvl_ctl = 0x00000000, | |
67 | + .emif_rd_wr_exec_thresh = 0x00000305 | |
68 | +}; | |
69 | + | |
70 | +static const u32 beagle_x15_emif1_ddr3_ext_phy_ctrl_const_regs[] = { | |
71 | + 0x00800080, | |
72 | + 0x00360036, | |
73 | + 0x00340034, | |
74 | + 0x00360036, | |
75 | + 0x00350035, | |
76 | + 0x00350035, | |
77 | + | |
78 | + 0x01ff01ff, | |
79 | + 0x01ff01ff, | |
80 | + 0x01ff01ff, | |
81 | + 0x01ff01ff, | |
82 | + 0x01ff01ff, | |
83 | + | |
84 | + 0x00430043, | |
85 | + 0x003e003e, | |
86 | + 0x004a004a, | |
87 | + 0x00470047, | |
88 | + 0x00400040, | |
89 | + | |
90 | + 0x00000000, | |
91 | + 0x00600020, | |
92 | + 0x40010080, | |
93 | + 0x08102040, | |
94 | + | |
95 | + 0x00400040, | |
96 | + 0x00400040, | |
97 | + 0x00400040, | |
98 | + 0x00400040, | |
99 | + 0x00400040 | |
100 | +}; | |
101 | + | |
102 | +static const struct emif_regs beagle_x15_emif2_ddr3_532mhz_emif_regs = { | |
103 | + .sdram_config_init = 0x61851b32, | |
104 | + .sdram_config = 0x61851b32, | |
105 | + .sdram_config2 = 0x00000000, | |
106 | + .ref_ctrl = 0x00001035, | |
107 | + .sdram_tim1 = 0xceef266b, | |
108 | + .sdram_tim2 = 0x328f7fda, | |
109 | + .sdram_tim3 = 0x027f88a8, | |
110 | + .read_idle_ctrl = 0x00050001, | |
111 | + .zq_config = 0x0007190b, | |
112 | + .temp_alert_config = 0x00000000, | |
113 | + .emif_ddr_phy_ctlr_1_init = 0x0e24400a, | |
114 | + .emif_ddr_phy_ctlr_1 = 0x0e24400a, | |
115 | + .emif_ddr_ext_phy_ctrl_1 = 0x10040100, | |
116 | + .emif_ddr_ext_phy_ctrl_2 = 0x00820082, | |
117 | + .emif_ddr_ext_phy_ctrl_3 = 0x008b008b, | |
118 | + .emif_ddr_ext_phy_ctrl_4 = 0x00800080, | |
119 | + .emif_ddr_ext_phy_ctrl_5 = 0x007e007e, | |
120 | + .emif_rd_wr_lvl_rmp_win = 0x00000000, | |
121 | + .emif_rd_wr_lvl_rmp_ctl = 0x00000000, | |
122 | + .emif_rd_wr_lvl_ctl = 0x00000000, | |
123 | + .emif_rd_wr_exec_thresh = 0x00000305 | |
124 | +}; | |
125 | + | |
126 | +static const u32 beagle_x15_emif2_ddr3_ext_phy_ctrl_const_regs[] = { | |
127 | + 0x00800080, | |
128 | + 0x00370037, | |
129 | + 0x00390039, | |
130 | + 0x00360036, | |
131 | + 0x00370037, | |
132 | + 0x00350035, | |
133 | + 0x01ff01ff, | |
134 | + 0x01ff01ff, | |
135 | + 0x01ff01ff, | |
136 | + 0x01ff01ff, | |
137 | + 0x01ff01ff, | |
138 | + 0x00540054, | |
139 | + 0x00540054, | |
140 | + 0x004e004e, | |
141 | + 0x004c004c, | |
142 | + 0x00400040, | |
143 | + | |
144 | + 0x00000000, | |
145 | + 0x00600020, | |
146 | + 0x40010080, | |
147 | + 0x08102040, | |
148 | + | |
149 | + 0x00400040, | |
150 | + 0x00400040, | |
151 | + 0x00400040, | |
152 | + 0x00400040, | |
153 | + 0x00400040 | |
154 | +}; | |
155 | + | |
156 | +void emif_get_reg_dump(u32 emif_nr, const struct emif_regs **regs) | |
157 | +{ | |
158 | + switch (emif_nr) { | |
159 | + case 1: | |
160 | + *regs = &beagle_x15_emif1_ddr3_532mhz_emif_regs; | |
161 | + break; | |
162 | + case 2: | |
163 | + *regs = &beagle_x15_emif2_ddr3_532mhz_emif_regs; | |
164 | + break; | |
165 | + } | |
166 | +} | |
167 | + | |
168 | +void emif_get_ext_phy_ctrl_const_regs(u32 emif_nr, const u32 **regs, u32 *size) | |
169 | +{ | |
170 | + switch (emif_nr) { | |
171 | + case 1: | |
172 | + *regs = beagle_x15_emif1_ddr3_ext_phy_ctrl_const_regs; | |
173 | + *size = ARRAY_SIZE(beagle_x15_emif1_ddr3_ext_phy_ctrl_const_regs); | |
174 | + break; | |
175 | + case 2: | |
176 | + *regs = beagle_x15_emif2_ddr3_ext_phy_ctrl_const_regs; | |
177 | + *size = ARRAY_SIZE(beagle_x15_emif2_ddr3_ext_phy_ctrl_const_regs); | |
178 | + break; | |
179 | + } | |
180 | +} | |
181 | + | |
182 | +struct vcores_data beagle_x15_volts = { | |
183 | + .mpu.value = VDD_MPU_DRA752, | |
184 | + .mpu.efuse.reg = STD_FUSE_OPP_VMIN_MPU_NOM, | |
185 | + .mpu.efuse.reg_bits = DRA752_EFUSE_REGBITS, | |
186 | + .mpu.addr = TPS659038_REG_ADDR_SMPS12, | |
187 | + .mpu.pmic = &tps659038, | |
188 | + | |
189 | + .eve.value = VDD_EVE_DRA752, | |
190 | + .eve.efuse.reg = STD_FUSE_OPP_VMIN_DSPEVE_NOM, | |
191 | + .eve.efuse.reg_bits = DRA752_EFUSE_REGBITS, | |
192 | + .eve.addr = TPS659038_REG_ADDR_SMPS45, | |
193 | + .eve.pmic = &tps659038, | |
194 | + | |
195 | + .gpu.value = VDD_GPU_DRA752, | |
196 | + .gpu.efuse.reg = STD_FUSE_OPP_VMIN_GPU_NOM, | |
197 | + .gpu.efuse.reg_bits = DRA752_EFUSE_REGBITS, | |
198 | + .gpu.addr = TPS659038_REG_ADDR_SMPS45, | |
199 | + .gpu.pmic = &tps659038, | |
200 | + | |
201 | + .core.value = VDD_CORE_DRA752, | |
202 | + .core.efuse.reg = STD_FUSE_OPP_VMIN_CORE_NOM, | |
203 | + .core.efuse.reg_bits = DRA752_EFUSE_REGBITS, | |
204 | + .core.addr = TPS659038_REG_ADDR_SMPS6, | |
205 | + .core.pmic = &tps659038, | |
206 | + | |
207 | + .iva.value = VDD_IVA_DRA752, | |
208 | + .iva.efuse.reg = STD_FUSE_OPP_VMIN_IVA_NOM, | |
209 | + .iva.efuse.reg_bits = DRA752_EFUSE_REGBITS, | |
210 | + .iva.addr = TPS659038_REG_ADDR_SMPS45, | |
211 | + .iva.pmic = &tps659038, | |
212 | +}; | |
213 | + | |
214 | +void hw_data_init(void) | |
215 | +{ | |
216 | + *prcm = &dra7xx_prcm; | |
217 | + *dplls_data = &dra7xx_dplls; | |
218 | + *omap_vcores = &beagle_x15_volts; | |
219 | + *ctrl = &dra7xx_ctrl; | |
220 | +} | |
221 | + | |
222 | +int board_init(void) | |
223 | +{ | |
224 | + gpmc_init(); | |
225 | + gd->bd->bi_boot_params = (CONFIG_SYS_SDRAM_BASE + 0x100); | |
226 | + | |
227 | + return 0; | |
228 | +} | |
229 | + | |
230 | +int board_late_init(void) | |
231 | +{ | |
232 | + init_sata(0); | |
233 | + /* | |
234 | + * DEV_CTRL.DEV_ON = 1 please - else palmas switches off in 8 seconds | |
235 | + * This is the POWERHOLD-in-Low behavior. | |
236 | + */ | |
237 | + palmas_i2c_write_u8(TPS65903X_CHIP_P1, 0xA0, 0x1); | |
238 | + return 0; | |
239 | +} | |
240 | + | |
241 | +static void do_set_mux32(u32 base, | |
242 | + struct pad_conf_entry const *array, int size) | |
243 | +{ | |
244 | + int i; | |
245 | + struct pad_conf_entry *pad = (struct pad_conf_entry *)array; | |
246 | + | |
247 | + for (i = 0; i < size; i++, pad++) | |
248 | + writel(pad->val, base + pad->offset); | |
249 | +} | |
250 | + | |
251 | +void set_muxconf_regs_essential(void) | |
252 | +{ | |
253 | + do_set_mux32((*ctrl)->control_padconf_core_base, | |
254 | + core_padconf_array_essential, | |
255 | + sizeof(core_padconf_array_essential) / | |
256 | + sizeof(struct pad_conf_entry)); | |
257 | +} | |
258 | + | |
259 | +#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_GENERIC_MMC) | |
260 | +int board_mmc_init(bd_t *bis) | |
261 | +{ | |
262 | + omap_mmc_init(0, 0, 0, -1, -1); | |
263 | + omap_mmc_init(1, 0, 0, -1, -1); | |
264 | + return 0; | |
265 | +} | |
266 | +#endif | |
267 | + | |
268 | +#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_OS_BOOT) | |
269 | +int spl_start_uboot(void) | |
270 | +{ | |
271 | + /* break into full u-boot on 'c' */ | |
272 | + if (serial_tstc() && serial_getc() == 'c') | |
273 | + return 1; | |
274 | + | |
275 | +#ifdef CONFIG_SPL_ENV_SUPPORT | |
276 | + env_init(); | |
277 | + env_relocate_spec(); | |
278 | + if (getenv_yesno("boot_os") != 1) | |
279 | + return 1; | |
280 | +#endif | |
281 | + | |
282 | + return 0; | |
283 | +} | |
284 | +#endif | |
285 | + | |
286 | +#ifdef CONFIG_DRIVER_TI_CPSW | |
287 | + | |
288 | +/* Delay value to add to calibrated value */ | |
289 | +#define RGMII0_TXCTL_DLY_VAL ((0x3 << 5) + 0x8) | |
290 | +#define RGMII0_TXD0_DLY_VAL ((0x3 << 5) + 0x8) | |
291 | +#define RGMII0_TXD1_DLY_VAL ((0x3 << 5) + 0x2) | |
292 | +#define RGMII0_TXD2_DLY_VAL ((0x4 << 5) + 0x0) | |
293 | +#define RGMII0_TXD3_DLY_VAL ((0x4 << 5) + 0x0) | |
294 | +#define VIN2A_D13_DLY_VAL ((0x3 << 5) + 0x8) | |
295 | +#define VIN2A_D17_DLY_VAL ((0x3 << 5) + 0x8) | |
296 | +#define VIN2A_D16_DLY_VAL ((0x3 << 5) + 0x2) | |
297 | +#define VIN2A_D15_DLY_VAL ((0x4 << 5) + 0x0) | |
298 | +#define VIN2A_D14_DLY_VAL ((0x4 << 5) + 0x0) | |
299 | + | |
300 | +static void cpsw_control(int enabled) | |
301 | +{ | |
302 | + /* VTP can be added here */ | |
303 | +} | |
304 | + | |
305 | +static struct cpsw_slave_data cpsw_slaves[] = { | |
306 | + { | |
307 | + .slave_reg_ofs = 0x208, | |
308 | + .sliver_reg_ofs = 0xd80, | |
309 | + .phy_addr = 1, | |
310 | + }, | |
311 | + { | |
312 | + .slave_reg_ofs = 0x308, | |
313 | + .sliver_reg_ofs = 0xdc0, | |
314 | + .phy_addr = 2, | |
315 | + }, | |
316 | +}; | |
317 | + | |
318 | +static struct cpsw_platform_data cpsw_data = { | |
319 | + .mdio_base = CPSW_MDIO_BASE, | |
320 | + .cpsw_base = CPSW_BASE, | |
321 | + .mdio_div = 0xff, | |
322 | + .channels = 8, | |
323 | + .cpdma_reg_ofs = 0x800, | |
324 | + .slaves = 1, | |
325 | + .slave_data = cpsw_slaves, | |
326 | + .ale_reg_ofs = 0xd00, | |
327 | + .ale_entries = 1024, | |
328 | + .host_port_reg_ofs = 0x108, | |
329 | + .hw_stats_reg_ofs = 0x900, | |
330 | + .bd_ram_ofs = 0x2000, | |
331 | + .mac_control = (1 << 5), | |
332 | + .control = cpsw_control, | |
333 | + .host_port_num = 0, | |
334 | + .version = CPSW_CTRL_VERSION_2, | |
335 | +}; | |
336 | + | |
337 | +int board_eth_init(bd_t *bis) | |
338 | +{ | |
339 | + int ret; | |
340 | + uint8_t mac_addr[6]; | |
341 | + uint32_t mac_hi, mac_lo; | |
342 | + uint32_t ctrl_val; | |
343 | + | |
344 | + /* try reading mac address from efuse */ | |
345 | + mac_lo = readl((*ctrl)->control_core_mac_id_0_lo); | |
346 | + mac_hi = readl((*ctrl)->control_core_mac_id_0_hi); | |
347 | + mac_addr[0] = (mac_hi & 0xFF0000) >> 16; | |
348 | + mac_addr[1] = (mac_hi & 0xFF00) >> 8; | |
349 | + mac_addr[2] = mac_hi & 0xFF; | |
350 | + mac_addr[3] = (mac_lo & 0xFF0000) >> 16; | |
351 | + mac_addr[4] = (mac_lo & 0xFF00) >> 8; | |
352 | + mac_addr[5] = mac_lo & 0xFF; | |
353 | + | |
354 | + if (!getenv("ethaddr")) { | |
355 | + printf("<ethaddr> not set. Validating first E-fuse MAC\n"); | |
356 | + | |
357 | + if (is_valid_ether_addr(mac_addr)) | |
358 | + eth_setenv_enetaddr("ethaddr", mac_addr); | |
359 | + } | |
360 | + | |
361 | + mac_lo = readl((*ctrl)->control_core_mac_id_1_lo); | |
362 | + mac_hi = readl((*ctrl)->control_core_mac_id_1_hi); | |
363 | + mac_addr[0] = (mac_hi & 0xFF0000) >> 16; | |
364 | + mac_addr[1] = (mac_hi & 0xFF00) >> 8; | |
365 | + mac_addr[2] = mac_hi & 0xFF; | |
366 | + mac_addr[3] = (mac_lo & 0xFF0000) >> 16; | |
367 | + mac_addr[4] = (mac_lo & 0xFF00) >> 8; | |
368 | + mac_addr[5] = mac_lo & 0xFF; | |
369 | + | |
370 | + if (!getenv("eth1addr")) { | |
371 | + if (is_valid_ether_addr(mac_addr)) | |
372 | + eth_setenv_enetaddr("eth1addr", mac_addr); | |
373 | + } | |
374 | + | |
375 | + ctrl_val = readl((*ctrl)->control_core_control_io1) & (~0x33); | |
376 | + ctrl_val |= 0x22; | |
377 | + writel(ctrl_val, (*ctrl)->control_core_control_io1); | |
378 | + | |
379 | + ret = cpsw_register(&cpsw_data); | |
380 | + if (ret < 0) | |
381 | + printf("Error %d registering CPSW switch\n", ret); | |
382 | + | |
383 | + return ret; | |
384 | +} | |
385 | +#endif | |
386 | + | |
387 | +#ifdef CONFIG_USB_XHCI_OMAP | |
388 | +int board_usb_init(int index, enum usb_init_type init) | |
389 | +{ | |
390 | + setbits_le32((*prcm)->cm_l3init_usb_otg_ss_clkctrl, | |
391 | + OTG_SS_CLKCTRL_MODULEMODE_HW | OPTFCLKEN_REFCLK960M); | |
392 | + | |
393 | + return 0; | |
394 | +} | |
395 | +#endif |
board/ti/beagle_x15/mux_data.h
1 | +/* | |
2 | + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com | |
3 | + * | |
4 | + * Author: Felipe Balbi <balbi@ti.com> | |
5 | + * | |
6 | + * Based on board/ti/dra7xx/evm.c | |
7 | + * | |
8 | + * SPDX-License-Identifier: GPL-2.0+ | |
9 | + */ | |
10 | +#ifndef _MUX_DATA_BEAGLE_X15_H_ | |
11 | +#define _MUX_DATA_BEAGLE_X15_H_ | |
12 | + | |
13 | +#include <asm/arch/mux_dra7xx.h> | |
14 | + | |
15 | +const struct pad_conf_entry core_padconf_array_essential[] = { | |
16 | + {MMC1_CLK, (IEN | PTU | PDIS | M0)}, /* MMC1_CLK */ | |
17 | + {MMC1_CMD, (IEN | PTU | PDIS | M0)}, /* MMC1_CMD */ | |
18 | + {MMC1_DAT0, (IEN | PTU | PDIS | M0)}, /* MMC1_DAT0 */ | |
19 | + {MMC1_DAT1, (IEN | PTU | PDIS | M0)}, /* MMC1_DAT1 */ | |
20 | + {MMC1_DAT2, (IEN | PTU | PDIS | M0)}, /* MMC1_DAT2 */ | |
21 | + {MMC1_DAT3, (IEN | PTU | PDIS | M0)}, /* MMC1_DAT3 */ | |
22 | + {MMC1_SDCD, (FSC | IEN | PTU | PDIS | M0)}, /* MMC1_SDCD */ | |
23 | + {MMC1_SDWP, (FSC | IEN | PTD | PEN | M14)}, /* MMC1_SDWP */ | |
24 | + {GPMC_A19, (IEN | PTU | PDIS | M1)}, /* mmc2_dat4 */ | |
25 | + {GPMC_A20, (IEN | PTU | PDIS | M1)}, /* mmc2_dat5 */ | |
26 | + {GPMC_A21, (IEN | PTU | PDIS | M1)}, /* mmc2_dat6 */ | |
27 | + {GPMC_A22, (IEN | PTU | PDIS | M1)}, /* mmc2_dat7 */ | |
28 | + {GPMC_A23, (IEN | PTU | PDIS | M1)}, /* mmc2_clk */ | |
29 | + {GPMC_A24, (IEN | PTU | PDIS | M1)}, /* mmc2_dat0 */ | |
30 | + {GPMC_A25, (IEN | PTU | PDIS | M1)}, /* mmc2_dat1 */ | |
31 | + {GPMC_A26, (IEN | PTU | PDIS | M1)}, /* mmc2_dat2 */ | |
32 | + {GPMC_A27, (IEN | PTU | PDIS | M1)}, /* mmc2_dat3 */ | |
33 | + {GPMC_CS1, (IEN | PTU | PDIS | M1)}, /* mmm2_cmd */ | |
34 | + {UART3_RXD, (FSC | IEN | PTU | PDIS | M0)}, /* UART3_RXD */ | |
35 | + {UART3_TXD, (FSC | IEN | PTU | PDIS | M0)}, /* UART3_TXD */ | |
36 | + {I2C1_SDA, (IEN | PTU | PDIS | M0)}, /* I2C1_SDA */ | |
37 | + {I2C1_SCL, (IEN | PTU | PDIS | M0)}, /* I2C1_SCL */ | |
38 | + {MDIO_MCLK, (PTU | PEN | M0)}, /* MDIO_MCLK */ | |
39 | + {MDIO_D, (IEN | PTU | PEN | M0)}, /* MDIO_D */ | |
40 | + {RGMII0_TXC, (M0) }, | |
41 | + {RGMII0_TXCTL, (M0) }, | |
42 | + {RGMII0_TXD3, (M0) }, | |
43 | + {RGMII0_TXD2, (M0) }, | |
44 | + {RGMII0_TXD1, (M0) }, | |
45 | + {RGMII0_TXD0, (M0) }, | |
46 | + {RGMII0_RXC, (IEN | M0) }, | |
47 | + {RGMII0_RXCTL, (IEN | M0) }, | |
48 | + {RGMII0_RXD3, (IEN | M0) }, | |
49 | + {RGMII0_RXD2, (IEN | M0) }, | |
50 | + {RGMII0_RXD1, (IEN | M0) }, | |
51 | + {RGMII0_RXD0, (IEN | M0) }, | |
52 | + {USB1_DRVVBUS, (M0 | FSC) }, | |
53 | + {SPI1_CS1, (PEN | IDIS | M14) }, /* GPIO7_11 */ | |
54 | +}; | |
55 | +#endif /* _MUX_DATA_BEAGLE_X15_H_ */ |
board/ti/dra7xx/evm.c
... | ... | @@ -96,18 +96,6 @@ |
96 | 96 | return 0; |
97 | 97 | } |
98 | 98 | |
99 | -/** | |
100 | - * @brief misc_init_r - Configure EVM board specific configurations | |
101 | - * such as power configurations, ethernet initialization as phase2 of | |
102 | - * boot sequence | |
103 | - * | |
104 | - * @return 0 | |
105 | - */ | |
106 | -int misc_init_r(void) | |
107 | -{ | |
108 | - return 0; | |
109 | -} | |
110 | - | |
111 | 99 | static void do_set_mux32(u32 base, |
112 | 100 | struct pad_conf_entry const *array, int size) |
113 | 101 | { |
board/ti/dra7xx/mux_data.h
... | ... | @@ -130,8 +130,8 @@ |
130 | 130 | {GPMC_A13, (IEN | PDIS | M1)}, /* QSPI1_RTCLK */ |
131 | 131 | {GPMC_A14, (IEN | PDIS | M1)}, /* QSPI1_D[3] */ |
132 | 132 | {GPMC_A15, (IEN | PDIS | M1)}, /* QSPI1_D[2] */ |
133 | - {GPMC_A16, (IEN | PDIS | M1)}, /* QSPI1_D[1] */ | |
134 | - {GPMC_A17, (IEN | PDIS | M1)}, /* QSPI1_D[0] */ | |
133 | + {GPMC_A16, (IEN | PDIS | M1)}, /* QSPI1_D[0] */ | |
134 | + {GPMC_A17, (IEN | PDIS | M1)}, /* QSPI1_D[1] */ | |
135 | 135 | {GPMC_A18, (M1)}, /* QSPI1_SCLK */ |
136 | 136 | {GPMC_A3, (IEN | PDIS | M1)}, /* QSPI1_CS2 */ |
137 | 137 | {GPMC_A4, (IEN | PDIS | M1)}, /* QSPI1_CS3 */ |
board/ti/evm/evm.c
... | ... | @@ -20,6 +20,7 @@ |
20 | 20 | #include <asm/arch/mmc_host_def.h> |
21 | 21 | #include <asm/gpio.h> |
22 | 22 | #include <i2c.h> |
23 | +#include <twl4030.h> | |
23 | 24 | #include <asm/mach-types.h> |
24 | 25 | #include <linux/mtd/nand.h> |
25 | 26 | #include "evm.h" |
... | ... | @@ -262,6 +263,13 @@ |
262 | 263 | int board_mmc_init(bd_t *bis) |
263 | 264 | { |
264 | 265 | return omap_mmc_init(0, 0, 0, -1, -1); |
266 | +} | |
267 | +#endif | |
268 | + | |
269 | +#if defined(CONFIG_GENERIC_MMC) | |
270 | +void board_mmc_power_init(void) | |
271 | +{ | |
272 | + twl4030_power_mmc_init(0); | |
265 | 273 | } |
266 | 274 | #endif |
board/ti/sdp3430/sdp.c
board/timll/devkit8000/devkit8000.c
... | ... | @@ -124,6 +124,13 @@ |
124 | 124 | } |
125 | 125 | #endif |
126 | 126 | |
127 | +#if defined(CONFIG_GENERIC_MMC) | |
128 | +void board_mmc_power_init(void) | |
129 | +{ | |
130 | + twl4030_power_mmc_init(0); | |
131 | +} | |
132 | +#endif | |
133 | + | |
127 | 134 | #if defined(CONFIG_DRIVER_DM9000) & !defined(CONFIG_SPL_BUILD) |
128 | 135 | /* |
129 | 136 | * Routine: board_eth_init |
configs/beagle_x15_defconfig
drivers/mmc/mmc.c
... | ... | @@ -1277,6 +1277,11 @@ |
1277 | 1277 | } |
1278 | 1278 | #endif |
1279 | 1279 | |
1280 | +/* board-specific MMC power initializations. */ | |
1281 | +__weak void board_mmc_power_init(void) | |
1282 | +{ | |
1283 | +} | |
1284 | + | |
1280 | 1285 | int mmc_start_init(struct mmc *mmc) |
1281 | 1286 | { |
1282 | 1287 | int err; |
... | ... | @@ -1292,6 +1297,8 @@ |
1292 | 1297 | |
1293 | 1298 | if (mmc->has_init) |
1294 | 1299 | return 0; |
1300 | + | |
1301 | + board_mmc_power_init(); | |
1295 | 1302 | |
1296 | 1303 | /* made sure it's not NULL earlier */ |
1297 | 1304 | err = mmc->cfg->ops->init(mmc); |
drivers/mmc/omap_hsmmc.c
... | ... | @@ -135,12 +135,7 @@ |
135 | 135 | pbias_lite = readl(&t2_base->pbias_lite); |
136 | 136 | pbias_lite &= ~(PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0); |
137 | 137 | writel(pbias_lite, &t2_base->pbias_lite); |
138 | -#endif | |
139 | -#if defined(CONFIG_TWL4030_POWER) | |
140 | - twl4030_power_mmc_init(); | |
141 | - mdelay(100); /* ramp-up delay from Linux code */ | |
142 | -#endif | |
143 | -#if defined(CONFIG_OMAP34XX) | |
138 | + | |
144 | 139 | writel(pbias_lite | PBIASLITEPWRDNZ1 | |
145 | 140 | PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, |
146 | 141 | &t2_base->pbias_lite); |
... | ... | @@ -663,7 +658,8 @@ |
663 | 658 | case 1: |
664 | 659 | priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC2_BASE; |
665 | 660 | #if (defined(CONFIG_OMAP44XX) || defined(CONFIG_OMAP54XX) || \ |
666 | - defined(CONFIG_DRA7XX)) && defined(CONFIG_HSMMC2_8BIT) | |
661 | + defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)) && \ | |
662 | + defined(CONFIG_HSMMC2_8BIT) | |
667 | 663 | /* Enable 8-bit interface for eMMC on OMAP4/5 or DRA7XX */ |
668 | 664 | host_caps_val |= MMC_MODE_8BIT; |
669 | 665 | #endif |
... | ... | @@ -672,7 +668,7 @@ |
672 | 668 | #ifdef OMAP_HSMMC3_BASE |
673 | 669 | case 2: |
674 | 670 | priv_data->base_addr = (struct hsmmc *)OMAP_HSMMC3_BASE; |
675 | -#if defined(CONFIG_DRA7XX) && defined(CONFIG_HSMMC3_8BIT) | |
671 | +#if (defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX)) && defined(CONFIG_HSMMC3_8BIT) | |
676 | 672 | /* Enable 8-bit interface for eMMC on DRA7XX */ |
677 | 673 | host_caps_val |= MMC_MODE_8BIT; |
678 | 674 | #endif |
drivers/mtd/nand/omap_gpmc.c
... | ... | @@ -73,15 +73,12 @@ |
73 | 73 | writeb(cmd, this->IO_ADDR_W); |
74 | 74 | } |
75 | 75 | |
76 | -#ifdef CONFIG_SPL_BUILD | |
77 | 76 | /* Check wait pin as dev ready indicator */ |
78 | -static int omap_spl_dev_ready(struct mtd_info *mtd) | |
77 | +static int omap_dev_ready(struct mtd_info *mtd) | |
79 | 78 | { |
80 | 79 | return gpmc_cfg->status & (1 << 8); |
81 | 80 | } |
82 | -#endif | |
83 | 81 | |
84 | - | |
85 | 82 | /* |
86 | 83 | * gen_true_ecc - This function will generate true ECC value, which |
87 | 84 | * can be used when correcting data read from NAND flash memory core |
88 | 85 | |
... | ... | @@ -887,8 +884,10 @@ |
887 | 884 | nand->read_buf = nand_read_buf16; |
888 | 885 | else |
889 | 886 | nand->read_buf = nand_read_buf; |
890 | - nand->dev_ready = omap_spl_dev_ready; | |
891 | 887 | #endif |
888 | + | |
889 | + nand->dev_ready = omap_dev_ready; | |
890 | + | |
892 | 891 | return 0; |
893 | 892 | } |
drivers/power/palmas.c
drivers/power/twl4030.c
... | ... | @@ -91,18 +91,24 @@ |
91 | 91 | TWL4030_PM_RECEIVER_DEV_GRP_P1); |
92 | 92 | } |
93 | 93 | |
94 | -void twl4030_power_mmc_init(void) | |
94 | +void twl4030_power_mmc_init(int dev_index) | |
95 | 95 | { |
96 | - /* Set VMMC1 to 3.15 Volts */ | |
97 | - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VMMC1_DEDICATED, | |
98 | - TWL4030_PM_RECEIVER_VMMC1_VSEL_32, | |
99 | - TWL4030_PM_RECEIVER_VMMC1_DEV_GRP, | |
100 | - TWL4030_PM_RECEIVER_DEV_GRP_P1); | |
96 | + if (dev_index == 0) { | |
97 | + /* Set VMMC1 to 3.15 Volts */ | |
98 | + twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VMMC1_DEDICATED, | |
99 | + TWL4030_PM_RECEIVER_VMMC1_VSEL_32, | |
100 | + TWL4030_PM_RECEIVER_VMMC1_DEV_GRP, | |
101 | + TWL4030_PM_RECEIVER_DEV_GRP_P1); | |
101 | 102 | |
102 | - /* Set VMMC2 to 3.15 Volts */ | |
103 | - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VMMC2_DEDICATED, | |
104 | - TWL4030_PM_RECEIVER_VMMC2_VSEL_32, | |
105 | - TWL4030_PM_RECEIVER_VMMC2_DEV_GRP, | |
106 | - TWL4030_PM_RECEIVER_DEV_GRP_P1); | |
103 | + mdelay(100); /* ramp-up delay from Linux code */ | |
104 | + } else if (dev_index == 1) { | |
105 | + /* Set VMMC2 to 3.15 Volts */ | |
106 | + twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VMMC2_DEDICATED, | |
107 | + TWL4030_PM_RECEIVER_VMMC2_VSEL_32, | |
108 | + TWL4030_PM_RECEIVER_VMMC2_DEV_GRP, | |
109 | + TWL4030_PM_RECEIVER_DEV_GRP_P1); | |
110 | + | |
111 | + mdelay(100); /* ramp-up delay from Linux code */ | |
112 | + } | |
107 | 113 | } |
drivers/serial/ns16550.c
... | ... | @@ -132,11 +132,12 @@ |
132 | 132 | |
133 | 133 | void NS16550_init(NS16550_t com_port, int baud_divisor) |
134 | 134 | { |
135 | -#if (defined(CONFIG_SPL_BUILD) && defined(CONFIG_OMAP34XX)) | |
135 | +#if (defined(CONFIG_SPL_BUILD) && \ | |
136 | + (defined(CONFIG_OMAP34XX) || defined(CONFIG_OMAP44XX))) | |
136 | 137 | /* |
137 | - * On some OMAP3 devices when UART3 is configured for boot mode before | |
138 | - * SPL starts only THRE bit is set. We have to empty the transmitter | |
139 | - * before initialization starts. | |
138 | + * On some OMAP3/OMAP4 devices when UART3 is configured for boot mode | |
139 | + * before SPL starts only THRE bit is set. We have to empty the | |
140 | + * transmitter before initialization starts. | |
140 | 141 | */ |
141 | 142 | if ((serial_in(&com_port->lsr) & (UART_LSR_TEMT | UART_LSR_THRE)) |
142 | 143 | == UART_LSR_THRE) { |
drivers/spi/ti_qspi.c
... | ... | @@ -102,7 +102,7 @@ |
102 | 102 | struct spi_slave *slave = &qslave->slave; |
103 | 103 | u32 memval = 0; |
104 | 104 | |
105 | -#ifdef CONFIG_DRA7XX | |
105 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
106 | 106 | slave->memory_map = (void *)MMAP_START_ADDR_DRA; |
107 | 107 | #else |
108 | 108 | slave->memory_map = (void *)MMAP_START_ADDR_AM43x; |
... | ... | @@ -244,7 +244,7 @@ |
244 | 244 | uint status; |
245 | 245 | int timeout; |
246 | 246 | |
247 | -#ifdef CONFIG_DRA7XX | |
247 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
248 | 248 | int val; |
249 | 249 | #endif |
250 | 250 | |
... | ... | @@ -254,7 +254,7 @@ |
254 | 254 | /* Setup mmap flags */ |
255 | 255 | if (flags & SPI_XFER_MMAP) { |
256 | 256 | writel(MM_SWITCH, &qslave->base->memswitch); |
257 | -#ifdef CONFIG_DRA7XX | |
257 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
258 | 258 | val = readl(CORE_CTRL_IO); |
259 | 259 | val |= MEM_CS; |
260 | 260 | writel(val, CORE_CTRL_IO); |
... | ... | @@ -262,7 +262,7 @@ |
262 | 262 | return 0; |
263 | 263 | } else if (flags & SPI_XFER_MMAP_END) { |
264 | 264 | writel(~MM_SWITCH, &qslave->base->memswitch); |
265 | -#ifdef CONFIG_DRA7XX | |
265 | +#if defined(CONFIG_DRA7XX) || defined(CONFIG_AM57XX) | |
266 | 266 | val = readl(CORE_CTRL_IO); |
267 | 267 | val &= MEM_CS_UNSELECT; |
268 | 268 | writel(val, CORE_CTRL_IO); |
drivers/usb/phy/omap_usb_phy.c
... | ... | @@ -118,7 +118,6 @@ |
118 | 118 | void omap_usb3_phy_init(struct omap_usb3_phy *phy_regs) |
119 | 119 | { |
120 | 120 | omap_usb_dpll_lock(phy_regs); |
121 | - | |
122 | 121 | usb3_phy_partial_powerup(phy_regs); |
123 | 122 | /* |
124 | 123 | * Give enough time for the PHY to partially power-up before |
... | ... | @@ -126,7 +125,6 @@ |
126 | 125 | * team. |
127 | 126 | */ |
128 | 127 | mdelay(100); |
129 | - usb3_phy_power(1); | |
130 | 128 | } |
131 | 129 | |
132 | 130 | static void omap_enable_usb3_phy(struct omap_xhci *omap) |
include/configs/beagle_x15.h
1 | +/* | |
2 | + * (C) Copyright 2014 | |
3 | + * Texas Instruments Incorporated. | |
4 | + * Felipe Balbi <balbi@ti.com> | |
5 | + * | |
6 | + * Configuration settings for the TI Beagle x15 board. | |
7 | + * See ti_omap5_common.h for omap5 common settings. | |
8 | + * | |
9 | + * SPDX-License-Identifier: GPL-2.0+ | |
10 | + */ | |
11 | + | |
12 | +#ifndef __CONFIG_BEAGLE_X15_H | |
13 | +#define __CONFIG_BEAGLE_X15_H | |
14 | + | |
15 | +#define CONFIG_AM57XX | |
16 | + | |
17 | +#define CONFIG_NR_DRAM_BANKS 2 | |
18 | + | |
19 | +#define CONFIG_ENV_SIZE (64 << 10) | |
20 | +#define CONFIG_ENV_IS_IN_FAT | |
21 | +#define FAT_ENV_INTERFACE "mmc" | |
22 | +#define FAT_ENV_DEVICE_AND_PART "0:1" | |
23 | +#define FAT_ENV_FILE "uboot.env" | |
24 | + | |
25 | +#define CONFIG_CMD_SAVEENV | |
26 | + | |
27 | +#define CONSOLEDEV "ttyO2" | |
28 | +#define CONFIG_SYS_NS16550_COM1 UART1_BASE /* Base EVM has UART0 */ | |
29 | +#define CONFIG_SYS_NS16550_COM2 UART2_BASE /* UART2 */ | |
30 | +#define CONFIG_SYS_NS16550_COM3 UART3_BASE /* UART3 */ | |
31 | +#define CONFIG_BAUDRATE 115200 | |
32 | + | |
33 | +#define CONFIG_SYS_OMAP_ABE_SYSCK | |
34 | + | |
35 | +/* Define the default GPT table for eMMC */ | |
36 | +#define PARTS_DEFAULT \ | |
37 | + "uuid_disk=${uuid_gpt_disk};" \ | |
38 | + "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}" | |
39 | + | |
40 | +#include <configs/ti_omap5_common.h> | |
41 | + | |
42 | +/* Enhance our eMMC support / experience. */ | |
43 | +#define CONFIG_CMD_GPT | |
44 | +#define CONFIG_EFI_PARTITION | |
45 | +#define CONFIG_PARTITION_UUIDS | |
46 | +#define CONFIG_CMD_PART | |
47 | + | |
48 | +/* CPSW Ethernet */ | |
49 | +#define CONFIG_CMD_NET /* 'bootp' and 'tftp' */ | |
50 | +#define CONFIG_CMD_DHCP | |
51 | +#define CONFIG_BOOTP_DNS /* Configurable parts of CMD_DHCP */ | |
52 | +#define CONFIG_BOOTP_DNS2 | |
53 | +#define CONFIG_BOOTP_SEND_HOSTNAME | |
54 | +#define CONFIG_BOOTP_GATEWAY | |
55 | +#define CONFIG_BOOTP_SUBNETMASK | |
56 | +#define CONFIG_NET_RETRY_COUNT 10 | |
57 | +#define CONFIG_CMD_PING | |
58 | +#define CONFIG_CMD_MII | |
59 | +#define CONFIG_DRIVER_TI_CPSW /* Driver for IP block */ | |
60 | +#define CONFIG_MII /* Required in net/eth.c */ | |
61 | +#define CONFIG_PHY_GIGE /* per-board part of CPSW */ | |
62 | +#define CONFIG_PHYLIB | |
63 | + | |
64 | +#define CONFIG_SUPPORT_EMMC_BOOT | |
65 | + | |
66 | +/* USB xHCI HOST */ | |
67 | +#define CONFIG_CMD_USB | |
68 | +#define CONFIG_USB_HOST | |
69 | +#define CONFIG_USB_XHCI | |
70 | +#define CONFIG_USB_XHCI_OMAP | |
71 | +#define CONFIG_USB_STORAGE | |
72 | +#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 | |
73 | + | |
74 | +#define CONFIG_OMAP_USB_PHY | |
75 | +#define CONFIG_OMAP_USB3PHY1_HOST | |
76 | + | |
77 | +/* SATA */ | |
78 | +#define CONFIG_BOARD_LATE_INIT | |
79 | +#define CONFIG_CMD_SCSI | |
80 | +#define CONFIG_LIBATA | |
81 | +#define CONFIG_SCSI_AHCI | |
82 | +#define CONFIG_SCSI_AHCI_PLAT | |
83 | +#define CONFIG_SYS_SCSI_MAX_SCSI_ID 1 | |
84 | +#define CONFIG_SYS_SCSI_MAX_LUN 1 | |
85 | +#define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ | |
86 | + CONFIG_SYS_SCSI_MAX_LUN) | |
87 | + | |
88 | +#endif /* __CONFIG_BEAGLE_X5_H */ |
include/configs/cm_t54.h
include/configs/dra7xx_evm.h
include/configs/omap5_uevm.h
include/configs/pxm2.h
include/configs/rut.h
include/configs/ti_omap5_common.h
... | ... | @@ -19,7 +19,6 @@ |
19 | 19 | |
20 | 20 | #define CONFIG_DISPLAY_CPUINFO |
21 | 21 | #define CONFIG_DISPLAY_BOARDINFO |
22 | -#define CONFIG_MISC_INIT_R | |
23 | 22 | #define CONFIG_ARCH_CPU_INIT |
24 | 23 | |
25 | 24 | #define CONFIG_SYS_CACHELINE_SIZE 64 |
... | ... | @@ -79,7 +78,7 @@ |
79 | 78 | "partitions=" PARTS_DEFAULT "\0" \ |
80 | 79 | "optargs=\0" \ |
81 | 80 | "mmcdev=0\0" \ |
82 | - "mmcroot=/dev/mmcblk1p2 rwp2 rw\0" \" \ | |
81 | + "mmcroot=/dev/mmcblk0p2 rwp2 rw\0" \" \ | |
83 | 82 | "mmcrootfstype=ext4 rootwait\0" \ |
84 | 83 | "mmcargs=setenv bootargs console=${console} " \ |
85 | 84 | "${optargs} " \ |
... | ... | @@ -118,6 +117,8 @@ |
118 | 117 | "setenv fdtfile dra7-evm.dtb; fi;" \ |
119 | 118 | "if test $board_name = dra72x; then " \ |
120 | 119 | "setenv fdtfile dra72-evm.dtb; fi;" \ |
120 | + "if test $board_name = beagle_x15; then " \ | |
121 | + "setenv fdtfile am57xx-beagle-x15.dtb; fi;" \ | |
121 | 122 | "if test $fdtfile = undefined; then " \ |
122 | 123 | "echo WARNING: Could not determine device tree to use; fi; \0" \ |
123 | 124 | "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};\0" \ |
include/linux/usb/xhci-omap.h
... | ... | @@ -14,6 +14,10 @@ |
14 | 14 | #define OMAP_XHCI_BASE 0x488d0000 |
15 | 15 | #define OMAP_OCP1_SCP_BASE 0x4A081000 |
16 | 16 | #define OMAP_OTG_WRAPPER_BASE 0x488c0000 |
17 | +#elif defined CONFIG_AM57XX | |
18 | +#define OMAP_XHCI_BASE 0x48890000 | |
19 | +#define OMAP_OCP1_SCP_BASE 0x4A084c00 | |
20 | +#define OMAP_OTG_WRAPPER_BASE 0x48880000 | |
17 | 21 | #elif defined CONFIG_AM43XX |
18 | 22 | #define OMAP_XHCI_BASE 0x483d0000 |
19 | 23 | #define OMAP_OCP1_SCP_BASE 0x483E8000 |
include/mmc.h
include/twl4030.h