board/BuR/kwb: switch to board HW-Rev3
authorHannes Petermaier <oe5hpm@oevsv.at>
Tue, 3 Feb 2015 12:22:39 +0000 (13:22 +0100)
committerTom Rini <trini@konsulko.com>
Fri, 6 Mar 2015 01:13:19 +0000 (20:13 -0500)
The board has been redesigned, therefore we need from now other I/O Pins to
mux and handle.

Older boards aren't supported from now anymore.

Signed-off-by: Hannes Petermaier <oe5hpm@oevsv.at>
board/BuR/kwb/board.c
board/BuR/kwb/mux.c
include/configs/kwb.h

index 804765a8de9b7866780f99ae39422c6f712efc84..30900bc4b22ce0e955fee99142cd74b84fe10628 100644 (file)
 #include <i2c.h>
 #include <power/tps65217.h>
 #include "../common/bur_common.h"
+#include <lcd.h>
 
 /* -------------------------------------------------------------------------*/
 /* -- defines for used GPIO Hardware -- */
-#define KEY                                            (0+4)
-#define LCD_PWR                                                (0+5)
-#define PUSH_KEY                                       (0+31)
-#define USB2SD_NRST                                    (32+29)
-#define USB2SD_PWR                                     (96+13)
+#define ESC_KEY                                        (0+19)
+#define LCD_PWR                                        (0+5)
+#define PUSH_KEY                               (0+31)
 /* -------------------------------------------------------------------------*/
 /* -- PSOC Resetcontroller Register defines -- */
 
@@ -46,6 +45,7 @@
 
 /* -- defines for RSTCTRL_CTRLREG  -- */
 #define        RSTCTRL_FORCE_PWR_NEN                   0x0404
+#define        RSTCTRL_CAN_STB                         0x4040
 
 #if defined(CONFIG_SPL_BUILD)
 /* TODO: check ram-timing ! */
@@ -107,10 +107,13 @@ void am33xx_spl_board_init(void)
                &cmper->epwmss0clkctrl,
                &cmper->epwmss1clkctrl,
                &cmper->epwmss2clkctrl,
+               &cmper->lcdclkctrl,
+               &cmper->lcdcclkstctrl,
                0
        };
        do_enable_clocks(clk_domains, clk_modules_kwbspecific, 1);
-
+       /* setup LCD-Pixel Clock */
+       writel(0x2, CM_DPLL + 0x34);
        /* power-OFF LCD-Display */
        gpio_direction_output(LCD_PWR, 0);
 
@@ -121,7 +124,7 @@ void am33xx_spl_board_init(void)
        /* power-ON  3V3 via Resetcontroller */
        oldspeed = i2c_get_bus_speed();
        if (i2c_set_bus_speed(CONFIG_SYS_OMAP24_I2C_SPEED_PSOC) >= 0) {
-               buf = RSTCTRL_FORCE_PWR_NEN;
+               buf = RSTCTRL_FORCE_PWR_NEN | RSTCTRL_CAN_STB;
                i2c_write(RSTCTRL_ADDR, RSTCTRL_CTRLREG, 1,
                          (uint8_t *)&buf, sizeof(buf));
                i2c_set_bus_speed(oldspeed);
@@ -129,15 +132,6 @@ void am33xx_spl_board_init(void)
                puts("ERROR: i2c_set_bus_speed failed! (turn on PWR_nEN)\n");
        }
 
-#if defined(CONFIG_AM335X_USB0)
-       /* power on USB2SD Controller */
-       gpio_direction_output(USB2SD_PWR, 1);
-       mdelay(1);
-       /* give a reset Pulse to USB2SD Controller */
-       gpio_direction_output(USB2SD_NRST, 0);
-       mdelay(1);
-       gpio_set_value(USB2SD_NRST, 1);
-#endif
        pmicsetup(0);
 }
 
@@ -166,7 +160,6 @@ int board_init(void)
 #ifdef CONFIG_BOARD_LATE_INIT
 int board_late_init(void)
 {
-       const unsigned int ton  = 250;
        const unsigned int toff = 1000;
        unsigned int cnt  = 3;
        unsigned short buf = 0xAAAA;
@@ -175,50 +168,77 @@ int board_late_init(void)
        tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
                           TPS65217_WLEDCTRL2, 0x32, 0xFF); /* 50% dimlevel */
 
-       if (gpio_get_value(KEY)) {
+       if (gpio_get_value(ESC_KEY)) {
                do {
-                       /* turn on light */
-                       tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
-                                          TPS65217_WLEDCTRL1, 0x09, 0xFF);
-                       mdelay(ton);
-                       /* turn off light */
-                       tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
-                                          TPS65217_WLEDCTRL1, 0x01, 0xFF);
+                       lcd_position_cursor(1, 8);
+                       switch (cnt) {
+                       case 3:
+                               lcd_puts(
+                               "release ESC-KEY to enter SERVICE-mode.");
+                               break;
+                       case 2:
+                               lcd_puts(
+                               "release ESC-KEY to enter DIAGNOSE-mode.");
+                               break;
+                       case 1:
+                               lcd_puts(
+                               "release ESC-KEY to enter BOOT-mode.    ");
+                               break;
+                       }
                        mdelay(toff);
                        cnt--;
-                       if (!gpio_get_value(KEY) &&
+                       if (!gpio_get_value(ESC_KEY) &&
+                           gpio_get_value(PUSH_KEY) && 2 == cnt) {
+                               lcd_position_cursor(1, 8);
+                               lcd_puts(
+                               "switching to network-console ...       ");
+                               setenv("bootcmd", "run netconsole");
+                               cnt = 4;
+                               break;
+                       } else if (!gpio_get_value(ESC_KEY) &&
                            gpio_get_value(PUSH_KEY) && 1 == cnt) {
-                               puts("updating from USB ...\n");
+                               lcd_position_cursor(1, 8);
+                               lcd_puts(
+                               "updating U-BOOT from USB ...           ");
                                setenv("bootcmd", "run usbupdate");
+                               cnt = 4;
                                break;
-                       } else if (!gpio_get_value(KEY)) {
+                       } else if ((!gpio_get_value(ESC_KEY) &&
+                                   gpio_get_value(PUSH_KEY) && cnt == 0) ||
+                                   (gpio_get_value(ESC_KEY) &&
+                                   gpio_get_value(PUSH_KEY) && cnt == 0)) {
+                               lcd_position_cursor(1, 8);
+                               lcd_puts(
+                               "starting script from network ...      ");
+                               setenv("bootcmd", "run netscript");
+                               cnt = 4;
+                               break;
+                       } else if (!gpio_get_value(ESC_KEY)) {
                                break;
                        }
                } while (cnt);
        }
 
+       lcd_position_cursor(1, 8);
        switch (cnt) {
        case 0:
-               puts("3 blinks ... entering BOOT mode.\n");
+               lcd_puts("entering BOOT-mode.                    ");
+               setenv("bootcmd", "run defaultAR");
                buf = 0x0000;
                break;
        case 1:
-               puts("2 blinks ... entering DIAGNOSE mode.\n");
+               lcd_puts("entering DIAGNOSE-mode.                ");
                buf = 0x0F0F;
                break;
        case 2:
-               puts("1 blinks ... entering SERVICE mode.\n");
+               lcd_puts("entering SERVICE mode.                 ");
                buf = 0xB4B4;
                break;
        case 3:
-               puts("0 blinks ... entering RUN mode.\n");
+               lcd_puts("loading OS...                          ");
                buf = 0x0404;
                break;
        }
-       mdelay(ton);
-       /* turn on light */
-       tps65217_reg_write(TPS65217_PROT_LEVEL_NONE,
-                          TPS65217_WLEDCTRL1, 0x09, 0xFF);
        /* write bootinfo into scratchregister of resetcontroller */
        oldspeed = i2c_get_bus_speed();
        if (i2c_set_bus_speed(CONFIG_SYS_OMAP24_I2C_SPEED_PSOC) >= 0) {
index ecb2e7a4275e9f229b4ee2c2b7e42c40b8cecd0e..9f89b5e53dc06f331b983bfa6ba9d0ea236a901a 100644 (file)
 #include <asm/io.h>
 #include <i2c.h>
 
-static struct module_pin_mux usb0_pin_mux[] = {
-       {OFFSET(usb0_id), (MODE(0) | RXACTIVE)},
-       /* USB0 DrvBus Receiver disable (from romcode 0x20) */
-       {OFFSET(usb0_drvvbus), (MODE(0))},
-       /* USB1 DrvBus as GPIO due to HW-Workaround */
-       {OFFSET(usb1_drvvbus), (MODE(7))},
-       {-1},
-};
-static struct module_pin_mux spi1_pin_mux[] = {
+static struct module_pin_mux spi0_pin_mux[] = {
        /* SPI1_SCLK */
-       {OFFSET(mcasp0_aclkx), MODE(3) | PULLUDEN |             RXACTIVE},
+       {OFFSET(spi0_sclk),     MODE(0) | PULLUDEN | RXACTIVE},
        /* SPI1_D0 */
-       {OFFSET(mcasp0_fsx),   MODE(3) | PULLUDEN |             RXACTIVE},
+       {OFFSET(spi0_d0),       MODE(0) | PULLUDEN | RXACTIVE},
        /* SPI1_D1 */
-       {OFFSET(mcasp0_axr0),  MODE(3) | PULLUDEN |             RXACTIVE},
+       {OFFSET(spi0_d1),       MODE(0) | PULLUDEN | RXACTIVE},
        /* SPI1_CS0 */
-       {OFFSET(mcasp0_ahclkr), MODE(3) | PULLUDEN | PULLUP_EN | RXACTIVE},
+       {OFFSET(spi0_cs0),      MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE},
+       /* SPI1_CS1 */
+       {OFFSET(spi0_cs1),      MODE(0) | PULLUDEN | PULLUP_EN | RXACTIVE},
        {-1},
 };
 
@@ -53,30 +47,34 @@ static struct module_pin_mux dcan1_pin_mux[] = {
 };
 
 static struct module_pin_mux gpios[] = {
-       /* GPIO0_29 (RMII1_REFCLK) - eMMC nRST */
-       {OFFSET(rmii1_refclk), (MODE(7) | PULLUDDIS)},
-       /* GPIO0_4  (SPI D1) - TA602 */
-       {OFFSET(spi0_d1), (MODE(7) | PULLUDDIS | RXACTIVE)},
-       /* GPIO0_5  (SPI CS0) - DISPLAY_ON_OFF */
-       {OFFSET(spi0_cs0), (MODE(7) | PULLUDDIS)},
        /* GPIO0_7  (PWW0 OUT) - CAN TERM */
        {OFFSET(ecap0_in_pwm0_out), (MODE(7) | PULLUDDIS | RXACTIVE)},
-       /* GPIO0_19 (DMA_INTR0) - CLKOUT SYS */
-       {OFFSET(xdma_event_intr0), (MODE(7) | RXACTIVE)},
-       /* GPIO0_20 (DMA_INTR1) - SPI1 nCS1 */
-       {OFFSET(xdma_event_intr1), (MODE(7) | PULLUDEN | PULLUP_EN)},
+       /* GPIO0_19 (DMA_INTR0) - TA602 */
+       {OFFSET(xdma_event_intr0), (MODE(7) | PULLUDDIS | RXACTIVE)},
+       /* GPIO0_20 (DMA_INTR1) - SPI0 nCS1 */
+       {OFFSET(xdma_event_intr1), (MODE(7) | PULLUDDIS | RXACTIVE)},
+       /* GPIO0_29 (RMII1_REFCLK) - eMMC nRST */
+       {OFFSET(rmii1_refclk), (MODE(7) | PULLUDDIS)},
        /* GPIO0_30 (GPMC_WAIT0) - TA601 */
        {OFFSET(gpmc_wait0), (MODE(7) | PULLUDDIS | RXACTIVE)},
        /* GPIO0_31 (GPMC_nWP) - SW601 PushButton */
        {OFFSET(gpmc_wpn), (MODE(7) | PULLUDDIS | RXACTIVE)},
        /* GPIO1_28 (GPMC_nWE) - FRAM_nWP */
        {OFFSET(gpmc_be1n), (MODE(7) | PULLUDDIS)},
+       /* GPIO1_29 (gpmc_csn0) - MMC nRST */
+       {OFFSET(gpmc_csn0), (MODE(7) | PULLUDDIS)},
        /* GPIO2_0  (GPMC_nCS3) - VBAT_OK */
        {OFFSET(gpmc_csn3), (MODE(7) | PULLUDDIS | RXACTIVE) },
        /* GPIO2_2  (GPMC_nADV_ALE) - DCOK */
        {OFFSET(gpmc_advn_ale), (MODE(7) | PULLUDDIS | RXACTIVE)},
        /* GPIO2_4  (GPMC_nWE) - TST_BAST */
        {OFFSET(gpmc_wen), (MODE(7) | PULLUDDIS)},
+       /* GPIO2_5  (gpmc_be0n_cle) - DISPLAY_ON_OFF */
+       {OFFSET(gpmc_be0n_cle), (MODE(7) | PULLUDDIS)},
+       /* GPIO3_16 (mcasp0_axr0) - ETH-LED green */
+       {OFFSET(mcasp0_axr0), (MODE(7) | PULLUDDIS | RXACTIVE)},
+       /* GPIO3_17 (mcasp0_ahclkr) - CAN_STB */
+       {OFFSET(mcasp0_ahclkr), (MODE(7) | PULLUDDIS | RXACTIVE)},
        /* GPIO3_18 (MCASP0_ACLKR) - SW601 CNTup, mapped to Counter eQEB0A_in */
        {OFFSET(mcasp0_aclkr), (MODE(1) | PULLUDDIS | RXACTIVE)},
        /* GPIO3_19 (MCASP0_FSR) - SW601 CNTdown, mapped to Counter eQEB0B_in */
@@ -126,6 +124,10 @@ static struct module_pin_mux mii1_pin_mux[] = {
 };
 
 static struct module_pin_mux mmc1_pin_mux[] = {
+       {OFFSET(gpmc_ad7), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT7 */
+       {OFFSET(gpmc_ad6), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT6 */
+       {OFFSET(gpmc_ad5), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT5 */
+       {OFFSET(gpmc_ad4), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT4 */
        {OFFSET(gpmc_ad3), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT3 */
        {OFFSET(gpmc_ad2), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT2 */
        {OFFSET(gpmc_ad1), (MODE(1) | RXACTIVE | PULLUP_EN)},   /* MMC1_DAT1 */
@@ -187,8 +189,7 @@ void enable_board_pin_mux(void)
 {
        configure_module_pin_mux(i2c0_pin_mux);
        configure_module_pin_mux(mii1_pin_mux);
-       configure_module_pin_mux(usb0_pin_mux);
-       configure_module_pin_mux(spi1_pin_mux);
+       configure_module_pin_mux(spi0_pin_mux);
        configure_module_pin_mux(dcan0_pin_mux);
        configure_module_pin_mux(dcan1_pin_mux);
        configure_module_pin_mux(mmc1_pin_mux);
index 29b263f301f6b80dccfbbec33b48cc2b11104220..2c59fbdd2733eeb53b152525328238da3397bf60 100644 (file)
 
 #include <configs/bur_am335x_common.h>
 /* ------------------------------------------------------------------------- */
+#define CONFIG_AM335X_LCD
+#define CONFIG_LCD
+#define CONFIG_LCD_NOSTDOUT
+#define CONFIG_SYS_WHITE_ON_BLACK
+#define LCD_BPP                                LCD_COLOR32
 /* Clock Defines */
 #define V_OSCK                         26000000  /* Clock output from T2 */
 #define V_SCLK                         (V_OSCK)
@@ -87,8 +92,6 @@
 #undef CONFIG_BOOTM_NETBSD
 #undef CONFIG_BOOTM_PLAN9
 #undef CONFIG_BOOTM_RTEMS
-#undef CONFIG_GZIP
-#undef CONFIG_ZLIB
 
 /* USB configuration */
 #define CONFIG_USB_MUSB_DSPS
 #define CONFIG_MUSB_HOST
 #define CONFIG_AM335X_USB0
 #define CONFIG_AM335X_USB0_MODE        MUSB_HOST
+#define CONFIG_AM335X_USB1
+#define CONFIG_AM335X_USB1_MODE        MUSB_HOST
 
 #ifdef CONFIG_MUSB_HOST
 #define CONFIG_CMD_USB