All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hannes Petermaier <oe5hpm@oevsv.at>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2] board/BuR/kwb: switch to board HW-Rev3
Date: Tue,  3 Feb 2015 13:19:33 +0100	[thread overview]
Message-ID: <1422965980-3545-17-git-send-email-oe5hpm@oevsv.at> (raw)
In-Reply-To: <1422965980-3545-1-git-send-email-oe5hpm@oevsv.at>

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>

---
Changes for V2: None
---
 board/BuR/kwb/board.c |   92 ++++++++++++++++++++++++++++++-------------------
 board/BuR/kwb/mux.c   |   51 +++++++++++++--------------
 include/configs/kwb.h |    9 +++--
 3 files changed, 89 insertions(+), 63 deletions(-)

diff --git a/board/BuR/kwb/board.c b/board/BuR/kwb/board.c
index 804765a..30900bc 100644
--- a/board/BuR/kwb/board.c
+++ b/board/BuR/kwb/board.c
@@ -26,14 +26,13 @@
 #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) {
diff --git a/board/BuR/kwb/mux.c b/board/BuR/kwb/mux.c
index ecb2e7a..9f89b5e 100644
--- a/board/BuR/kwb/mux.c
+++ b/board/BuR/kwb/mux.c
@@ -16,23 +16,17 @@
 #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);
diff --git a/include/configs/kwb.h b/include/configs/kwb.h
index 29b263f..2c59fbd 100644
--- a/include/configs/kwb.h
+++ b/include/configs/kwb.h
@@ -14,6 +14,11 @@
 
 #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
@@ -100,6 +103,8 @@
 #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
-- 
1.7.10.4

  parent reply	other threads:[~2015-02-03 12:19 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-03 12:19 [U-Boot] [PATCH v2] drivers/video/am335x-fb: Add possibility to wait for stable power/picture Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] common/lcd: Add command for setting cursor within lcd-console Hannes Petermaier
2015-02-03 12:34   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] common/lcd: Add command for writing to lcd-display Hannes Petermaier
2015-02-03 12:34   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/common: Take usage of am335x LCD-Display Hannes Petermaier
2015-02-03 12:34   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/common: try to setup cpsw mac-address from the devicetree Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Enable HW-Watchdog Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Enable U-Boot BOOTCOUNT feature Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Enable EXT4 support Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Change pinmux for GPIO2_28 from GPIO to PWM-Timeroutput Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Chg pinmux - use free NAND Pins in non NAND-config as GPIO Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Chg Pinmux - enable UART1 pins Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/common: Introduce Network Console and common environment for it Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/common: Enable CONFIG_CMD_TIME Hannes Petermaier
2015-02-03 12:35   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/common: Add support for displaying BMP on LCD Hannes Petermaier
2015-02-03 12:36   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: Rework default-environment settings Hannes Petermaier
2015-02-03 12:36   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/tseries: cosmetic changes Hannes Petermaier
2015-02-03 12:36   ` Hannes Petermaier
2015-02-03 12:19 ` Hannes Petermaier [this message]
2015-02-03 12:36   ` [U-Boot] [PATCH v2] board/BuR/kwb: switch to board HW-Rev3 Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/kwb: Support booting Linux Hannes Petermaier
2015-02-03 12:36   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/kwb: Redesign default-environment Hannes Petermaier
2015-02-03 12:36   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/kwb: Form a bootline for vxWorks Hannes Petermaier
2015-02-03 12:37   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] board/BuR/kwb: Support modify bootcmd through reset-controller Hannes Petermaier
2015-02-03 12:37   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] intern: disable lcd-stdout Hannes Petermaier
2015-02-03 12:37   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] intern: Add specific offset do FAT-Filesystem Hannes Petermaier
2015-02-03 12:37   ` Hannes Petermaier
2015-02-03 12:19 ` [U-Boot] [PATCH v2] intern: Add copy scripts and target specific helpers Hannes Petermaier
2015-02-03 12:37   ` Hannes Petermaier
2015-02-03 12:47     ` Heiko Schocher
2015-02-04  7:10       ` Hannes Petermaier
2015-02-04  7:33         ` Heiko Schocher
2015-02-04  7:50           ` Hannes Petermaier
2015-02-03 12:34 ` [U-Boot] [PATCH v2] drivers/video/am335x-fb: Add possibility to wait for stable power/picture Hannes Petermaier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1422965980-3545-17-git-send-email-oe5hpm@oevsv.at \
    --to=oe5hpm@oevsv.at \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.