[U-Boot] [PATCH v4] OMAP3: add CM-T35 board
Tom
Tom.Rix at windriver.com
Sun Nov 15 22:47:41 CET 2009
Mike Rapoport wrote:
> Add CM-T35 board support
>
> Signed-off-by: Mike Rapoport <mike at compulab.co.il>
>
> --
> v2 changes:
> - rename board config file from omap3_cm-t35.h to cm-t35.h
> - remove SZ_xx references
> - add MAKEALL/MAINTEINERS entries
>
> v3 changes:
> - fix whitespace and indentation
> - remove eth_init from board_eth_init
> - add CM-T35 entry to doc/README.omap3
> - fixed board name in MAINTAINERS
>
> v4 changes:
> - rebased agains u-boot-ti/next branch
>
<snip>
> +static void setup_net_chip(void)
> +{
> + struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE;
> +
> + enable_gpmc_cs_config(gpmc_net_config, &gpmc_cfg->cs[5],
> + CM_T35_SMC911X_BASE, GPMC_SIZE_16M);
> + enable_gpmc_cs_config(gpmc_net_config, &gpmc_cfg->cs[4],
> + SB_T35_SMC911X_BASE, GPMC_SIZE_16M);
> +
> + /* Enable off mode for NWE in PADCONF_GPMC_NWE register */
> + writew(readw(&ctrl_base->gpmc_nwe) | 0x0E00, &ctrl_base->gpmc_nwe);
> +
> + /* Enable off mode for NOE in PADCONF_GPMC_NADV_ALE register */
> + writew(readw(&ctrl_base->gpmc_noe) | 0x0E00, &ctrl_base->gpmc_noe);
> +
> + /* Enable off mode for ALE in PADCONF_GPMC_NADV_ALE register */
> + writew(readw(&ctrl_base->gpmc_nadv_ale) | 0x0E00,
> + &ctrl_base->gpmc_nadv_ale);
> +
> + /* Reset the ethernet controller via TPS65930 GPIO */
> + /* Set GPIO1 of TPS65930 as output */
> + twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, 0x02,
> + TWL4030_BASEADD_GPIO+0x03);
> + /* Send a pulse on the GPIO pin */
> + twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, 0x02,
> + TWL4030_BASEADD_GPIO+0x0C);
> + udelay(1);
> + twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, 0x02,
> + TWL4030_BASEADD_GPIO+0x09);
> + udelay(1);
> + twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, 0x02,
> + TWL4030_BASEADD_GPIO+0x0C);
> +}
> +
> +/*
> + * Routine: board_init
> + * Description: Early hardware init.
> + */
> +int board_init(void)
> +{
> + gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
> +
> + /* board id for Linux */
> + gd->bd->bi_arch_number = MACH_TYPE_CM_T35;
> + /* boot param addr */
> + gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
> +
> + return 0;
> +}
> +
> +/*
> + * Routine: misc_init_r
> + * Description: Init ethernet (done here so udelay works)
> + */
> +int misc_init_r(void)
> +{
> +#ifdef CONFIG_DRIVER_OMAP34XX_I2C
> + i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
> +#endif
> +
> +#if defined(CONFIG_CMD_NET)
> + setup_net_chip();
> +#endif
Net setup should be dependent on i2c initialization.
The setup_net_chip uses i2c read/write
> +
> + dieid_num_r();
> +
> + return 0;
> +}
Tom
More information about the U-Boot
mailing list