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 17/21] board/BuR/kwb: switch to board HW-Rev3
Date: Fri, 30 Jan 2015 14:25:20 +0100	[thread overview]
Message-ID: <1422624324-15431-17-git-send-email-oe5hpm@oevsv.at> (raw)
In-Reply-To: <1422624324-15431-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>
---
 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.9.5

  parent reply	other threads:[~2015-01-30 13:25 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-30 13:25 [U-Boot] [PATCH 01/21] drivers/video/am335x-fb: Add possibility to wait for stable power/picture Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 02/21] common/lcd: Add command for setting cursor within lcd-framework Hannes Petermaier
2015-02-01 14:48   ` Nikita Kiryanov
2015-02-02  7:32     ` Hannes Petermaier
2015-02-03 11:52       ` Nikita Kiryanov
2015-01-30 13:25 ` [U-Boot] [PATCH 03/21] common/lcd: Add command for writing to lcd-display Hannes Petermaier
2015-02-01 14:53   ` Nikita Kiryanov
2015-02-02  7:37     ` Hannes Petermaier
2015-02-03 11:53       ` Nikita Kiryanov
2015-01-30 13:25 ` [U-Boot] [PATCH 04/21] board/BuR/common: Take usage of am335x LCD-Display Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 05/21] board/BuR/common: try to setup cpsw mac-address from the devicetree Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 06/21] board/BuR/tseries: Enable HW-Watchdog Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 07/21] board/BuR/tseries: Enable U-Boot BOOTCOUNT feature Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 08/21] board/BuR/tseries: Enable EXT4 support Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 09/21] board/BuR/tseries: Change pinmux for GPIO2_28 from GPIO to PWM-Timeroutput Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 10/21] board/BuR/tseries: Chg pinmux - use free NAND Pins in non NAND-config as GPIO Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 11/21] board/BuR/tseries: Chg Pinmux - enable UART1 pins Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 12/21] board/BuR/common: Introduce Network Console and common environment for it Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 13/21] board/BuR/common: Enable CONFIG_CMD_TIME Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 14/21] board/BuR/common: Add support for displaying BMP on LCD Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 15/21] board/BuR/tseries: Rework default-environment settings Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 16/21] board/BuR/tseries: cosmetic changes Hannes Petermaier
2015-01-30 13:25 ` Hannes Petermaier [this message]
2015-01-30 13:25 ` [U-Boot] [PATCH 18/21] board/BuR/kwb: Support booting Linux Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 19/21] board/BuR/kwb: Redesign default-environment Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 20/21] board/BuR/kwb: Form a bootline for vxWorks Hannes Petermaier
2015-01-30 13:25 ` [U-Boot] [PATCH 21/21] board/BuR/kwb: Support modify bootcmd through reset-controller 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=1422624324-15431-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.