Re: [U-Boot] [PATCH v2 1/1] ARM: ts4600: add basic board support
Hi, I found an problem with this patch on the last rev B of the TS4600 due to a DRAM timing issue. Please do not consider this patch until i post an other one. Sorry for the noise, Regards. On 11/07/2016 02:30 PM, Sebastien Bourdelin wrote: > This commit adds basic support including: > MMC, Serial console > > Signed-off-by: Sebastien Bourdelin> > --- > Changes v1 -> v2: > - remove useless define > - remove eMMC muxing and init which doesn't exist on the TS4600 board > - disable SSP1 and SSP2 clocks settings which are not currently used > > Signed-off-by: Sebastien Bourdelin > --- > arch/arm/Kconfig | 6 ++ > board/technologic/ts4600/Kconfig | 15 + > board/technologic/ts4600/MAINTAINERS | 6 ++ > board/technologic/ts4600/Makefile| 11 > board/technologic/ts4600/iomux.c | 119 > +++ > board/technologic/ts4600/ts4600.c| 89 ++ > configs/ts4600_defconfig | 18 ++ > include/configs/ts4600.h | 70 + > 8 files changed, 334 insertions(+) > create mode 100644 board/technologic/ts4600/Kconfig > create mode 100644 board/technologic/ts4600/MAINTAINERS > create mode 100644 board/technologic/ts4600/Makefile > create mode 100644 board/technologic/ts4600/iomux.c > create mode 100644 board/technologic/ts4600/ts4600.c > create mode 100644 configs/ts4600_defconfig > create mode 100644 include/configs/ts4600.h > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index d7a9b11..142c445 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -579,6 +579,11 @@ config ARCH_SUNXI > select USB_KEYBOARD > select USE_TINY_PRINTF > > +config TARGET_TS4600 > + bool "Support TS4600" > + select CPU_ARM926EJS > + select SUPPORT_SPL > + > config TARGET_TS4800 > bool "Support TS4800" > select CPU_V7 > @@ -1015,6 +1020,7 @@ source "board/ti/ti816x/Kconfig" > source "board/timll/devkit3250/Kconfig" > source "board/toradex/colibri_pxa270/Kconfig" > source "board/toradex/colibri_vf/Kconfig" > +source "board/technologic/ts4600/Kconfig" > source "board/technologic/ts4800/Kconfig" > source "board/vscom/baltos/Kconfig" > source "board/woodburn/Kconfig" > diff --git a/board/technologic/ts4600/Kconfig > b/board/technologic/ts4600/Kconfig > new file mode 100644 > index 000..d0dc2e1 > --- /dev/null > +++ b/board/technologic/ts4600/Kconfig > @@ -0,0 +1,15 @@ > +if TARGET_TS4600 > + > +config SYS_BOARD > + default "ts4600" > + > +config SYS_VENDOR > + default "technologic" > + > +config SYS_SOC > + default "mxs" > + > +config SYS_CONFIG_NAME > + default "ts4600" > + > +endif > diff --git a/board/technologic/ts4600/MAINTAINERS > b/board/technologic/ts4600/MAINTAINERS > new file mode 100644 > index 000..6f683b5 > --- /dev/null > +++ b/board/technologic/ts4600/MAINTAINERS > @@ -0,0 +1,6 @@ > +TS4600 BOARD > +M: Sebastien Bourdelin > +S: Maintained > +F: board/technologic/ts4600/ > +F: include/configs/ts4600.h > +F: configs/ts4600_defconfig > diff --git a/board/technologic/ts4600/Makefile > b/board/technologic/ts4600/Makefile > new file mode 100644 > index 000..faa2970 > --- /dev/null > +++ b/board/technologic/ts4600/Makefile > @@ -0,0 +1,11 @@ > +# > +# (C) Copyright 2016 Savoir-faire Linux > +# > +# SPDX-License-Identifier: GPL-2.0+ > +# > + > +ifndef CONFIG_SPL_BUILD > +obj-y:= ts4600.o > +else > +obj-y:= iomux.o > +endif > diff --git a/board/technologic/ts4600/iomux.c > b/board/technologic/ts4600/iomux.c > new file mode 100644 > index 000..11d1723 > --- /dev/null > +++ b/board/technologic/ts4600/iomux.c > @@ -0,0 +1,119 @@ > +/* > + * (C) Copyright 2016 Savoir-faire Linux Inc. > + * > + * Author: Sebastien Bourdelin > + * > + * Based on work from TS7680 code by: > + * Kris Bahnsen > + * Mark Featherston > + * > https://github.com/embeddedarm/u-boot/tree/master/board/technologic/ts7680 > + * > + * Derived from MX28EVK code by > + * Freescale Semiconductor, Inc. > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define MUX_CONFIG_SSP0 (MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP) > +#define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL) > + > +const iomux_cfg_t iomux_setup[] = { > + /* DUART */ > + MX28_PAD_PWM0__DUART_RX, > + MX28_PAD_PWM1__DUART_TX, > + > + /* MMC0 */ > + MX28_PAD_SSP0_DATA0__SSP0_D0 | MUX_CONFIG_SSP0, > + MX28_PAD_SSP0_DATA1__SSP0_D1 | MUX_CONFIG_SSP0, > + MX28_PAD_SSP0_DATA2__SSP0_D2 | MUX_CONFIG_SSP0, > + MX28_PAD_SSP0_DATA3__SSP0_D3 | MUX_CONFIG_SSP0, > +
[U-Boot] [PATCH v2 1/1] ARM: ts4600: add basic board support
This commit adds basic support including: MMC, Serial console Signed-off-by: Sebastien Bourdelin--- Changes v1 -> v2: - remove useless define - remove eMMC muxing and init which doesn't exist on the TS4600 board - disable SSP1 and SSP2 clocks settings which are not currently used Signed-off-by: Sebastien Bourdelin --- arch/arm/Kconfig | 6 ++ board/technologic/ts4600/Kconfig | 15 + board/technologic/ts4600/MAINTAINERS | 6 ++ board/technologic/ts4600/Makefile| 11 board/technologic/ts4600/iomux.c | 119 +++ board/technologic/ts4600/ts4600.c| 89 ++ configs/ts4600_defconfig | 18 ++ include/configs/ts4600.h | 70 + 8 files changed, 334 insertions(+) create mode 100644 board/technologic/ts4600/Kconfig create mode 100644 board/technologic/ts4600/MAINTAINERS create mode 100644 board/technologic/ts4600/Makefile create mode 100644 board/technologic/ts4600/iomux.c create mode 100644 board/technologic/ts4600/ts4600.c create mode 100644 configs/ts4600_defconfig create mode 100644 include/configs/ts4600.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index d7a9b11..142c445 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -579,6 +579,11 @@ config ARCH_SUNXI select USB_KEYBOARD select USE_TINY_PRINTF +config TARGET_TS4600 + bool "Support TS4600" + select CPU_ARM926EJS + select SUPPORT_SPL + config TARGET_TS4800 bool "Support TS4800" select CPU_V7 @@ -1015,6 +1020,7 @@ source "board/ti/ti816x/Kconfig" source "board/timll/devkit3250/Kconfig" source "board/toradex/colibri_pxa270/Kconfig" source "board/toradex/colibri_vf/Kconfig" +source "board/technologic/ts4600/Kconfig" source "board/technologic/ts4800/Kconfig" source "board/vscom/baltos/Kconfig" source "board/woodburn/Kconfig" diff --git a/board/technologic/ts4600/Kconfig b/board/technologic/ts4600/Kconfig new file mode 100644 index 000..d0dc2e1 --- /dev/null +++ b/board/technologic/ts4600/Kconfig @@ -0,0 +1,15 @@ +if TARGET_TS4600 + +config SYS_BOARD + default "ts4600" + +config SYS_VENDOR + default "technologic" + +config SYS_SOC + default "mxs" + +config SYS_CONFIG_NAME + default "ts4600" + +endif diff --git a/board/technologic/ts4600/MAINTAINERS b/board/technologic/ts4600/MAINTAINERS new file mode 100644 index 000..6f683b5 --- /dev/null +++ b/board/technologic/ts4600/MAINTAINERS @@ -0,0 +1,6 @@ +TS4600 BOARD +M: Sebastien Bourdelin +S: Maintained +F: board/technologic/ts4600/ +F: include/configs/ts4600.h +F: configs/ts4600_defconfig diff --git a/board/technologic/ts4600/Makefile b/board/technologic/ts4600/Makefile new file mode 100644 index 000..faa2970 --- /dev/null +++ b/board/technologic/ts4600/Makefile @@ -0,0 +1,11 @@ +# +# (C) Copyright 2016 Savoir-faire Linux +# +# SPDX-License-Identifier: GPL-2.0+ +# + +ifndef CONFIG_SPL_BUILD +obj-y := ts4600.o +else +obj-y := iomux.o +endif diff --git a/board/technologic/ts4600/iomux.c b/board/technologic/ts4600/iomux.c new file mode 100644 index 000..11d1723 --- /dev/null +++ b/board/technologic/ts4600/iomux.c @@ -0,0 +1,119 @@ +/* + * (C) Copyright 2016 Savoir-faire Linux Inc. + * + * Author: Sebastien Bourdelin + * + * Based on work from TS7680 code by: + * Kris Bahnsen + * Mark Featherston + * https://github.com/embeddedarm/u-boot/tree/master/board/technologic/ts7680 + * + * Derived from MX28EVK code by + * Freescale Semiconductor, Inc. + * + * SPDX-License-Identifier:GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include + +#defineMUX_CONFIG_SSP0 (MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP) +#defineMUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_NOPULL) + +const iomux_cfg_t iomux_setup[] = { + /* DUART */ + MX28_PAD_PWM0__DUART_RX, + MX28_PAD_PWM1__DUART_TX, + + /* MMC0 */ + MX28_PAD_SSP0_DATA0__SSP0_D0 | MUX_CONFIG_SSP0, + MX28_PAD_SSP0_DATA1__SSP0_D1 | MUX_CONFIG_SSP0, + MX28_PAD_SSP0_DATA2__SSP0_D2 | MUX_CONFIG_SSP0, + MX28_PAD_SSP0_DATA3__SSP0_D3 | MUX_CONFIG_SSP0, + MX28_PAD_SSP0_CMD__SSP0_CMD | MUX_CONFIG_SSP0, + MX28_PAD_SSP0_SCK__SSP0_SCK | + (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_NOPULL), + + /* MMC0 slot power enable */ + MX28_PAD_PWM3__GPIO_3_28 | + (MXS_PAD_12MA | MXS_PAD_3V3 | MXS_PAD_PULLUP), + + /* EMI */ + MX28_PAD_EMI_D00__EMI_DATA0 | MUX_CONFIG_EMI, + MX28_PAD_EMI_D01__EMI_DATA1 | MUX_CONFIG_EMI, + MX28_PAD_EMI_D02__EMI_DATA2 | MUX_CONFIG_EMI, + MX28_PAD_EMI_D03__EMI_DATA3 |