X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=board%2Fti%2Fbeagle%2Fbeagle.c;h=a6908d4bed5bfe5e11de4b66628c69a5cb1cdf82;hb=2d8d190c8394b43c0989cdb04a50cb48d4e1f8da;hp=0674afdc0946b0311081525a87d6441a121f8e30;hpb=f4617ef86dbbc2b844d530564694b927099bf0a9;p=platform%2Fkernel%2Fu-boot.git diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c index 0674afd..a6908d4 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c @@ -14,7 +14,9 @@ * SPDX-License-Identifier: GPL-2.0+ */ #include -#ifdef CONFIG_STATUS_LED +#include +#include +#ifdef CONFIG_LED_STATUS #include #endif #include @@ -27,7 +29,7 @@ #include #include #include -#include +#include #include #include #include @@ -70,6 +72,18 @@ static struct { char env_setting[64]; } expansion_config; +static const struct ns16550_platdata beagle_serial = { + .base = OMAP34XX_UART3, + .reg_shift = 2, + .clock = V_NS16550_CLK, + .fcr = UART_FCR_DEFVAL, +}; + +U_BOOT_DEVICE(beagle_uart) = { + "ns16550_serial", + &beagle_serial +}; + /* * Routine: board_init * Description: Early hardware init. @@ -82,8 +96,8 @@ int board_init(void) /* boot param addr */ gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100); -#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT) - status_led_set (STATUS_LED_BOOT, STATUS_LED_ON); +#if defined(CONFIG_LED_STATUS) && defined(CONFIG_LED_STATUS_BOOT_ENABLE) + status_led_set(CONFIG_LED_STATUS_BOOT, CONFIG_LED_STATUS_ON); #endif return 0; @@ -103,22 +117,22 @@ int board_init(void) */ static int get_board_revision(void) { - int revision; - - if (!gpio_request(171, "") && - !gpio_request(172, "") && - !gpio_request(173, "")) { - - gpio_direction_input(171); - gpio_direction_input(172); - gpio_direction_input(173); - - revision = gpio_get_value(173) << 2 | - gpio_get_value(172) << 1 | - gpio_get_value(171); - } else { - printf("Error: unable to acquire board revision GPIOs\n"); - revision = -1; + static int revision = -1; + + if (revision == -1) { + if (!gpio_request(171, "rev0") && + !gpio_request(172, "rev1") && + !gpio_request(173, "rev2")) { + gpio_direction_input(171); + gpio_direction_input(172); + gpio_direction_input(173); + + revision = gpio_get_value(173) << 2 | + gpio_get_value(172) << 1 | + gpio_get_value(171); + } else { + printf("Error: unable to acquire board revision GPIOs\n"); + } } return revision; @@ -258,7 +272,7 @@ static void beagle_dvi_pup(void) case REVISION_AXBX: case REVISION_CX: case REVISION_C4: - gpio_request(170, ""); + gpio_request(170, "dvi"); gpio_direction_output(170, 0); gpio_set_value(170, 1); break; @@ -293,12 +307,12 @@ static struct omap_musb_board_data musb_board_data = { }; static struct musb_hdrc_platform_data musb_plat = { -#if defined(CONFIG_MUSB_HOST) +#if defined(CONFIG_USB_MUSB_HOST) .mode = MUSB_HOST, -#elif defined(CONFIG_MUSB_GADGET) +#elif defined(CONFIG_USB_MUSB_GADGET) .mode = MUSB_PERIPHERAL, #else -#error "Please define either CONFIG_MUSB_HOST or CONFIG_MUSB_GADGET" +#error "Please define either CONFIG_USB_MUSB_HOST or CONFIG_USB_MUSB_GADGET" #endif .config = &musb_config, .power = 100, @@ -317,9 +331,12 @@ int misc_init_r(void) struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; bool generate_fake_mac = false; + u32 value; /* Enable i2c2 pullup resisters */ - writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); + value = readl(&prog_io_base->io1); + value &= ~(PRG_I2C2_PULLUPRESX); + writel(value, &prog_io_base->io1); switch (get_board_revision()) { case REVISION_AXBX: @@ -478,7 +495,7 @@ int misc_init_r(void) writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); - dieid_num_r(); + omap_die_id_display(); #ifdef CONFIG_VIDEO_OMAP3 beagle_dvi_pup(); @@ -490,12 +507,8 @@ int misc_init_r(void) musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); #endif - if (generate_fake_mac) { - u32 id[4]; - - get_dieid(id); - usb_fake_mac_from_die_id(id); - } + if (generate_fake_mac) + omap_die_id_usbethaddr(); return 0; } @@ -518,6 +531,13 @@ int board_mmc_init(bd_t *bis) } #endif +#if defined(CONFIG_GENERIC_MMC) +void board_mmc_power_init(void) +{ + twl4030_power_mmc_init(0); +} +#endif + #if defined(CONFIG_USB_EHCI) && !defined(CONFIG_SPL_BUILD) /* Call usb_stop() before starting the kernel */ void show_boot_progress(int val) @@ -545,7 +565,7 @@ int ehci_hcd_stop(int index) #endif /* CONFIG_USB_EHCI */ -#if defined(CONFIG_USB_ETHER) && defined(CONFIG_MUSB_GADGET) +#if defined(CONFIG_USB_ETHER) && defined(CONFIG_USB_MUSB_GADGET) int board_eth_init(bd_t *bis) { return usb_eth_initialize(bis);