Re: [U-Boot] [PATCHv2] board: Add Toby-Churchill SL50 board support.

2015-06-02 Thread Tom Rini
On Thu, May 28, 2015 at 02:47:52PM +0200, Enric Balletbo i Serra wrote:

 Add support for Lightwriter SL50 series board, a small, robust and portable
 Voice Output Communication Aids (VOCA) designed to meet the particular and
 changing needs of people with speech loss resulting from a wide range of
 acquired, progressive and congenital conditions.
 
 Signed-off-by: Enric Balletbo i Serra enric.balle...@collabora.com
[snip]
 +++ b/board/tcl/sl50/mux.c
[snip]
 +++ b/include/configs/am335x_sl50.h

In addition to Sjoerd's comments, these two files don't have SPDX tags
but instead the full verbage, please fix, thanks!

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCHv2] board: Add Toby-Churchill SL50 board support.

2015-06-01 Thread Sjoerd Simons
On Thu, 2015-05-28 at 14:47 +0200, Enric Balletbo i Serra wrote:
 Add support for Lightwriter SL50 series board, a small, robust and portable
 Voice Output Communication Aids (VOCA) designed to meet the particular and
 changing needs of people with speech loss resulting from a wide range of
 acquired, progressive and congenital conditions.


 Signed-off-by: Enric Balletbo i Serra enric.balle...@collabora.com
 ---


 diff --git a/board/tcl/sl50/board.c b/board/tcl/sl50/board.c
 new file mode 100644
 index 000..a4feb16
 --- /dev/null
 +++ b/board/tcl/sl50/board.c
 @@ -0,0 +1,386 @@
 +/*
 + * board.c
 + *
 + * Board functions for TCL SL50 board
 + *
 + * Copyright (C) 2015 Toby Churchill Ltd - http://www.toby-churchill.com/

This seems heavily based on ti/am335x/board.c, so you should keep the TI
copyright header in addition to the TCL one. (Similar for mux.c)

 +++ b/include/configs/am335x_sl50.h
 @@ -0,0 +1,141 @@
 +/*
 + * am335x_sl50.h
 + *
 + * Copyright (C) 2015 Toby Churchill Ltd - http://www.toby-churchill.com/
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License as
 + * published by the Free Software Foundation version 2.
 + *
 + * This program is distributed as is WITHOUT ANY WARRANTY of any
 + * kind, whether express or implied; without even the implied warranty
 + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + */
 +
 +#ifndef __CONFIG_AM335X_EVM_H
 +#define __CONFIG_AM335X_EVM_H
 +
 +#include configs/ti_am335x_common.h
 +#undef CONFIG_BOOTDELAY
 +
 +#ifndef CONFIG_SPL_BUILD
 +#ifndef CONFIG_FIT
 +# define CONFIG_FIT
 +#endif
 +# define CONFIG_TIMESTAMP
 +# define CONFIG_LZO
 +#endif
 +
 +#define CONFIG_SYS_BOOTM_LEN (16  20)
 +
 +/*#define CONFIG_MACH_TYPE   3589 Until the next sync */
 +#define CONFIG_BOARD_LATE_INIT
 +
 +/* Clock Defines */
 +#define V_OSCK   2400  /* Clock output from 
 T2 */
 +#define V_SCLK   (V_OSCK)
 +
 +/* Always 128 KiB env size */
 +#define CONFIG_ENV_SIZE  (128  10)
 +
 +/* Enhance our eMMC support / experience. */
 +#define CONFIG_CMD_GPT
 +#define CONFIG_EFI_PARTITION
 +
 +#define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 +
 +#ifndef CONFIG_SPL_BUILD
 +
 +#include config_distro_defaults.h
 +
 +#define MEM_LAYOUT_ENV_SETTINGS \
 + scriptaddr=0x8000\0 \
 + pxefile_addr_r=0x8010\0 \
 + kernel_addr_r=0x8200\0 \
 + fdt_addr_r=0x8800\0 \
 + ramdisk_addr_r=0x8808\0 \
 +
 +#define BOOT_TARGET_DEVICES(func) \
 + func(MMC, mmc, 0) \
 + func(MMC, mmc, 1)

It's common for the distro boot commands to start check external MMC
before internal. Assuming 0 is internal and 1 is external, it would be
good to swap those two around. 

 +#include config_distro_bootcmd.h
 +
 +#define CONFIG_EXTRA_ENV_SETTINGS \
 + MEM_LAYOUT_ENV_SETTINGS \
 + BOOTENV
 +
 +#endif
 +
 +/* NS16550 Configuration */
 +#define CONFIG_SYS_NS16550_COM1  0x44e09000  /* Base EVM has 
 UART0 */
 +#define CONFIG_SYS_NS16550_COM2  0x48022000  /* UART1 */
 +#define CONFIG_SYS_NS16550_COM3  0x48024000  /* UART2 */
 +#define CONFIG_SYS_NS16550_COM4  0x481a6000  /* UART3 */
 +#define CONFIG_SYS_NS16550_COM5  0x481a8000  /* UART4 */
 +#define CONFIG_SYS_NS16550_COM6  0x481aa000  /* UART5 */
 +#define CONFIG_BAUDRATE  115200
 +
 +#define CONFIG_CMD_EEPROM
 +#define CONFIG_ENV_EEPROM_IS_ON_I2C
 +#define CONFIG_SYS_I2C_EEPROM_ADDR   0x50/* Main EEPROM */
 +#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN   2
 +#define CONFIG_SYS_I2C_MULTI_EEPROMS


 +
 +/* PMIC support */
 +#define CONFIG_POWER_TPS65217
 +#define CONFIG_POWER_TPS65910
 +
 +/* SPL */
 +#define CONFIG_SPL_POWER_SUPPORT
 +#define CONFIG_SPL_YMODEM_SUPPORT
 +
 +/* Bootcount using the RTC block */
 +#define CONFIG_BOOTCOUNT_LIMIT
 +#define CONFIG_BOOTCOUNT_AM33XX
 +#define CONFIG_SYS_BOOTCOUNT_BE
 +
 +#define CONFIG_SPL_LDSCRIPT  $(CPUDIR)/am33xx/u-boot-spl.lds
 +
 +#ifndef CONFIG_SPL_USBETH_SUPPORT
 +/* To support eMMC booting */
 +#define CONFIG_STORAGE_EMMC
 +#define CONFIG_FASTBOOT_FLASH_MMC_DEV   1
 +#endif
 +
 +#if defined(CONFIG_SPL_BUILD)  defined(CONFIG_SPL_USBETH_SUPPORT)
 +/* Remove other SPL modes. */
 +#undef CONFIG_SPL_YMODEM_SUPPORT
 +#undef CONFIG_SPL_NAND_SUPPORT
 +#undef CONFIG_SPL_MMC_SUPPORT
 +#define CONFIG_ENV_IS_NOWHERE
 +#undef CONFIG_ENV_IS_IN_NAND
 +/* disable host part of MUSB in SPL */
 +#undef CONFIG_MUSB_HOST
 +/* disable EFI partitions and partition UUID support */
 +#undef CONFIG_PARTITION_UUIDS
 +#undef CONFIG_EFI_PARTITION
 +/* General network SPL  */
 +#define CONFIG_SPL_NET_SUPPORT
 +#define CONFIG_SPL_ENV_SUPPORT
 +#define CONFIG_SPL_NET_VCI_STRINGAM335x U-Boot SPL
 +#endif
 +
 +#if 

[U-Boot] [PATCHv2] board: Add Toby-Churchill SL50 board support.

2015-05-28 Thread Enric Balletbo i Serra
Add support for Lightwriter SL50 series board, a small, robust and portable
Voice Output Communication Aids (VOCA) designed to meet the particular and
changing needs of people with speech loss resulting from a wide range of
acquired, progressive and congenital conditions.

Signed-off-by: Enric Balletbo i Serra enric.balle...@collabora.com
---
 arch/arm/Kconfig  |   6 +
 board/tcl/sl50/Kconfig|  34 
 board/tcl/sl50/MAINTAINERS|   6 +
 board/tcl/sl50/Makefile   |  13 ++
 board/tcl/sl50/board.c| 386 ++
 board/tcl/sl50/board.h|  22 +++
 board/tcl/sl50/mux.c  | 161 ++
 configs/am335x_sl50_defconfig |   7 +
 include/configs/am335x_sl50.h | 141 +++
 9 files changed, 776 insertions(+)
 create mode 100644 board/tcl/sl50/Kconfig
 create mode 100644 board/tcl/sl50/MAINTAINERS
 create mode 100644 board/tcl/sl50/Makefile
 create mode 100644 board/tcl/sl50/board.c
 create mode 100644 board/tcl/sl50/board.h
 create mode 100644 board/tcl/sl50/mux.c
 create mode 100644 configs/am335x_sl50_defconfig
 create mode 100644 include/configs/am335x_sl50.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index b62842f..ddee39e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -377,6 +377,11 @@ config TARGET_AM335X_EVM
select DM_SERIAL
select DM_GPIO
 
+config TARGET_AM335X_SL50
+   bool Support am335x_sl50
+   select CPU_V7
+   select SUPPORT_SPL
+
 config TARGET_AM43XX_EVM
bool Support am43xx_evm
select CPU_V7
@@ -946,6 +951,7 @@ source board/st/stv0991/Kconfig
 source board/sunxi/Kconfig
 source board/syteco/zmx25/Kconfig
 source board/tbs/tbs2910/Kconfig
+source board/tcl/sl50/Kconfig
 source board/ti/am335x/Kconfig
 source board/ti/am43xx/Kconfig
 source board/birdland/bav335x/Kconfig
diff --git a/board/tcl/sl50/Kconfig b/board/tcl/sl50/Kconfig
new file mode 100644
index 000..2b93aa2
--- /dev/null
+++ b/board/tcl/sl50/Kconfig
@@ -0,0 +1,34 @@
+if TARGET_AM335X_SL50
+
+config SYS_BOARD
+   default sl50
+
+config SYS_VENDOR
+   default tcl
+
+config SYS_SOC
+   default am33xx
+
+config SYS_CONFIG_NAME
+   default am335x_sl50
+
+config CONS_INDEX
+   int UART used for console
+   range 1 6
+   default 1
+   help
+ The AM335x SoC has a total of 6 UARTs (UART0 to UART5 as referenced
+ in documentation, etc) available to it.  Depending on your specific
+ board you may want something other than UART0 as for example the IDK
+ uses UART3 so enter 4 here.
+
+config DM
+   default y
+
+config DM_GPIO
+   default y if DM
+
+config DM_SERIAL
+   default y if DM
+
+endif
diff --git a/board/tcl/sl50/MAINTAINERS b/board/tcl/sl50/MAINTAINERS
new file mode 100644
index 000..29f1e3d
--- /dev/null
+++ b/board/tcl/sl50/MAINTAINERS
@@ -0,0 +1,6 @@
+SL50 BOARD
+M: Enric Balletbo i Serra enric.balle...@collabora.com
+S: Maintained
+F: board/tcl/sl50/
+F: include/configs/am335x_sl50.h
+F: configs/am335x_sl50_defconfig
diff --git a/board/tcl/sl50/Makefile b/board/tcl/sl50/Makefile
new file mode 100644
index 000..d4a548c
--- /dev/null
+++ b/board/tcl/sl50/Makefile
@@ -0,0 +1,13 @@
+#
+# Makefile
+#
+# Copyright (C) 2015 Toby Churchill Ltd - http://www.toby-churchill.com/
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+ifeq ($(CONFIG_SKIP_LOWLEVEL_INIT),)
+obj-y  := mux.o
+endif
+
+obj-y  += board.o
diff --git a/board/tcl/sl50/board.c b/board/tcl/sl50/board.c
new file mode 100644
index 000..a4feb16
--- /dev/null
+++ b/board/tcl/sl50/board.c
@@ -0,0 +1,386 @@
+/*
+ * board.c
+ *
+ * Board functions for TCL SL50 board
+ *
+ * Copyright (C) 2015 Toby Churchill Ltd - http://www.toby-churchill.com/
+ *
+ * SPDX-License-Identifier:GPL-2.0+
+ */
+
+#include common.h
+#include errno.h
+#include spl.h
+#include asm/arch/cpu.h
+#include asm/arch/hardware.h
+#include asm/arch/omap.h
+#include asm/arch/ddr_defs.h
+#include asm/arch/clock.h
+#include asm/arch/gpio.h
+#include asm/arch/mmc_host_def.h
+#include asm/arch/sys_proto.h
+#include asm/arch/mem.h
+#include asm/io.h
+#include asm/emif.h
+#include asm/gpio.h
+#include i2c.h
+#include miiphy.h
+#include cpsw.h
+#include power/tps65217.h
+#include power/tps65910.h
+#include environment.h
+#include watchdog.h
+#include environment.h
+#include board.h
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE;
+
+#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+
+static const struct ddr_data ddr3_sl50_data = {
+   .datardsratio0 = MT41K256M16HA125E_RD_DQS,
+   .datawdsratio0 = MT41K256M16HA125E_WR_DQS,
+   .datafwsratio0 = MT41K256M16HA125E_PHY_FIFO_WE,
+   .datawrsratio0 = MT41K256M16HA125E_PHY_WR_DATA,
+};
+
+static const struct cmd_control ddr3_sl50_cmd_ctrl_data = {
+   .cmd0csratio = MT41K256M16HA125E_RATIO,
+   .cmd0iclkout = MT41K256M16HA125E_INVERT_CLKOUT,
+
+