- 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 <[EMAIL PROTECTED]> --- 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 <[EMAIL PROTECTED]> - * Shashi Ranjan <[EMAIL PROTECTED]> + * Sunil Kumar <[EMAIL PROTECTED]> + * Shashi Ranjan <[EMAIL PROTECTED]> * * Derived from Beagle Board and 3430 SDP code by - * Richard Woodruff <[EMAIL PROTECTED]> - * Syed Mohammed Khasim <[EMAIL PROTECTED]> + * Richard Woodruff <[EMAIL PROTECTED]> + * Syed Mohammed Khasim <[EMAIL PROTECTED]> * * * 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 <[EMAIL PROTECTED]> * * Derived from Beagle Board, 3430 SDP, and OMAP3EVM code by - * Richard Woodruff <[EMAIL PROTECTED]> - * Syed Mohammed Khasim <[EMAIL PROTECTED]> - * Sunil Kumar <[EMAIL PROTECTED]> - * Shashi Ranjan <[EMAIL PROTECTED]> + * Richard Woodruff <[EMAIL PROTECTED]> + * Syed Mohammed Khasim <[EMAIL PROTECTED]> + * Sunil Kumar <[EMAIL PROTECTED]> + * Shashi Ranjan <[EMAIL PROTECTED]> * * (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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot