Re: [U-Boot] [PATCH v2 1/1] ARM: ts4600: add basic board support

2016-11-07 Thread Sebastien Bourdelin
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

2016-11-07 Thread Sebastien Bourdelin
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 |