[U-Boot] [PATCH-OMAP3] OMAP3: Clean up board files
dirk.behme at googlemail.com
dirk.behme at googlemail.com
Sat Nov 15 09:22:25 CET 2008
- Use readx/writex instead of direct pointer access
- Replace hardcoded values by macros
- Minor space to tab conversion
No functional change.
Signed-off-by: Dirk Behme <dirk.behme at gmail.com>
---
board/omap3/beagle/beagle.c | 78 +++++++++++++++++++-------------
board/omap3/overo/overo.c | 90 ++++++++++++++++++++++---------------
include/asm-arm/arch-omap3/omap3.h | 70 ++++++++++++++++++++++++++++
3 files changed, 171 insertions(+), 67 deletions(-)
Index: u-boot-arm/board/omap3/beagle/beagle.c
===================================================================
--- u-boot-arm.orig/board/omap3/beagle/beagle.c
+++ u-boot-arm/board/omap3/beagle/beagle.c
@@ -3,12 +3,12 @@
* Texas Instruments, <www.ti.com>
*
* Author :
- * Sunil Kumar <sunilsaini05 at gmail.com>
- * Shashi Ranjan <shashiranjanmca05 at gmail.com>
+ * Sunil Kumar <sunilsaini05 at gmail.com>
+ * Shashi Ranjan <shashiranjanmca05 at gmail.com>
*
* Derived from Beagle Board and 3430 SDP code by
- * Richard Woodruff <r-woodruff2 at ti.com>
- * Syed Mohammed Khasim <khasim at ti.com>
+ * Richard Woodruff <r-woodruff2 at ti.com>
+ * Syed Mohammed Khasim <khasim at ti.com>
*
*
* See file CREDITS for list of people who contributed to this
@@ -56,41 +56,59 @@ int board_init(void)
/******************************************************************************
* Routine: misc_init_r
- * Description: Init ethernet (done here so udelay works)
+ * Description: Configure power supply
*****************************************************************************/
int misc_init_r(void)
{
unsigned char byte;
+ unsigned int *gpio5_base = (unsigned int *)OMAP34XX_GPIO5_BASE;
+ unsigned int *gpio6_base = (unsigned int *)OMAP34XX_GPIO6_BASE;
#ifdef CONFIG_DRIVER_OMAP34XX_I2C
i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
#endif
- /* set vaux3 to 2.8V */
- byte = 0x20;
- i2c_write(0x4B, 0x7A, 1, &byte, 1);
- byte = 0x03;
- i2c_write(0x4B, 0x7D, 1, &byte, 1);
-
- /* set vpll2 to 1.8V */
- byte = 0xE0;
- i2c_write(0x4B, 0x8E, 1, &byte, 1);
- byte = 0x05;
- i2c_write(0x4B, 0x91, 1, &byte, 1);
+
+ /*
+ * Configure OMAP3 supply voltages in power management
+ * companion chip.
+ */
+
+ /* set VAUX3 to 2.8V */
+ byte = DEV_GRP_P1;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEV_GRP, 1, &byte, 1);
+ byte = VAUX3_VSEL_28;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEDICATED, 1, &byte, 1);
+
+ /* set VPLL2 to 1.8V */
+ byte = DEV_GRP_ALL;
+ i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEV_GRP, 1, &byte, 1);
+ byte = VPLL2_VSEL_18;
+ i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEDICATED, 1, &byte, 1);
/* set VDAC to 1.8V */
- byte = 0x20;
- i2c_write(0x4B, 0x96, 1, &byte, 1);
- byte = 0x03;
- i2c_write(0x4B, 0x99, 1, &byte, 1);
-
- byte = 0x33;
- i2c_write(0x4A, 0xEE, 1, &byte, 1);
-
- *((uint *) 0x49058034) = 0xFFFFFAF9;
- *((uint *) 0x49056034) = 0x0F9F0FFF;
- *((uint *) 0x49058094) = 0x00000506;
- *((uint *) 0x49056094) = 0xF060F000;
+ byte = DEV_GRP_P1;
+ i2c_write(PWRMGT_ADDR_ID4, VDAC_DEV_GRP, 1, &byte, 1);
+ byte = VDAC_VSEL_18;
+ i2c_write(PWRMGT_ADDR_ID4, VDAC_DEDICATED, 1, &byte, 1);
+
+ /* enable LED */
+ byte = LEDBPWM | LEDAPWM | LEDBON | LEDAON;
+ i2c_write(PWRMGT_ADDR_ID3, LEDEN, 1, &byte, 1);
+
+ /* Configure GPIOs to output */
+ writel(~((GPIO10) | GPIO9 | GPIO3 | GPIO2),
+ gpio6_base + OFFS(GPIO_OE));
+ writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+ GPIO15 | GPIO14 | GPIO13 | GPIO12),
+ gpio5_base + OFFS(GPIO_OE));
+
+ /* Set GPIOs */
+ writel(GPIO10 | GPIO9 | GPIO3 | GPIO2,
+ gpio6_base + OFFS(GPIO_SETDATAOUT));
+ writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+ GPIO15 | GPIO14 | GPIO13 | GPIO12,
+ gpio5_base + OFFS(GPIO_SETDATAOUT));
return 0;
}
@@ -98,8 +116,8 @@ int misc_init_r(void)
/******************************************************************************
* Routine: set_muxconf_regs
* Description: Setting up the configuration Mux registers specific to the
- * hardware. Many pins need to be moved from protect to primary
- * mode.
+ * hardware. Many pins need to be moved from protect to primary
+ * mode.
*****************************************************************************/
void set_muxconf_regs(void)
{
Index: u-boot-arm/board/omap3/overo/overo.c
===================================================================
--- u-boot-arm.orig/board/omap3/overo/overo.c
+++ u-boot-arm/board/omap3/overo/overo.c
@@ -2,10 +2,10 @@
* Maintainer : Steve Sakoman <steve at sakoman.com>
*
* Derived from Beagle Board, 3430 SDP, and OMAP3EVM code by
- * Richard Woodruff <r-woodruff2 at ti.com>
- * Syed Mohammed Khasim <khasim at ti.com>
- * Sunil Kumar <sunilsaini05 at gmail.com>
- * Shashi Ranjan <shashiranjanmca05 at gmail.com>
+ * Richard Woodruff <r-woodruff2 at ti.com>
+ * Syed Mohammed Khasim <khasim at ti.com>
+ * Sunil Kumar <sunilsaini05 at gmail.com>
+ * Shashi Ranjan <shashiranjanmca05 at gmail.com>
*
* (C) Copyright 2004-2008
* Texas Instruments, <www.ti.com>
@@ -55,47 +55,65 @@ int board_init(void)
/******************************************************************************
* Routine: misc_init_r
- * Description: Init ethernet (done here so udelay works)
+ * Description: Configure power supply
*****************************************************************************/
int misc_init_r(void)
{
unsigned char byte;
+ unsigned int *gpio5_base = (unsigned int *)OMAP34XX_GPIO5_BASE;
+ unsigned int *gpio6_base = (unsigned int *)OMAP34XX_GPIO6_BASE;
#ifdef CONFIG_DRIVER_OMAP34XX_I2C
i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
#endif
- /* set vaux2 to 2.8V */
- byte = 0x20;
- i2c_write(0x4B, 0x76, 1, &byte, 1);
- byte = 0x09;
- i2c_write(0x4B, 0x79, 1, &byte, 1);
-
- /* set vaux3 to 2.8V */
- byte = 0x20;
- i2c_write(0x4B, 0x7A, 1, &byte, 1);
- byte = 0x03;
- i2c_write(0x4B, 0x7D, 1, &byte, 1);
-
- /* set vpll2 to 1.8V */
- byte = 0xE0;
- i2c_write(0x4B, 0x8E, 1, &byte, 1);
- byte = 0x05;
- i2c_write(0x4B, 0x91, 1, &byte, 1);
+
+ /*
+ * Configure OMAP3 supply voltages in power management
+ * companion chip.
+ */
+
+ /* set VAUX2 to 2.8V */
+ byte = DEV_GRP_P1;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX2_DEV_GRP, 1, &byte, 1);
+ byte = VAUX2_VSEL_28;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX2_DEDICATED, 1, &byte, 1);
+
+ /* set VAUX3 to 2.8V */
+ byte = DEV_GRP_P1;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEV_GRP, 1, &byte, 1);
+ byte = VAUX3_VSEL_28;
+ i2c_write(PWRMGT_ADDR_ID4, VAUX3_DEDICATED, 1, &byte, 1);
+
+ /* set VPLL2 to 1.8V */
+ byte = DEV_GRP_ALL;
+ i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEV_GRP, 1, &byte, 1);
+ byte = VPLL2_VSEL_18;
+ i2c_write(PWRMGT_ADDR_ID4, VPLL2_DEDICATED, 1, &byte, 1);
/* set VDAC to 1.8V */
- byte = 0x20;
- i2c_write(0x4B, 0x96, 1, &byte, 1);
- byte = 0x03;
- i2c_write(0x4B, 0x99, 1, &byte, 1);
-
- byte = 0x33;
- i2c_write(0x4A, 0xEE, 1, &byte, 1);
-
- *((uint *) 0x49058034) = 0xFFFFFAF9;
- *((uint *) 0x49056034) = 0x0F9F0FFF;
- *((uint *) 0x49058094) = 0x00000506;
- *((uint *) 0x49056094) = 0xF060F000;
+ byte = DEV_GRP_P1;
+ i2c_write(PWRMGT_ADDR_ID4, VDAC_DEV_GRP, 1, &byte, 1);
+ byte = VDAC_VSEL_18;
+ i2c_write(PWRMGT_ADDR_ID4, VDAC_DEDICATED, 1, &byte, 1);
+
+ /* enable LED */
+ byte = LEDBPWM | LEDAPWM | LEDBON | LEDAON;
+ i2c_write(PWRMGT_ADDR_ID3, LEDEN, 1, &byte, 1);
+
+ /* Configure GPIOs to output */
+ writel(~((GPIO10) | GPIO9 | GPIO3 | GPIO2),
+ gpio6_base + OFFS(GPIO_OE));
+ writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+ GPIO15 | GPIO14 | GPIO13 | GPIO12),
+ gpio5_base + OFFS(GPIO_OE));
+
+ /* Set GPIOs */
+ writel(GPIO10 | GPIO9 | GPIO3 | GPIO2,
+ gpio6_base + OFFS(GPIO_SETDATAOUT));
+ writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+ GPIO15 | GPIO14 | GPIO13 | GPIO12,
+ gpio5_base + OFFS(GPIO_SETDATAOUT));
return 0;
}
@@ -103,8 +121,8 @@ int misc_init_r(void)
/******************************************************************************
* Routine: set_muxconf_regs
* Description: Setting up the configuration Mux registers specific to the
- * hardware. Many pins need to be moved from protect to primary
- * mode.
+ * hardware. Many pins need to be moved from protect to primary
+ * mode.
*****************************************************************************/
void set_muxconf_regs(void)
{
Index: u-boot-arm/include/asm-arm/arch-omap3/omap3.h
===================================================================
--- u-boot-arm.orig/include/asm-arm/arch-omap3/omap3.h
+++ u-boot-arm/include/asm-arm/arch-omap3/omap3.h
@@ -77,7 +77,7 @@
#define SYNC_32KTIMER_BASE 0x48320000
#define S32K_CR (SYNC_32KTIMER_BASE + 0x10)
-/* omap3 GPIO registers */
+/* OMAP3 GPIO registers */
#define OMAP34XX_GPIO1_BASE 0x48310000
#define OMAP34XX_GPIO2_BASE 0x49050000
#define OMAP34XX_GPIO3_BASE 0x49052000
@@ -85,6 +85,42 @@
#define OMAP34XX_GPIO5_BASE 0x49056000
#define OMAP34XX_GPIO6_BASE 0x49058000
+#define GPIO_OE 0x34
+#define GPIO_SETDATAOUT 0x94
+
+#define GPIO0 (0x1 << 0)
+#define GPIO1 (0x1 << 1)
+#define GPIO2 (0x1 << 2)
+#define GPIO3 (0x1 << 3)
+#define GPIO4 (0x1 << 4)
+#define GPIO5 (0x1 << 5)
+#define GPIO6 (0x1 << 6)
+#define GPIO7 (0x1 << 7)
+#define GPIO8 (0x1 << 8)
+#define GPIO9 (0x1 << 9)
+#define GPIO10 (0x1 << 10)
+#define GPIO11 (0x1 << 11)
+#define GPIO12 (0x1 << 12)
+#define GPIO13 (0x1 << 13)
+#define GPIO14 (0x1 << 14)
+#define GPIO15 (0x1 << 15)
+#define GPIO16 (0x1 << 16)
+#define GPIO17 (0x1 << 17)
+#define GPIO18 (0x1 << 18)
+#define GPIO19 (0x1 << 19)
+#define GPIO20 (0x1 << 20)
+#define GPIO21 (0x1 << 21)
+#define GPIO22 (0x1 << 22)
+#define GPIO23 (0x1 << 23)
+#define GPIO24 (0x1 << 24)
+#define GPIO25 (0x1 << 25)
+#define GPIO26 (0x1 << 26)
+#define GPIO27 (0x1 << 27)
+#define GPIO28 (0x1 << 28)
+#define GPIO29 (0x1 << 29)
+#define GPIO30 (0x1 << 30)
+#define GPIO31 (0x1 << 31)
+
/* base address for indirect vectors (internal boot mode) */
#define SRAM_OFFSET0 0x40000000
#define SRAM_OFFSET1 0x00200000
@@ -132,4 +168,36 @@
#define OMAP3EVM_V1 0x1
#define OMAP3EVM_V2 0x2
+/* I2C power management companion definitions */
+#define PWRMGT_ADDR_ID1 0x48
+#define PWRMGT_ADDR_ID2 0x49
+#define PWRMGT_ADDR_ID3 0x4A
+#define PWRMGT_ADDR_ID4 0x4B
+
+/* I2C ID3 (slave3) register */
+#define LEDEN 0xEE
+
+#define LEDAON (0x1 << 0)
+#define LEDBON (0x1 << 1)
+#define LEDAPWM (0x1 << 4)
+#define LEDBPWM (0x1 << 5)
+
+/* I2C ID4 (slave4) register */
+#define VAUX2_DEV_GRP 0x76
+#define VAUX2_DEDICATED 0x79
+#define VAUX3_DEV_GRP 0x7A
+#define VAUX3_DEDICATED 0x7D
+#define VPLL2_DEV_GRP 0x8E
+#define VPLL2_DEDICATED 0x91
+#define VDAC_DEV_GRP 0x96
+#define VDAC_DEDICATED 0x99
+
+#define DEV_GRP_P1 0x20
+#define DEV_GRP_ALL 0xE0
+
+#define VAUX2_VSEL_28 0x09
+#define VAUX3_VSEL_28 0x03
+#define VPLL2_VSEL_18 0x05
+#define VDAC_VSEL_18 0x03
+
#endif
More information about the U-Boot
mailing list