[U-Boot] [PATCH v2 2/2] arm, imx6: add aristainetos 2b board version
Stefano Babic
sbabic at denx.de
Mon Aug 31 18:52:21 CEST 2015
On 24/08/2015 11:36, Heiko Schocher wrote:
> there is a 2b board version of the aristainetos2
> board. Differences to the v2:
>
> - spi cs for the nor flash and display controller
> changed
> - some pinmux changes
> - LED gpio settings changed
>
> Signed-off-by: Heiko Schocher <hs at denx.de>
>
> ---
>
> Changes in v2:
> - add comments from Stefano Babic
> - move the spi bus settings for the display into
> this patch
> - rebased against u-boot-imx
> e1518ebda736a1225c4c2a651e21c446dee3fdb0
>
> arch/arm/cpu/armv7/mx6/Kconfig | 4 +++
> board/aristainetos/Kconfig | 13 ++++++++
> board/aristainetos/aristainetos-v2.c | 56 +++++++++++++++++++++++++++----
> board/aristainetos/aristainetos.c | 4 +--
> configs/aristainetos2b_defconfig | 7 ++++
> include/configs/aristainetos-common.h | 4 ---
> include/configs/aristainetos.h | 6 +++-
> include/configs/aristainetos2.h | 6 +++-
> include/configs/aristainetos2b.h | 62 +++++++++++++++++++++++++++++++++++
> 9 files changed, 148 insertions(+), 14 deletions(-)
> create mode 100644 configs/aristainetos2b_defconfig
> create mode 100644 include/configs/aristainetos2b.h
>
> diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
> index c43cea8..4281214 100644
> --- a/arch/arm/cpu/armv7/mx6/Kconfig
> +++ b/arch/arm/cpu/armv7/mx6/Kconfig
> @@ -41,6 +41,10 @@ config TARGET_ARISTAINETOS2
> bool "aristainetos2"
> select CPU_V7
>
> +config TARGET_ARISTAINETOS2B
> + bool "Support aristainetos2-revB"
> + select CPU_V7
> +
> config TARGET_CGTQMX6EVAL
> bool "cgtqmx6eval"
> select CPU_V7
> diff --git a/board/aristainetos/Kconfig b/board/aristainetos/Kconfig
> index 500b665..e987f38 100644
> --- a/board/aristainetos/Kconfig
> +++ b/board/aristainetos/Kconfig
> @@ -23,3 +23,16 @@ config SYS_CONFIG_NAME
> default "aristainetos2"
>
> endif
> +
> +if TARGET_ARISTAINETOS2B
> +
> +config SYS_BOARD
> + default "aristainetos"
> +
> +config SYS_SOC
> + default "mx6"
> +
> +config SYS_CONFIG_NAME
> + default "aristainetos2b"
> +
> +endif
> diff --git a/board/aristainetos/aristainetos-v2.c b/board/aristainetos/aristainetos-v2.c
> index dd5d8a3..7013e79 100644
> --- a/board/aristainetos/aristainetos-v2.c
> +++ b/board/aristainetos/aristainetos-v2.c
> @@ -42,8 +42,16 @@
> #define USDHC2_PAD_CTRL (PAD_CTL_SPEED_LOW | \
> PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
>
> -#define ECSPI1_CS0 IMX_GPIO_NR(4, 9) /* 4.3 display controller */
> -#define ECSPI4_CS0 IMX_GPIO_NR(3, 29)
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> + /* 4.3 display controller */
> + #define ECSPI1_CS0 IMX_GPIO_NR(4, 9)
> + #define ECSPI4_CS0 IMX_GPIO_NR(3, 29)
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + #define ECSPI1_CS0 IMX_GPIO_NR(2, 30) /* NOR flash */
> + /* 4.3 display controller */
> + #define ECSPI1_CS1 IMX_GPIO_NR(4, 10)
> +#endif
> +
> #define SOFT_RESET_GPIO IMX_GPIO_NR(7, 13)
> #define SD2_DRIVER_ENABLE IMX_GPIO_NR(7, 8)
>
> @@ -103,7 +111,11 @@ iomux_v3_cfg_t const gpio_pads[] = {
> /* LED yellow */
> MX6_PAD_NANDF_CS3__GPIO6_IO16 | MUX_PAD_CTRL(NO_PAD_CTRL),
> /* LED red */
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> MX6_PAD_EIM_EB0__GPIO2_IO28 | MUX_PAD_CTRL(NO_PAD_CTRL),
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + MX6_PAD_EIM_WAIT__GPIO5_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL),
> +#endif
> /* LED green */
> MX6_PAD_EIM_A24__GPIO5_IO04 | MUX_PAD_CTRL(NO_PAD_CTRL),
> /* LED blue */
> @@ -170,7 +182,12 @@ static iomux_v3_cfg_t const ecspi1_pads[] = {
> MX6_PAD_EIM_D16__ECSPI1_SCLK | MUX_PAD_CTRL(SPI_PAD_CTRL),
> MX6_PAD_EIM_D17__ECSPI1_MISO | MUX_PAD_CTRL(SPI_PAD_CTRL),
> MX6_PAD_EIM_D18__ECSPI1_MOSI | MUX_PAD_CTRL(SPI_PAD_CTRL),
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> MX6_PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(SPI_PAD_CTRL),
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + MX6_PAD_EIM_EB2__GPIO2_IO30 | MUX_PAD_CTRL(SPI_PAD_CTRL),
> + MX6_PAD_KEY_COL2__GPIO4_IO10 | MUX_PAD_CTRL(NO_PAD_CTRL),
> +#endif
> };
>
> static void setup_iomux_enet(void)
> @@ -178,6 +195,7 @@ static void setup_iomux_enet(void)
> imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
> }
>
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> iomux_v3_cfg_t const ecspi4_pads[] = {
> MX6_PAD_EIM_D21__ECSPI4_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL),
> MX6_PAD_EIM_D22__ECSPI4_MISO | MUX_PAD_CTRL(NO_PAD_CTRL),
> @@ -185,6 +203,7 @@ iomux_v3_cfg_t const ecspi4_pads[] = {
> MX6_PAD_EIM_A25__GPIO5_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL),
> MX6_PAD_EIM_D29__GPIO3_IO29 | MUX_PAD_CTRL(NO_PAD_CTRL),
> };
> +#endif
>
> static iomux_v3_cfg_t const display_pads[] = {
> MX6_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK | MUX_PAD_CTRL(DISP_PAD_CTRL),
> @@ -220,11 +239,17 @@ static iomux_v3_cfg_t const display_pads[] = {
> int board_spi_cs_gpio(unsigned bus, unsigned cs)
> {
> if (bus == CONFIG_SF_DEFAULT_BUS && cs == CONFIG_SF_DEFAULT_CS)
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> return IMX_GPIO_NR(5, 2);
>
> if (bus == 0 && cs == 0)
> return IMX_GPIO_NR(4, 9);
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + return ECSPI1_CS0;
>
> + if (bus == 0 && cs == 1)
> + return ECSPI1_CS1;
> +#endif
> return -1;
> }
>
> @@ -233,15 +258,22 @@ static void setup_spi(void)
> int i;
>
> imx_iomux_v3_setup_multiple_pads(ecspi1_pads, ARRAY_SIZE(ecspi1_pads));
> +
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> imx_iomux_v3_setup_multiple_pads(ecspi4_pads, ARRAY_SIZE(ecspi4_pads));
> +#endif
> +
> for (i = 0; i < 4; i++)
> enable_spi_clk(true, i);
>
> gpio_direction_output(ECSPI1_CS0, 1);
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> gpio_direction_output(ECSPI4_CS1, 0);
> -
> /* set cs0 to high (second device on spi bus #4) */
> gpio_direction_output(ECSPI4_CS0, 1);
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + gpio_direction_output(ECSPI1_CS1, 1);
> +#endif
> }
>
> static void setup_iomux_uart(void)
> @@ -582,6 +614,7 @@ static void setup_board_gpio(void)
> gpio_direction_output(IMX_GPIO_NR(1, 25), 0);
>
> /* switch off Status LEDs */
> +#if (CONFIG_SYS_BOARD_VERSION == 2)
> gpio_request(IMX_GPIO_NR(6, 16), "LED yellow"); /* 176 */
> gpio_direction_output(IMX_GPIO_NR(6, 16), 1);
> gpio_request(IMX_GPIO_NR(2, 28), "LED red"); /* 60 */
> @@ -590,11 +623,21 @@ static void setup_board_gpio(void)
> gpio_direction_output(IMX_GPIO_NR(5, 4), 1);
> gpio_request(IMX_GPIO_NR(2, 29), "LED blue"); /* 61 */
> gpio_direction_output(IMX_GPIO_NR(2, 29), 1);
> +#elif (CONFIG_SYS_BOARD_VERSION == 3)
> + gpio_request(IMX_GPIO_NR(6, 16), "LED yellow"); /* 176 */
> + gpio_direction_output(IMX_GPIO_NR(6, 16), 0);
> + gpio_request(IMX_GPIO_NR(5, 0), "LED red"); /* 128 */
> + gpio_direction_output(IMX_GPIO_NR(5, 0), 0);
> + gpio_request(IMX_GPIO_NR(5, 4), "LED green"); /* 132 */
> + gpio_direction_output(IMX_GPIO_NR(5, 4), 0);
> + gpio_request(IMX_GPIO_NR(2, 29), "LED blue"); /* 61 */
> + gpio_direction_output(IMX_GPIO_NR(2, 29), 0);
> +#endif
> }
>
> static void setup_board_spi(void)
> {
> - /* enable spi bus #2 SS drivers */
> + /* enable spi bus #2 SS drivers (and spi bus #4 SS1 for rev2b) */
> gpio_direction_output(IMX_GPIO_NR(6, 6), 1);
> }
>
> @@ -629,8 +672,9 @@ int board_late_init(void)
> /* if we have the lg panel, we can initialze it now */
> if (panel)
> if (!strcmp(panel, displays[1].mode.name))
> - lg4573_spi_startup(0, 0, 10000000, SPI_MODE_0);
> + lg4573_spi_startup(CONFIG_LG4573_BUS,
> + CONFIG_LG4573_CS,
> + 10000000, SPI_MODE_0);
>
> return 0;
> }
> -
> diff --git a/board/aristainetos/aristainetos.c b/board/aristainetos/aristainetos.c
> index 45ca5da..e95ec81 100644
> --- a/board/aristainetos/aristainetos.c
> +++ b/board/aristainetos/aristainetos.c
> @@ -60,7 +60,7 @@ DECLARE_GLOBAL_DATA_PTR;
>
> #if (CONFIG_SYS_BOARD_VERSION == 1)
> #include "./aristainetos-v1.c"
> -#elif (CONFIG_SYS_BOARD_VERSION == 2)
> +#elif ((CONFIG_SYS_BOARD_VERSION == 2) || (CONFIG_SYS_BOARD_VERSION == 3))
> #include "./aristainetos-v2.c"
> #endif
>
> @@ -174,7 +174,7 @@ struct display_info_t const displays[] = {
> .vmode = FB_VMODE_NONINTERLACED
> }
> }
> -#if (CONFIG_SYS_BOARD_VERSION == 2)
> +#if ((CONFIG_SYS_BOARD_VERSION == 2) || (CONFIG_SYS_BOARD_VERSION == 3))
> , {
> .bus = -1,
> .addr = 0,
> diff --git a/configs/aristainetos2b_defconfig b/configs/aristainetos2b_defconfig
> new file mode 100644
> index 0000000..af2dbc6
> --- /dev/null
> +++ b/configs/aristainetos2b_defconfig
> @@ -0,0 +1,7 @@
> +CONFIG_ARM=y
> +CONFIG_ARCH_MX6=y
> +CONFIG_TARGET_ARISTAINETOS2B=y
> +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/aristainetos/aristainetos2.cfg,MX6DL"
> +# CONFIG_CMD_IMLS is not set
> +# CONFIG_CMD_FLASH is not set
> +CONFIG_SPI_FLASH=y
> diff --git a/include/configs/aristainetos-common.h b/include/configs/aristainetos-common.h
> index 30d903e..20afdd6 100644
> --- a/include/configs/aristainetos-common.h
> +++ b/include/configs/aristainetos-common.h
> @@ -45,7 +45,6 @@
> #define CONFIG_SPI_FLASH_MTD
> #define CONFIG_SPI_FLASH_STMICRO
> #define CONFIG_MXC_SPI
> -#define CONFIG_SF_DEFAULT_BUS 3
> #define CONFIG_SF_DEFAULT_SPEED 20000000
> #define CONFIG_SF_DEFAULT_MODE SPI_MODE_0
> #define CONFIG_SYS_SPI_ST_ENABLE_WP_PIN
> @@ -106,9 +105,6 @@
> "ubiboot=echo Booting from ubi ...; " \
> "run ubiargs addmtd addmisc set_fit_default;" \
> "bootm ${fit_addr_r}\0" \
> - "ubifs_load_fit=sf probe;ubi part ubi 4096;ubifsmount ubi:rootfs;" \
> - "ubifsload ${fit_addr_r} /boot/system.itb; " \
> - "imi ${fit_addr_r}\0 " \
> "rescueargs=setenv bootargs console=${console},${baudrate} " \
> "root=/dev/ram rw\0 " \
> "rescueboot=echo Booting rescue system from NOR ...; " \
> diff --git a/include/configs/aristainetos.h b/include/configs/aristainetos.h
> index 258866a..be93deb 100644
> --- a/include/configs/aristainetos.h
> +++ b/include/configs/aristainetos.h
> @@ -22,6 +22,7 @@
>
> #define CONFIG_FEC_XCV_TYPE RMII
>
> +#define CONFIG_SF_DEFAULT_BUS 3
> #define CONFIG_SF_DEFAULT_CS 0
>
> #define CONFIG_EXTRA_ENV_BOARD_SETTINGS \
> @@ -32,7 +33,10 @@
> "addmisc=setenv bootargs ${bootargs} consoleblank=0\0" \
> "addmtd=setenv bootargs ${bootargs} ${mtdparts}\0" \
> "ubiargs=setenv bootargs console=${console},${baudrate} " \
> - "ubi.mtd=0,2048 root=ubi0:rootfs rootfstype=ubifs\0 "
> + "ubi.mtd=0,2048 root=ubi0:rootfs rootfstype=ubifs\0 " \
> + "ubifs_load_fit=sf probe;ubi part ubi 2048;ubifsmount ubi:rootfs;" \
> + "ubifsload ${fit_addr_r} /boot/system.itb; " \
> + "imi ${fit_addr_r}\0 "
>
> #define ARISTAINETOS_USB_OTG_PWR IMX_GPIO_NR(4, 15)
> #define ARISTAINETOS_USB_H1_PWR IMX_GPIO_NR(3, 31)
> diff --git a/include/configs/aristainetos2.h b/include/configs/aristainetos2.h
> index dd090c5..152f5e9 100644
> --- a/include/configs/aristainetos2.h
> +++ b/include/configs/aristainetos2.h
> @@ -24,6 +24,7 @@
> #define CONFIG_FEC_XCV_TYPE RGMII
> #define CONFIG_PHY_MICREL_KSZ9031
>
> +#define CONFIG_SF_DEFAULT_BUS 3
> #define CONFIG_SF_DEFAULT_CS 1
>
> #define CONFIG_EXTRA_ENV_BOARD_SETTINGS \
> @@ -34,7 +35,10 @@
> "-(rescue-system);gpmi-nand:-(ubi)\0" \
> "addmisc=setenv bootargs ${bootargs} net.ifnames=0 consoleblank=0\0" \
> "ubiargs=setenv bootargs console=${console},${baudrate} " \
> - "ubi.mtd=0,4096 root=ubi0:rootfs rootfstype=ubifs\0 "
> + "ubi.mtd=0,4096 root=ubi0:rootfs rootfstype=ubifs\0 " \
> + "ubifs_load_fit=sf probe;ubi part ubi 4096;ubifsmount ubi:rootfs;" \
> + "ubifsload ${fit_addr_r} /boot/system.itb; " \
> + "imi ${fit_addr_r}\0 "
>
> #define CONFIG_SYS_I2C_MXC_I2C4 /* enable I2C bus 4 */
>
> diff --git a/include/configs/aristainetos2b.h b/include/configs/aristainetos2b.h
> new file mode 100644
> index 0000000..78791db
> --- /dev/null
> +++ b/include/configs/aristainetos2b.h
> @@ -0,0 +1,62 @@
> +/*
> + * (C) Copyright 2015
> + * Heiko Schocher, DENX Software Engineering, hs at denx.de.
> + *
> + * Based on:
> + * Copyright (C) 2012 Freescale Semiconductor, Inc.
> + *
> + * Configuration settings for the Freescale i.MX6DL aristainetos2 board.
> + *
> + * SPDX-License-Identifier: GPL-2.0+
> + */
> +#ifndef __ARISTAINETOS2B_CONFIG_H
> +#define __ARISTAINETOS2B_CONFIG_H
> +
> +#define CONFIG_SYS_BOARD_VERSION 3
> +#define CONFIG_HOSTNAME aristainetos2
> +#define CONFIG_BOARDNAME "aristainetos2-revB"
> +
> +#define CONFIG_BOARD_LATE_INIT
> +
> +#define CONFIG_MXC_UART_BASE UART2_BASE
> +#define CONFIG_CONSOLE_DEV "ttymxc1"
> +
> +#define CONFIG_FEC_XCV_TYPE RGMII
> +#define CONFIG_PHY_MICREL_KSZ9031
> +
> +#define CONFIG_SF_DEFAULT_BUS 0
> +#define CONFIG_SF_DEFAULT_CS 0
> +
> +#define CONFIG_EXTRA_ENV_BOARD_SETTINGS \
> + "board_type=aristainetos2_7 at 1\0" \
> + "nor_bootdelay=-2\0" \
> + "mtdids=nand0=gpmi-nand,nor0=spi0.0\0" \
> + "mtdparts=mtdparts=spi0.0:832k(u-boot),64k(env),64k(env-red)," \
> + "-(rescue-system);gpmi-nand:-(ubi)\0" \
> + "addmisc=setenv bootargs ${bootargs} net.ifnames=0 consoleblank=0\0" \
> + "ubiargs=setenv bootargs console=${console},${baudrate} " \
> + "ubi.mtd=0,4096 root=ubi0:rootfs rootfstype=ubifs\0 " \
> + "ubifs_load_fit=sf probe;ubi part ubi 4096;ubifsmount ubi:rootfs;" \
> + "ubifsload ${fit_addr_r} /boot/system.itb; " \
> + "imi ${fit_addr_r}\0 " \
> +
> +#define CONFIG_SYS_I2C_MXC_I2C4 /* enable I2C bus 4 */
> +
> +#define ARISTAINETOS_USB_OTG_PWR IMX_GPIO_NR(4, 15)
> +#define ARISTAINETOS_USB_H1_PWR IMX_GPIO_NR(1, 0)
> +#define CONFIG_GPIO_ENABLE_SPI_FLASH IMX_GPIO_NR(2, 15)
> +
> +/* Framebuffer */
> +#define CONFIG_SYS_LDB_CLOCK 33246000
> +#define CONFIG_LG4573
> +#define CONFIG_LG4573_BUS 0
> +#define CONFIG_LG4573_CS 1
> +
> +#define CONFIG_CMD_BMP
> +
> +#define CONFIG_PWM_IMX
> +#define CONFIG_IMX6_PWM_PER_CLK 66000000
> +
> +#include "aristainetos-common.h"
> +
> +#endif /* __ARISTAINETOS2B_CONFIG_H */
>
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list