Add support for CompuLab cm-t3517 SoM
Subsystems (2)
cover Add support for CompuLab cm-t3517 SoM
* Move reusable code to a CompuLab common location
* Switch omap_hsmmc cd gpio to active low
* Add CompuLab cm-t3517 support
Igor Grinberg (11):
am335x: make get_board_rev() function weak
compulab: refactor board revision handling
omap3: cm-t35: move the USB hub reset code
omap3: cm-t35: extract the splash code from board
omap3: cm-t35: move the SMC911x code
omap3: cm-t35: move get_board_serial() fallback
omap: hsmmc: assume cd gpio is active low
omap3: cm-t3517: add basic board support
omap3: cm-t3517: add USB support
omap3: cm-t3517: add Ethernet support
omap3: cm-t3517: add LCD/DVI and splash support
arch/arm/cpu/armv7/am33xx/sys_info.c | 3 +- arch/arm/cpu/armv7/omap3/Kconfig | 4 + board/compulab/cm_t35/cm_t35.c | 157 ++-------------- board/compulab/cm_t3517/Kconfig | 12 ++ board/compulab/cm_t3517/MAINTAINERS | 6 + board/compulab/cm_t3517/Makefile | 9 + board/compulab/cm_t3517/cm_t3517.c | 231 ++++++++++++++++++++++++ board/compulab/cm_t3517/mux.c | 236 ++++++++++++++++++++++++ board/compulab/cm_t54/cm_t54.c | 7 +- board/compulab/common/Makefile | 7 +- board/compulab/common/common.c | 59 ++++++ board/compulab/common/common.h | 47 +++++ board/compulab/common/eeprom.c | 14 +- board/compulab/common/omap3_smc911x.c | 93 ++++++++++ board/compulab/common/splash.c | 72 ++++++++ configs/cm_t3517_defconfig | 4 + drivers/mmc/omap_hsmmc.c | 4 +- include/configs/cm_t3517.h | 325 ++++++++++++++++++++++++++++++++++ 18 files changed, 1134 insertions(+), 156 deletions(-) create mode 100644 board/compulab/cm_t3517/Kconfig create mode 100644 board/compulab/cm_t3517/MAINTAINERS create mode 100644 board/compulab/cm_t3517/Makefile create mode 100644 board/compulab/cm_t3517/cm_t3517.c create mode 100644 board/compulab/cm_t3517/mux.c create mode 100644 board/compulab/common/common.c create mode 100644 board/compulab/common/common.h create mode 100644 board/compulab/common/omap3_smc911x.c create mode 100644 board/compulab/common/splash.c create mode 100644 configs/cm_t3517_defconfig create mode 100644 include/configs/cm_t3517.h
Signature · 1 line
2.0.4
PATCH 1/11 am335x: make get_board_rev() function weak
Current get_board_rev() function returns a hard coded value which is obviously incorrect for the majority of boards.
Allow boards to provide a correct implementation by making this function weak.
--- arch/arm/cpu/armv7/am33xx/sys_info.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/cpu/armv7/am33xx/sys_info.c +2 -1
@@ -18,6 +18,7 @@#include <asm/arch/cpu.h> #include <asm/arch/clock.h> #include <power/tps65910.h> +#include <linux/compiler.h> struct ctrl_stat *cstat = (struct ctrl_stat *)CTRL_BASE ;
@@ -53,7 +54,7 @@ u32 get_cpu_type(void)* get_board_rev() - setup to pass kernel board revision information * returns:(bit[0-3] sub version, higher bit[7-4] is higher version) */ -u32 get_board_rev (void ) +u32 __weak get_board_rev (void ) {return BOARD_REV_ID ; }
Signature · 1 line
2.0.4
PATCH 1/11 am335x: make get_board_rev() function weak
Quoted 23 lines · Igor Grinberg
Current
get_board_rev()function returns a hard coded value which is obviously incorrect for the majority of boards.
Allow boards to provide a correct implementation by making this function weak.Signed-off-by Igor Grinberg <[email protected]>--- arch/arm/cpu/armv7/am33xx/sys_info.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)arch/arm/cpu/armv7/am33xx/sys_info.c +1
-0@@ -18,6 +18,7 @@#include <asm/arch/cpu.h> #include <asm/arch/clock.h> #include <power/tps65910.h> +#include <linux/compiler.h> struct ctrl_stat *cstat = (struct ctrl_stat *)CTRL_BASE ;
arch/arm/cpu/armv7/am33xx/sys_info.c u32 get_cpu_type(void) · line 60
Quoted 8 lines
arch/arm/cpu/armv7/am33xx/sys_info.c +1
-1@@ -53,7 +54,7 @@ u32 get_cpu_type(void)* get_board_rev() - setup to pass kernel board revision information * returns:(bit[0-3] sub version, higher bit[7-4] is higher version) */ -u32 get_board_rev (void ) +u32 __weak get_board_rev (void ) {return BOARD_REV_ID ; }
Which is a hard-coded 0 anyhow. Can you please update the comment to say something along the lines of "Return 0 for the ATAG REVISION tag value" along with making it weak and nuke BOARD_REV_ID from the header as well? Thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/da70b493/attachment.pgp>
PATCH v2 1/1 am335x: make get_board_rev() function weak
Current get_board_rev() function returns a hard coded value which is obviously incorrect for the majority of boards.
Allow boards to provide a correct implementation by making this function weak.
In addition open code the trivial and useless BOARD_REV_ID define and adjust the comment.
---
v2: Remove the BOARD_REV_ID define, adjust the comment and
commit message.
arch/arm/cpu/armv7/am33xx/sys_info.c | 7 ++++--- arch/arm/include/asm/arch-am33xx/sys_proto.h | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-)
arch/arm/cpu/armv7/am33xx/sys_info.c +4 -3
@@ -18,6 +18,7 @@#include <asm/arch/cpu.h> #include <asm/arch/clock.h> #include <power/tps65910.h> +#include <linux/compiler.h> struct ctrl_stat *cstat = (struct ctrl_stat *)CTRL_BASE ;
@@ -51,11 +52,11 @@ u32 get_cpu_type(void)/** * get_board_rev() - setup to pass kernel board revision information -* returns:(bit[0-3] sub version, higher bit[7-4] is higher version) +* returns: 0 for the ATAG REVISION tag value. */ -u32 get_board_rev (void ) +u32 __weak get_board_rev (void ) { -return BOARD_REV_ID ; +return 0 ; }/**
arch/arm/include/asm/arch-am33xx/sys_proto.h +0 -2
@@ -14,8 +14,6 @@#include <asm/ti-common/sys_proto.h> #include <asm/arch/cpu.h> -#define BOARD_REV_ID 0x0 -u32 get_cpu_rev (void );u32 get_sysboot_value (void );
Signature · 1 line
2.0.4
PATCH v2 1/1 am335x: make get_board_rev() function weak
Quoted 9 lines · Igor Grinberg
Current
get_board_rev()function returns a hard coded value which is obviously incorrect for the majority of boards.
Allow boards to provide a correct implementation by making this function weak.
In addition open code the trivial and uselessBOARD_REV_IDdefine and adjust the comment.Signed-off-by Igor Grinberg <[email protected]>Cc Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/17ea5f96/attachment.pgp>
PATCH 2/11 compulab: refactor board revision handling
In reply to Igor GrinbergMove board revision handling code to a common location for further reuse.
--- board/compulab/cm_t35/cm_t35.c | 21 +++------------------ board/compulab/common/Makefile | 5 +++-- board/compulab/common/common.c | 25 +++++++++++++++++++++++++ board/compulab/common/common.h | 14 ++++++++++++++ board/compulab/common/eeprom.c | 14 +++++++++----- 5 files changed, 54 insertions(+), 25 deletions(-) create mode 100644 board/compulab/common/common.c create mode 100644 board/compulab/common/common.h
board/compulab/cm_t35/cm_t35.c +3 -18
@@ -33,6 +33,7 @@#include <asm/ehci-omap.h> #include <asm/gpio.h> +#include "../common/common.h" #include "../common/eeprom.h" DECLARE_GLOBAL_DATA_PTR ;
@@ -154,34 +155,18 @@ int board_init(void)return 0 ; } -static u32 cm_t3x_rev; -/* * Routine: get_board_rev * Description: read system revision */ u32 get_board_rev (void ) { -if (!cm_t3x_rev) - cm_t3x_rev =cl_eeprom_get_board_rev (); - -return cm_t3x_rev; +return cl_eeprom_get_board_rev (); }; -/* -* Routine: misc_init_r -* Description: display die ID -*/ int misc_init_r (void ) { -u32 board_rev =get_board_rev (); -u32 rev_major = board_rev /100 ; -u32 rev_minor = board_rev - (rev_major *100 ); - -if ((rev_minor /10 ) *10 == rev_minor) - rev_minor = rev_minor /10 ; - -printf ("PCB: %u.%u\n" , rev_major, rev_minor); +cl_print_pcb_info ();dieid_num_r ();return 0 ;
board/compulab/common/Makefile +3 -2
@@ -6,5 +6,6 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-$(CONFIG_SYS_I2C) += eeprom.o -obj-$(CONFIG_LCD) += omap3_display.o +obj-y += common.o +obj-$(CONFIG_SYS_I2C) += eeprom.o +obj-$(CONFIG_LCD) += omap3_display.o
board/compulab/common/common.c new file +25 -0
@@ -0,0 +1,25 @@ +/* +* (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il> +* +* Authors: Igor Grinberg <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#include <common.h> +#include <asm/bootm.h> + +#include "common.h" +#include "eeprom.h" + +void cl_print_pcb_info (void ) +{ +u32 board_rev =get_board_rev (); +u32 rev_major = board_rev /100 ; +u32 rev_minor = board_rev - (rev_major *100 ); + +if ((rev_minor /10 ) *10 == rev_minor) + rev_minor = rev_minor /10 ; + +printf ("PCB: %u.%u\n" , rev_major, rev_minor); +}
board/compulab/common/common.h new file +14 -0
@@ -0,0 +1,14 @@ +/* +* (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il> +* +* Authors: Igor Grinberg <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef _CL_COMMON_ +#define _CL_COMMON_ + +void cl_print_pcb_info (void ); + +#endif /* _CL_COMMON_ */
board/compulab/common/eeprom.c +9 -5
@@ -109,23 +109,27 @@ int cl_eeprom_read_mac_addr(uchar *buf)return cl_eeprom_read (offset, buf,6 ); } +static u32 board_rev; +/* * Routine: cl_eeprom_get_board_rev * Description: read system revision from eeprom */ u32 cl_eeprom_get_board_rev (void ) { -u32 rev =0 ;char str[5 ];/* Legacy representation can contain at most 4 digits */ uint offset =BOARD_REV_OFFSET_LEGACY ; +if (board_rev) +return board_rev; +if (cl_eeprom_setup_layout ())return 0 ;if (cl_eeprom_layout !=LAYOUT_LEGACY ) offset =BOARD_REV_OFFSET ; -if (cl_eeprom_read (offset, (uchar *)&rev,BOARD_REV_SIZE )) +if (cl_eeprom_read (offset, (uchar *)&board_rev,BOARD_REV_SIZE ))return 0 ;/*
@@ -133,9 +137,9 @@ u32 cl_eeprom_get_board_rev(void)* representation. i.e. for rev 1.00: 0x100 --> 0x64 */ if (cl_eeprom_layout ==LAYOUT_LEGACY ) { -sprintf (str,"%x" , rev); - rev =simple_strtoul (str,NULL ,10 ); +sprintf (str,"%x" , board_rev); + board_rev =simple_strtoul (str,NULL ,10 ); } -return rev; +return board_rev; };
Signature · 1 line
2.0.4
PATCH 2/11 compulab: refactor board revision handling
Quoted 4 lines · Igor Grinberg
Move board revision handling code to a common location for further reuse.
Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/bcd0a5d6/attachment.pgp>
PATCH 2/11 compulab: refactor board revision handling
In reply to Igor GrinbergQuoted 5 lines · Igor Grinberg
Move board revision handling code to a common location for further reuse.
Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/54b526f2/attachment.pgp>
PATCH 3/11 omap3: cm-t35: move the USB hub reset code
In reply to Igor GrinbergExtract the USB hub reset code to a common location where it can be reused by other compulab boards.
--- board/compulab/cm_t35/cm_t35.c | 14 +++----------- board/compulab/common/common.c | 22 ++++++++++++++++++++++ board/compulab/common/common.h | 13 +++++++++++++ 3 files changed, 38 insertions(+), 11 deletions(-)
board/compulab/cm_t35/cm_t35.c +3 -11
@@ -568,21 +568,12 @@ struct omap_usbhs_board_data usbhs_bdata = {#define SB_T35_USB_HUB_RESET_GPIO 167int ehci_hcd_init (int index,enum usb_init_type init, -struct ehci_hccr **hccr,struct ehci_hcor **hcor) +struct ehci_hccr **hccr,struct ehci_hcor **hcor) {u8 val;int offset; -if (gpio_request (SB_T35_USB_HUB_RESET_GPIO ,"SB-T35 usb hub reset" )) { -printf ("Error: can't obtain GPIO %d for SB-T35 usb hub reset" , -SB_T35_USB_HUB_RESET_GPIO ); -return -1 ; - } - -gpio_direction_output (SB_T35_USB_HUB_RESET_GPIO ,0 ); -udelay (10 ); -gpio_set_value (SB_T35_USB_HUB_RESET_GPIO ,1 ); -udelay (1000 ); +cl_usb_hub_init (SB_T35_USB_HUB_RESET_GPIO ,"sb-t35 hub rst" ); offset =TWL4030_BASEADD_GPIO +TWL4030_GPIO_GPIODATADIR1 ;twl4030_i2c_read_u8 (TWL4030_CHIP_GPIO , offset, &val);
@@ -599,6 +590,7 @@ int ehci_hcd_init(int index, enum usb_init_type init,int ehci_hcd_stop (void ) { +cl_usb_hub_deinit (SB_T35_USB_HUB_RESET_GPIO );return omap_ehci_hcd_stop (); }#endif /* CONFIG_USB_EHCI_OMAP */
board/compulab/common/common.c +22 -0
@@ -8,6 +8,7 @@#include <common.h> #include <asm/bootm.h> +#include <asm/gpio.h> #include "common.h" #include "eeprom.h"
@@ -23,3 +24,24 @@ void cl_print_pcb_info(void)printf ("PCB: %u.%u\n" , rev_major, rev_minor); } + +#ifdef CONFIG_CMD_USB +int cl_usb_hub_init (int gpio,const char *label) +{ +if (gpio_request (gpio, label)) { +printf ("Error: can't obtain GPIO%d for %s" , gpio, label); +return -1 ; + } + +gpio_direction_output (gpio,0 ); +udelay (10 ); +gpio_set_value (gpio,1 ); +udelay (1000 ); +return 0 ; +} + +void cl_usb_hub_deinit (int gpio) +{ +gpio_free (gpio); +} +#endif
board/compulab/common/common.h +13 -0
@@ -9,6 +9,19 @@#ifndef _CL_COMMON_#define _CL_COMMON_ +#include <asm/errno.h> +void cl_print_pcb_info (void ); +#ifdef CONFIG_CMD_USB +int cl_usb_hub_init (int gpio,const char *label); +void cl_usb_hub_deinit (int gpio); +#else /* !CONFIG_CMD_USB */ +static inline int cl_usb_hub_init (int gpio,const char *label) +{ +return -ENOSYS ; +} +static inline void cl_usb_hub_deinit (int gpio) {} +#endif /* CONFIG_CMD_USB */ +#endif /* _CL_COMMON_ */
Signature · 1 line
2.0.4
PATCH 3/11 omap3: cm-t35: move the USB hub reset code
Quoted 4 lines · Igor Grinberg
Extract the USB hub reset code to a common location where it can be reused by other compulab boards.
Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/6805a5ea/attachment.pgp>
PATCH 3/11 omap3: cm-t35: move the USB hub reset code
In reply to Igor GrinbergQuoted 5 lines · Igor Grinberg
Extract the USB hub reset code to a common location where it can be reused by other compulab boards.
Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/d1238b9a/attachment.pgp>
PATCH 4/11 omap3: cm-t35: extract the splash code from board
In reply to Igor GrinbergThe splash screen loading code can be reused by other compulab boards. For now extract it to a common location for further reuse.
This also switches the splash code dependency from CONFIG_LCD to CONFIG_SPLASH_SCREEN as it should normally be.
In addition this patch fixes the accidental dependency of the get_board_mem_timings() function on CONFIG_LCD, by just moving the splash code and leaving the above function intact.
--- board/compulab/cm_t35/cm_t35.c | 62 ++---------------------------------- board/compulab/common/Makefile | 1 + board/compulab/common/common.h | 9 ++++++ board/compulab/common/splash.c | 72 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 59 deletions(-) create mode 100644 board/compulab/common/splash.c
board/compulab/cm_t35/cm_t35.c +3 -59
@@ -19,9 +19,7 @@#include <i2c.h> #include <usb.h> #include <mmc.h> -#include <nand.h> #include <twl4030.h> -#include <bmp_layout.h> #include <linux/compiler.h> #include <asm/io.h>
@@ -54,48 +52,6 @@ static u32 gpmc_net_config[GPMC_MAX_REG] = { 0 }; -#ifdef CONFIG_LCD -#ifdef CONFIG_CMD_NAND -static int splash_load_from_nand (u32 bmp_load_addr) -{ -struct bmp_header *bmp_hdr; -int res, splash_screen_nand_offset =0x100000 ; -size_t bmp_size, bmp_header_size =sizeof (struct bmp_header ); - -if (bmp_load_addr + bmp_header_size >= gd->start_addr_sp) - goto splash_address_too_high; - - res =nand_read_skip_bad (&nand_info[nand_curr_device], - splash_screen_nand_offset, &bmp_header_size, -NULL , nand_info[nand_curr_device].size, - (u_char *)bmp_load_addr); -if (res <0 ) -return res; - - bmp_hdr = (struct bmp_header *)bmp_load_addr; - bmp_size =le32_to_cpu (bmp_hdr->file_size); - -if (bmp_load_addr + bmp_size >= gd->start_addr_sp) - goto splash_address_too_high; - -return nand_read_skip_bad (&nand_info[nand_curr_device], - splash_screen_nand_offset, &bmp_size, -NULL , nand_info[nand_curr_device].size, - (u_char *)bmp_load_addr); - -splash_address_too_high: -printf ("Error: splashimage address too high. Data overwrites U-Boot " -"and/or placed beyond DRAM boundaries.\n" ); - -return -1 ; -} -#else -static inline int splash_load_from_nand (void ) -{ -return -1 ; -} -#endif /* CONFIG_CMD_NAND */ -#ifdef CONFIG_SPL_BUILD /* * Routine: get_board_mem_timings
@@ -112,24 +68,12 @@ void get_board_mem_timings(struct board_sdrc_timings *timings) }#endif +#define CM_T35_SPLASH_NAND_OFFSET 0x100000 +int splash_screen_prepare (void ) { -char *env_splashimage_value; -u32 bmp_load_addr; - - env_splashimage_value =getenv ("splashimage" ); -if (env_splashimage_value ==NULL ) -return -1 ; - - bmp_load_addr =simple_strtoul (env_splashimage_value,0 ,16 ); -if (bmp_load_addr ==0 ) { -printf ("Error: bad splashimage address specified\n" ); -return -1 ; - } - -return splash_load_from_nand (bmp_load_addr); +return cl_splash_screen_prepare (CM_T35_SPLASH_NAND_OFFSET ); } -#endif /* CONFIG_LCD */ /* * Routine: board_init
board/compulab/common/Makefile +1 -0
@@ -9,3 +9,4 @@ obj-y += common.o obj-$(CONFIG_SYS_I2C) += eeprom.o obj-$(CONFIG_LCD) += omap3_display.o +obj-$(CONFIG_SPLASH_SCREEN) += splash.o
board/compulab/common/common.h +9 -0
@@ -24,4 +24,13 @@ static inline int cl_usb_hub_init(int gpio, const char *label)static inline void cl_usb_hub_deinit (int gpio) {}#endif /* CONFIG_CMD_USB */ +#ifdef CONFIG_SPLASH_SCREEN +int cl_splash_screen_prepare (int nand_offset); +#else /* !CONFIG_SPLASH_SCREEN */ +static inline int cl_splash_screen_prepare (int nand_offset) +{ +return -ENOSYS ; +} +#endif /* CONFIG_SPLASH_SCREEN */ +#endif /* _CL_COMMON_ */
board/compulab/common/splash.c new file +72 -0
72 lines not on this page · raw message
Signature · 1 line
2.0.4
PATCH 4/11 omap3: cm-t35: extract the splash code from board
Quoted 11 lines · Igor Grinberg
The splash screen loading code can be reused by other compulab boards. For now extract it to a common location for further reuse.
This also switches the splash code dependency from
CONFIG_LCDtoCONFIG_SPLASH_SCREENas it should normally be.In addition this patch fixes the accidental dependency of the
get_board_mem_timings()function onCONFIG_LCD, by just moving the splash code and leaving the above function intact.Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/df676b03/attachment.pgp>
PATCH 4/11 omap3: cm-t35: extract the splash code from board
In reply to Igor GrinbergQuoted 6 lines · Igor Grinberg
The splash screen loading code can be reused by other compulab boards. For now extract it to a common location for further reuse.
This also switches the splash code dependency from
CONFIG_LCDtoCONFIG_SPLASH_SCREENas it should normally be.
Quoted 6 lines
In addition this patch fixes the accidental dependency of the
get_board_mem_timings()function onCONFIG_LCD, by just moving the splash code and leaving the above function intact.Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/e6ae65f3/attachment.pgp>
PATCH 5/11 omap3: cm-t35: move the SMC911x code
In reply to Igor GrinbergExtract the SMC911x initialization code to a common location where it can be reused by other compulab omap3 based boards.
--- board/compulab/cm_t35/cm_t35.c | 50 +++---------------- board/compulab/common/Makefile | 1 + board/compulab/common/common.h | 11 +++++ board/compulab/common/omap3_smc911x.c | 93 +++++++++++++++++++++++++++++++++++ 4 files changed, 112 insertions(+), 43 deletions(-) create mode 100644 board/compulab/common/omap3_smc911x.c
board/compulab/cm_t35/cm_t35.c +7 -43
@@ -23,6 +23,7 @@#include <linux/compiler.h> #include <asm/io.h> +#include <asm/errno.h> #include <asm/arch/mem.h> #include <asm/arch/mux.h> #include <asm/arch/mmc_host_def.h>
@@ -42,16 +43,6 @@ const omap3_sysinfo sysinfo = { "NAND", }; -static u32 gpmc_net_config[GPMC_MAX_REG ] = { -NET_GPMC_CONFIG1 , -NET_GPMC_CONFIG2 , -NET_GPMC_CONFIG3 , -NET_GPMC_CONFIG4 , -NET_GPMC_CONFIG5 , -NET_GPMC_CONFIG6 , -0 -}; -#ifdef CONFIG_SPL_BUILD /* * Routine: get_board_mem_timings
@@ -391,37 +382,12 @@ int board_mmc_init(bd_t *bis) }#endif -/* -* Routine: setup_net_chip_gmpc -* Description: Setting up the configuration GPMC registers specific to the -* Ethernet hardware. -*/ -static void setup_net_chip_gmpc (void ) -{ -struct ctrl *ctrl_base = (struct ctrl *)OMAP34XX_CTRL_BASE ; - -enable_gpmc_cs_config (gpmc_net_config, &gpmc_cfg->cs[5 ], -CM_T3X_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); -} -#ifdef CONFIG_SYS_I2C_OMAP34XX /* * Routine: reset_net_chip * Description: reset the Ethernet controller via TPS65930 GPIO */ -static void reset_net_chip (void ) +static int cm_t3x_reset_net_chip (int gpio) {/* Set GPIO1 of TPS65930 as output */ twl4030_i2c_write_u8(TWL4030_CHIP_GPIO, TWL4030_BASEADD_GPIO + 0x03,
@@ -436,9 +402,10 @@ static void reset_net_chip(void)twl4030_i2c_write_u8 (TWL4030_CHIP_GPIO ,TWL4030_BASEADD_GPIO +0x0C ,0x02 );mdelay (1 ); + return 0; }#else -static inline void reset_net_chip (void ) {} +static inline int cm_t3x_reset_net_chip (int gpio) {return 0 ; }#endif #ifdef CONFIG_SMC911X
@@ -465,7 +432,6 @@ static int handle_mac_address(void)return eth_setenv_enetaddr ("ethaddr" , enetaddr); } -/* * Routine: board_eth_init * Description: initialize module and base-board Ethernet chips
@@ -474,18 +440,16 @@ int board_eth_init(bd_t *bis) {int rc =0 , rc1 =0 ; -setup_net_chip_gmpc (); -reset_net_chip (); - rc1 =handle_mac_address ();if (rc1)printf ("No MAC address found! " ); - rc1 =smc911x_initialize (0 ,CM_T3X_SMC911X_BASE ); + rc1 =cl_omap3_smc911x_init (0 ,5 ,CM_T3X_SMC911X_BASE , + cm_t3x_reset_net_chip, -EINVAL );if (rc1 >0 ) rc++; - rc1 =smc911x_initialize (1 ,SB_T35_SMC911X_BASE ); + rc1 =cl_omap3_smc911x_init (1 ,4 ,SB_T35_SMC911X_BASE ,NULL , -EINVAL );if (rc1 >0 ) rc++;
board/compulab/common/Makefile +1 -0
@@ -10,3 +10,4 @@ obj-y += common.o obj-$(CONFIG_SYS_I2C) += eeprom.o obj-$(CONFIG_LCD) += omap3_display.o obj-$(CONFIG_SPLASH_SCREEN) += splash.o +obj-$(CONFIG_SMC911X) += omap3_smc911x.o
board/compulab/common/common.h +11 -0
@@ -33,4 +33,15 @@ static inline int cl_splash_screen_prepare(int nand_offset) }#endif /* CONFIG_SPLASH_SCREEN */ +#ifdef CONFIG_SMC911X +int cl_omap3_smc911x_init (int id,int cs,u32 base_addr, +int (*reset)(int ),int rst_gpio); +#else /* !CONFIG_SMC911X */ +static inline int cl_omap3_smc911x_init (int id,int cs,u32 base_addr, +int (*reset)(int ),int rst_gpio) +{ +return -ENOSYS ; +} +#endif /* CONFIG_SMC911X */ +#endif /* _CL_COMMON_ */
board/compulab/common/omap3_smc911x.c new file +93 -0
93 lines not on this page · raw message
Signature · 1 line
2.0.4
PATCH 5/11 omap3: cm-t35: move the SMC911x code
Quoted 4 lines · Igor Grinberg
Extract the SMC911x initialization code to a common location where it can be reused by other compulab omap3 based boards.
Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/a66d2599/attachment.pgp>
PATCH 5/11 omap3: cm-t35: move the SMC911x code
In reply to Igor GrinbergQuoted 5 lines · Igor Grinberg
Extract the SMC911x initialization code to a common location where it can be reused by other compulab omap3 based boards.
Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/8b3cc86e/attachment.pgp>
PATCH 6/11 omap3: cm-t35: move get_board_serial() fallback
In reply to Igor GrinbergThe fallback is used for cases when CONFIG_SERIAL_TAG defined, but the eeprom is not used.
The fallback is useful for more than one CompuLab board, so move it to a common location.
--- board/compulab/cm_t35/cm_t35.c | 10 ---------- board/compulab/common/common.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-)
board/compulab/cm_t35/cm_t35.c +0 -10
@@ -457,16 +457,6 @@ int board_eth_init(bd_t *bis) }#endif -void __weak get_board_serial (struct tag_serialnr *serialnr) -{ -/* -* This corresponds to what happens when we can communicate with the -* eeprom but don't get a valid board serial value. -*/ - serialnr->low =0 ; - serialnr->high =0 ; -}; -#ifdef CONFIG_USB_EHCI_OMAP struct omap_usbhs_board_data usbhs_bdata = { .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
board/compulab/common/common.c +12 -0
@@ -25,6 +25,18 @@ void cl_print_pcb_info(void)printf ("PCB: %u.%u\n" , rev_major, rev_minor); } +#ifdef CONFIG_SERIAL_TAG +void __weak get_board_serial (struct tag_serialnr *serialnr) +{ +/* +* This corresponds to what happens when we can communicate with the +* eeprom but don't get a valid board serial value. +*/ + serialnr->low =0 ; + serialnr->high =0 ; +}; +#endif +#ifdef CONFIG_CMD_USB int cl_usb_hub_init (int gpio,const char *label) {
Signature · 1 line
2.0.4
PATCH 6/11 omap3: cm-t35: move get_board_serial() fallback
Quoted 6 lines · Igor Grinberg
The fallback is used for cases when
CONFIG_SERIAL_TAGdefined, but the eeprom is not used.
The fallback is useful for more than one CompuLab board, so move it to a common location.Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/f3301bd8/attachment.pgp>
PATCH 6/11 omap3: cm-t35: move get_board_serial() fallback
In reply to Igor GrinbergQuoted 7 lines · Igor Grinberg
The fallback is used for cases when
CONFIG_SERIAL_TAGdefined, but the eeprom is not used.
The fallback is useful for more than one CompuLab board, so move it to a common location.Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/37e465a9/attachment.pgp>
PATCH 7/11 omap: hsmmc: assume cd gpio is active low
In reply to Igor GrinbergSwitch the default CD GPIO polarity to active low.
The current hsmmc driver assumption that the CD GPIO is active high, but in the real hardware, usually the opposite holds.
The usual SD card socket has a mechanical switch which is grounded as soon as a card is inserted.
Of course there might be some board logic which inverts the signal, but as far as current users are concerned, there is no such logic.
Current U-Boot users either not using the CD functionality, or have a different way (e.g. external to SoC GPIO controller) for checking the card presence.
This patch also brings the polarity assumption in line with the Linux kernel and adds appropriate comments.
This patch also might spare issues once the TWL GPIO driver will be converted to the DM.
--- board/compulab/cm_t54/cm_t54.c | 7 +------ drivers/mmc/omap_hsmmc.c | 4 +++- 2 files changed, 4 insertions(+), 7 deletions(-)
board/compulab/cm_t54/cm_t54.c +1 -6
@@ -100,16 +100,11 @@ uint mmc_get_env_part(struct mmc *mmc)#define SB_T54_CD_GPIO 228#define SB_T54_WP_GPIO 229 -int board_mmc_getcd (struct mmc *mmc) -{ -return !gpio_get_value (SB_T54_CD_GPIO ); -} -int board_mmc_init (bd_t *bis) {int ret0, ret1; - ret0 =omap_mmc_init (0 ,0 ,0 ,-1 ,SB_T54_WP_GPIO ); + ret0 =omap_mmc_init (0 ,0 ,0 ,SB_T54_CD_GPIO ,SB_T54_WP_GPIO );if (ret0)printf ("cm_t54: failed to initialize mmc0\n" );
drivers/mmc/omap_hsmmc.c +3 -1
@@ -611,7 +611,8 @@ static int omap_hsmmc_getcd(struct mmc *mmc)if (cd_gpio <0 )return 1 ; -return gpio_get_value (cd_gpio); +/* NOTE: assumes card detect signal is active-low */ +return !gpio_get_value (cd_gpio); }static int omap_hsmmc_getwp (struct mmc *mmc)
@@ -624,6 +625,7 @@ static int omap_hsmmc_getwp(struct mmc *mmc)if (wp_gpio <0 )return 0 ; +/* NOTE: assumes write protect signal is active-high */ return gpio_get_value(wp_gpio); }#endif
Signature · 1 line
2.0.4
PATCH 7/11 omap: hsmmc: assume cd gpio is active low
Quoted 16 lines · Igor Grinberg
Switch the default CD GPIO polarity to active low.
The current hsmmc driver assumption that the CD GPIO is active high, but in the real hardware, usually the opposite holds.
The usual SD card socket has a mechanical switch which is grounded as soon as a card is inserted.
Of course there might be some board logic which inverts the signal, but as far as current users are concerned, there is no such logic.Current U-Boot users either not using the CD functionality, or have a different way (e.g. external to SoC GPIO controller) for checking the card presence.
This patch also brings the polarity assumption in line with the Linux kernel and adds appropriate comments.
Quoted 6 lines
This patch also might spare issues once the TWL GPIO driver will be converted to the DM.
Signed-off-by Igor Grinberg <[email protected]>Cc Pantelis Antoniou <[email protected]>Cc Dmitry Lifshitz <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/ab2e90f9/attachment.pgp>
PATCH 7/11 omap: hsmmc: assume cd gpio is active low
In reply to Igor GrinbergQuoted 16 lines · Igor Grinberg
Switch the default CD GPIO polarity to active low.
The current hsmmc driver assumption that the CD GPIO is active high, but in the real hardware, usually the opposite holds.
The usual SD card socket has a mechanical switch which is grounded as soon as a card is inserted.
Of course there might be some board logic which inverts the signal, but as far as current users are concerned, there is no such logic.Current U-Boot users either not using the CD functionality, or have a different way (e.g. external to SoC GPIO controller) for checking the card presence.
This patch also brings the polarity assumption in line with the Linux kernel and adds appropriate comments.
Quoted 7 lines
This patch also might spare issues once the TWL GPIO driver will be converted to the DM.
Signed-off-by Igor Grinberg <[email protected]>Cc Pantelis Antoniou <[email protected]>Cc Dmitry Lifshitz <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/eb3c0d24/attachment.pgp>
PATCH 8/11 omap3: cm-t3517: add basic board support
In reply to Igor GrinbergCompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.
Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.
--- arch/arm/cpu/armv7/omap3/Kconfig | 4 + board/compulab/cm_t3517/Kconfig | 12 ++ board/compulab/cm_t3517/MAINTAINERS | 6 + board/compulab/cm_t3517/Makefile | 9 ++ board/compulab/cm_t3517/cm_t3517.c | 60 ++++++++ board/compulab/cm_t3517/mux.c | 135 +++++++++++++++++ configs/cm_t3517_defconfig | 4 + include/configs/cm_t3517.h | 282 ++++++++++++++++++++++++++++++++++++ 8 files changed, 512 insertions(+) create mode 100644 board/compulab/cm_t3517/Kconfig create mode 100644 board/compulab/cm_t3517/MAINTAINERS create mode 100644 board/compulab/cm_t3517/Makefile create mode 100644 board/compulab/cm_t3517/cm_t3517.c create mode 100644 board/compulab/cm_t3517/mux.c create mode 100644 configs/cm_t3517_defconfig create mode 100644 include/configs/cm_t3517.h
arch/arm/cpu/armv7/omap3/Kconfig +4 -0
@@ -22,6 +22,9 @@ config TARGET_CM_T35 bool "CompuLab CM-T3530 and CM-T3730 boards" select SUPPORT_SPL +config TARGET_CM_T3517 + bool "CompuLab CM-T3517 boards" + config TARGET_DEVKIT8000 bool "TimLL OMAP3 Devkit8000" select SUPPORT_SPL
@@ -98,6 +101,7 @@ source "board/teejet/mt_ventoux/Kconfig" source "board/ti/sdp3430/Kconfig" source "board/ti/beagle/Kconfig" source "board/compulab/cm_t35/Kconfig" +source "board/compulab/cm_t3517/Kconfig" source "board/timll/devkit8000/Kconfig" source "board/ti/evm/Kconfig" source "board/isee/igep00x0/Kconfig"
board/compulab/cm_t3517/Kconfig new file +12 -0
@@ -0,0 +1,12 @@ +if TARGET_CM_T3517 + +config SYS_BOARD + default "cm_t3517" + +config SYS_VENDOR + default "compulab" + +config SYS_CONFIG_NAME + default "cm_t3517" + +endif
board/compulab/cm_t3517/MAINTAINERS new file +6 -0
@@ -0,0 +1,6 @@ +CM_T3517 BOARD +M: Igor Grinberg <[email protected]> +S: Maintained +F: board/compulab/cm_t3517/ +F: include/configs/cm_t3517.h +F: configs/cm_t3517_defconfig
board/compulab/cm_t3517/Makefile new file +9 -0
@@ -0,0 +1,9 @@ +# +# (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il> +# +# Authors: Igor Grinberg <[email protected]> +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += cm_t3517.o mux.o
board/compulab/cm_t3517/cm_t3517.c new file +60 -0
60 lines not on this page · raw message
board/compulab/cm_t3517/mux.c new file +135 -0
135 lines not on this page · raw message
configs/cm_t3517_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +CONFIG_SPL=n ++S:CONFIG_ARM=y ++S:CONFIG_OMAP34XX=y ++S:CONFIG_TARGET_CM_T3517=y
include/configs/cm_t3517.h new file +282 -0
282 lines not on this page · raw message
Signature · 1 line
2.0.4
PATCH 8/11 omap3: cm-t3517: add basic board support
Quoted 8 lines · Igor Grinberg
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.Signed-off-by Igor Grinberg <[email protected]>
[snip]
include/configs/cm_t3517.h line 54
Quoted 7 lines
include/configs/cm_t3517.h new file +7
-0+/* +* The early kernel mapping on ARM currently only maps from the base of DRAM +* to the end of the kernel image. The kernel is loaded at DRAM base + 0x8000. +* The early kernel pagetable uses DRAM base + 0x4000 to DRAM base + 0x8000, +* so that leaves DRAM base to DRAM base + 0x4000 available. +*/ +#define CONFIG_SYS_BOOTMAPSZ 0x4000
The big comment about layout at the top of include/configs/ti_armv7_common.h applies to omap3 too, are you sure you want to go in the direction instead? In fact, are you sure you can't / don't want to leverage that file?
include/configs/cm_t3517.h line 92
Quoted 2 lines
include/configs/cm_t3517.h new file +2
-0+#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ + 115200}
Use the default table?
include/configs/cm_t3517.h line 224
Quoted 4 lines
include/configs/cm_t3517.h new file +4
-0+#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0)/* memtest */ +/* works on */ +#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \ + 0x01F00000)/* 31MB */
Really want this on? See doc/README.memory-test
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/9a5ba3cd/attachment.pgp>
PATCH 8/11 omap3: cm-t3517: add basic board support
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Tom,
Quoted 11 lines · Tom Rini
Quoted 8 lines · Igor Grinberg
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.Signed-off-by Igor Grinberg <[email protected]>[snip]
Quoted 12 lines
include/configs/cm_t3517.h line 54
Quoted 7 lines
include/configs/cm_t3517.h new file +7
-0+/* +* The early kernel mapping on ARM currently only maps from the base of DRAM +* to the end of the kernel image. The kernel is loaded at DRAM base + 0x8000. +* The early kernel pagetable uses DRAM base + 0x4000 to DRAM base + 0x8000, +* so that leaves DRAM base to DRAM base + 0x4000 available. +*/ +#define CONFIG_SYS_BOOTMAPSZ 0x4000The big comment about layout at the top of
include/configs/ti_armv7_common.happlies to omap3 too, are you sure you want to go in the direction instead? In fact, are you sure you can't / don't want to leverage that file?
Well, the only concern about the using common configurations in general is the breakage it can introduce as changes to those files are never tested on all the boards that include them. Hopefully, this will be (at least partially) solved by defconfigs.
As same stands also for fixes, I think we can take the chances. Switching to use the common config file will require some additional checks like undef unneeded stuff and also check the binary size impact. I might be unable to do those soon enough for this patchset to be included in the release.
Quoted 5 lines
include/configs/cm_t3517.h line 92
Quoted 3 lines
include/configs/cm_t3517.h new file +2
-0+#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ + 115200}Use the default table?
Do you mean the one in ti_omap3_common.h?
Well, that is the same question as above (and also the same answer).
The question is can we proceed with only the below fixed and I will update the above and common config file inclusion later (also for cm-t35)?
Quoted 7 lines
include/configs/cm_t3517.h line 224
Quoted 5 lines
include/configs/cm_t3517.h new file +4
-0+#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0)/* memtest */ +/* works on */ +#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \ + 0x01F00000)/* 31MB */ Really want this on? See doc/README.memory-test
No, not really... Thanks for pointing to this.
I usually try to keep myself up to date, but recently, I have way to much stuff going on, so those small things are slipping through.
- --
Regards,
Igor.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBAgAGBQJUWhUjAAoJEBDE8YO64EfahvsP/iVwljxV3L9R3MXYnv9UrD0V iId1gURxQXATU9lSLIXM6RTfAGLCGFkemASxTWNNMy1LpvxXxBfvrRmIGpK1Z26f ydpOmp1yCiSoYLSXnFUqOHmiqdi/IA/URDPAWlzoXD6qfRIah1b/P2Ajdc+3rQS6 dmESDdyYj37aKIeeMtLbqhup9qG8Tm3YgF7S95K3dDAiVG9/HQtj7ccCVhh+ML2u u0TQ+YVfp8oPHQULw2IzXNwLQ7cZq7pTU5QmVx7YgDNNdi+ULH1Zjwv5zQtUx29c R9cdOpzTKrp94BzZIAkyzKuqKUmr4psaI3gfyFzCh8ow25knh7xXdRYmYpkzjWgS Sf04CGccv5iOC/kJWjuidj1QtmmBt7BhlD4/EfETzeQT/cnzHJL6suR2XL2mKcC2 YfPYnz2pLqAgDi14km34ZwWWtXn+rqAEf5Z49BqyngIeOytFcAGNptsFOMLOgRYr /MahOwEE/1aaEa/v5b5onStvakrXLkVoOhEvqtIdyCmRUG/ENKwFmNI8ECJTdoN3 mhzvaSQAlEiY7uWjyq57uu/2ltcbUYsvHZA03WS2RaQGhAYydfNbagg+wjuh3774 lfT+RAk0d+jN+zB9IUysQVPUaXckMOtylxxLs4m9sq75qVzM9B5dS041c13qvlqE D2t0+Z5Ipi4v04+2b588
=T9e1
-----END PGP SIGNATURE-----
PATCH 8/11 omap3: cm-t3517: add basic board support
Quoted 30 lines · Igor Grinberg
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1Hi Tom,
Quoted 11 lines · Tom Rini
Quoted 8 lines · Igor Grinberg
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.Signed-off-by Igor Grinberg <[email protected]>[snip]
Quoted 12 lines
include/configs/cm_t3517.h line 54
Quoted 7 lines
include/configs/cm_t3517.h new file +7
-0+/* +* The early kernel mapping on ARM currently only maps from the base of DRAM +* to the end of the kernel image. The kernel is loaded at DRAM base + 0x8000. +* The early kernel pagetable uses DRAM base + 0x4000 to DRAM base + 0x8000, +* so that leaves DRAM base to DRAM base + 0x4000 available. +*/ +#define CONFIG_SYS_BOOTMAPSZ 0x4000The big comment about layout at the top of
include/configs/ti_armv7_common.happlies to omap3 too, are you sure you want to go in the direction instead? In fact, are you sure you can't / don't want to leverage that file?
Quoted 9 lines
Well, the only concern about the using common configurations in general is the breakage it can introduce as changes to those files are never tested on all the boards that include them. Hopefully, this will be (at least partially) solved by defconfigs.
As same stands also for fixes, I think we can take the chances. Switching to use the common config file will require some additional checks like undef unneeded stuff and also check the binary size impact. I might be unable to do those soon enough for this patchset to be included in the release.
OK.
Quoted 7 lines
Quoted 4 lines
include/configs/cm_t3517.h line 92
Quoted 2 lines
include/configs/cm_t3517.h new file +2
-0+#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ + 115200}Use the default table?
Do you mean the one in
ti_omap3_common.h?
Well, that is the same question as above (and also the same answer).
Aaand now I have egg on my face, I was referring to include/config_fallbacks.h
Quoted 2 lines
The question is can we proceed with only the below fixed and I will update the above and common config file inclusion later (also for cm-t35)?
... maybe. I need to think about it I suppose.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/35b89647/attachment.pgp>
PATCH 8/11 omap3: cm-t3517: add basic board support
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 48 lines · Tom Rini
Quoted 30 lines · Igor Grinberg
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1Hi Tom,
Quoted 11 lines · Tom Rini
Quoted 8 lines · Igor Grinberg
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.Signed-off-by Igor Grinberg <[email protected]>[snip]
Quoted 12 lines
include/configs/cm_t3517.h line 54
Quoted 7 lines
include/configs/cm_t3517.h new file +7
-0+/* +* The early kernel mapping on ARM currently only maps from the base of DRAM +* to the end of the kernel image. The kernel is loaded at DRAM base + 0x8000. +* The early kernel pagetable uses DRAM base + 0x4000 to DRAM base + 0x8000, +* so that leaves DRAM base to DRAM base + 0x4000 available. +*/ +#define CONFIG_SYS_BOOTMAPSZ 0x4000The big comment about layout at the top of
include/configs/ti_armv7_common.happlies to omap3 too, are you sure you want to go in the direction instead? In fact, are you sure you can't / don't want to leverage that file?Quoted 9 lines
Well, the only concern about the using common configurations in general is the breakage it can introduce as changes to those files are never tested on all the boards that include them. Hopefully, this will be (at least partially) solved by defconfigs.
As same stands also for fixes, I think we can take the chances. Switching to use the common config file will require some additional checks like undef unneeded stuff and also check the binary size impact. I might be unable to do those soon enough for this patchset to be included in the release.OK.
Quoted 5 lines
Quoted 4 lines
include/configs/cm_t3517.h line 92
Quoted 2 lines
include/configs/cm_t3517.h new file +2
-0+#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ + 115200}Use the default table?
Quoted 5 lines
Quoted 2 lines
Do you mean the one in
ti_omap3_common.h?
Well, that is the same question as above (and also the same answer).Aaand now I have egg on my face, I was referring to
include/config_fallbacks.h
;-) evil me...
Quoted 5 lines
Quoted 3 lines
The question is can we proceed with only the below fixed and I will update the above and common config file inclusion later (also for cm-t35)?
... maybe. I need to think about it I suppose.
Well, I would be very glad if you decide to take this (of course if no other problems are spotted) and let me get back to this later, as now I need to prepare things for my o-o-o next week.
Thanks!
- --
Regards,
Igor.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBAgAGBQJUWh2vAAoJEBDE8YO64Efaw/MP/iW4Py226ZI6mF8hK/V9ih3z 5hi7c+PnGTY3hAXj5+9oiNT1UgWCXwzg0GPFupAB6tHjGDLs09Z6jZZUNKsTReXo M/ZLLatxS0YSh9Tvcz3I48wZluT6Iueeo4+uYPPshRJkHJXTM1/2hcOkCcc9Upnm 5wVgcv8TvhT0i9R9Dg9H98MNqqOLjgqMpm7mvYk7mJTzQIBJ5O9UXV7VFKmcohOz 1WFjZozfOssfHv2OAyuMD7qKJcvLpjOrcVXJPmvUUtox6lfKzUxWC5ihKlzhSweH Gtu82QsxfIFfCbcoGkrbcFE0eRJDUSLrkpZTeSBqRrzE5B3+5Z8hc9g145QJ+yin YLqXPR25nd1n5NudN7ZFhIgyRmOl9cDTZNPBElc/uO/kUC+L0/rccL/vYQpWuWNA 07VMdNNqNdCCtKcE6rXQ+6Rlk2+ztGwtyCp+gr8jpFC6JRcO9rzvtHm9y8Yd+yXE xoid+a0xkQeLDrbB3GzHtQ6G0VcJAEEUulyb9a0Mf8x2y195lI1S7QLVoVhRP/tr bSC7ku3TUvgumH2GBMll8tS1s4THyAhLf0XWR70iXGmqnet1hLlLBdkUPgZXH+Le aCvzDTc4vhokwpr+iLdEV1I8XQiXnPL/jBYqp0+trgMIugPVnwew3n36l7jb4UMK 1/Ou+E+Hc/Tfg0Z7W65y
=Ezqv
-----END PGP SIGNATURE-----
PATCH v2 8/11 omap3: cm-t3517: add basic board support
In reply to Tom RiniCompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.
Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.
---
v2: Remove unneeded CONFIG_SYS_MEMTEST_* defines
arch/arm/cpu/armv7/omap3/Kconfig | 4 + board/compulab/cm_t3517/Kconfig | 12 ++ board/compulab/cm_t3517/MAINTAINERS | 6 + board/compulab/cm_t3517/Makefile | 9 ++ board/compulab/cm_t3517/cm_t3517.c | 60 ++++++++ board/compulab/cm_t3517/mux.c | 135 ++++++++++++++++++ configs/cm_t3517_defconfig | 4 + include/configs/cm_t3517.h | 277 ++++++++++++++++++++++++++++++++++++ 8 files changed, 507 insertions(+) create mode 100644 board/compulab/cm_t3517/Kconfig create mode 100644 board/compulab/cm_t3517/MAINTAINERS create mode 100644 board/compulab/cm_t3517/Makefile create mode 100644 board/compulab/cm_t3517/cm_t3517.c create mode 100644 board/compulab/cm_t3517/mux.c create mode 100644 configs/cm_t3517_defconfig create mode 100644 include/configs/cm_t3517.h
arch/arm/cpu/armv7/omap3/Kconfig +4 -0
@@ -22,6 +22,9 @@ config TARGET_CM_T35 bool "CompuLab CM-T3530 and CM-T3730 boards" select SUPPORT_SPL +config TARGET_CM_T3517 + bool "CompuLab CM-T3517 boards" + config TARGET_DEVKIT8000 bool "TimLL OMAP3 Devkit8000" select SUPPORT_SPL
@@ -98,6 +101,7 @@ source "board/teejet/mt_ventoux/Kconfig" source "board/ti/sdp3430/Kconfig" source "board/ti/beagle/Kconfig" source "board/compulab/cm_t35/Kconfig" +source "board/compulab/cm_t3517/Kconfig" source "board/timll/devkit8000/Kconfig" source "board/ti/evm/Kconfig" source "board/isee/igep00x0/Kconfig"
board/compulab/cm_t3517/Kconfig new file +12 -0
@@ -0,0 +1,12 @@ +if TARGET_CM_T3517 + +config SYS_BOARD + default "cm_t3517" + +config SYS_VENDOR + default "compulab" + +config SYS_CONFIG_NAME + default "cm_t3517" + +endif
board/compulab/cm_t3517/MAINTAINERS new file +6 -0
@@ -0,0 +1,6 @@ +CM_T3517 BOARD +M: Igor Grinberg <[email protected]> +S: Maintained +F: board/compulab/cm_t3517/ +F: include/configs/cm_t3517.h +F: configs/cm_t3517_defconfig
board/compulab/cm_t3517/Makefile new file +9 -0
@@ -0,0 +1,9 @@ +# +# (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il> +# +# Authors: Igor Grinberg <[email protected]> +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += cm_t3517.o mux.o
board/compulab/cm_t3517/cm_t3517.c new file +60 -0
60 lines not on this page · raw message
board/compulab/cm_t3517/mux.c new file +135 -0
135 lines not on this page · raw message
configs/cm_t3517_defconfig new file +4 -0
@@ -0,0 +1,4 @@ +CONFIG_SPL=n ++S:CONFIG_ARM=y ++S:CONFIG_OMAP34XX=y ++S:CONFIG_TARGET_CM_T3517=y
include/configs/cm_t3517.h new file +277 -0
277 lines not on this page · raw message
Signature · 1 line
2.0.4
PATCH v2 8/11 omap3: cm-t3517: add basic board support
Quoted 8 lines · Igor Grinberg
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC.
Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED.Add basic support including:
LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM.Signed-off-by Igor Grinberg <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/fd7d762a/attachment.pgp>
PATCH 9/11 omap3: cm-t3517: add USB support
In reply to Igor GrinbergAdd both host and mUSB support.
Currently, the selection between host USB and mUSB is done through the config file.
--- board/compulab/cm_t3517/cm_t3517.c | 82 ++++++++++++++++++++++++++++++++++++++ board/compulab/cm_t3517/mux.c | 38 ++++++++++++++++++ include/configs/cm_t3517.h | 17 ++++++++ 3 files changed, 137 insertions(+)
board/compulab/cm_t3517/cm_t3517.c +82 -0
@@ -8,14 +8,19 @@#include <common.h> #include <status_led.h> +#include <usb.h> #include <mmc.h> #include <linux/compiler.h> +#include <linux/usb/musb.h> #include <asm/io.h> #include <asm/arch/mem.h> #include <asm/arch/am35x_def.h> #include <asm/arch/mmc_host_def.h> #include <asm/arch/sys_proto.h> +#include <asm/arch/musb.h> +#include <asm/omap_musb.h> +#include <asm/ehci-omap.h> #include "../common/common.h"
@@ -27,6 +32,53 @@ const omap3_sysinfo sysinfo = { "NAND 128/512M", }; +#ifdef CONFIG_USB_MUSB_AM35X +static struct musb_hdrc_config cm_t3517_musb_config = { + .multipoint =1 , + .dyn_fifo =1 , + .num_eps =16 , + .ram_bits =12 , +}; + +static struct omap_musb_board_data cm_t3517_musb_board_data = { + .set_phy_power = am35x_musb_phy_power, + .clear_irq = am35x_musb_clear_irq, + .reset = am35x_musb_reset, +}; + +static struct musb_hdrc_platform_data cm_t3517_musb_pdata = { +#if defined(CONFIG_MUSB_HOST ) + .mode = MUSB_HOST, +#elif defined(CONFIG_MUSB_GADGET ) + .mode = MUSB_PERIPHERAL, +#else +#error "Please define either CONFIG_MUSB_HOST or CONFIG_MUSB_GADGET" +#endif + .config = &cm_t3517_musb_config, + .power = 250, + .platform_ops = &am35x_ops, + .board_data = &cm_t3517_musb_board_data, +}; + +static void cm_t3517_musb_init (void ) +{ +/* +* Set up USB clock/mode in the DEVCONF2 register. +* USB2.0 PHY reference clock is 13 MHz +*/ +clrsetbits_le32 (&am35x_scm_general_regs->devconf2, +CONF2_REFFREQ |CONF2_OTGMODE |CONF2_PHY_GPIOMODE , +CONF2_REFFREQ_13MHZ |CONF2_SESENDEN | +CONF2_VBDTCTEN |CONF2_DATPOL ); + +if (musb_register (&cm_t3517_musb_pdata, &cm_t3517_musb_board_data, + (void *)AM35XX_IPSS_USBOTGSS_BASE )) +printf ("Failed initializing AM35x MUSB!\n" ); +} +#else +static inline void am3517_evm_musb_init (void ) {} +#endif +int board_init (void ) {gpmc_init ();/* in SRAM or SDRAM, finish GPMC */
@@ -38,6 +90,8 @@ int board_init(void)status_led_set (STATUS_LED_BOOT ,STATUS_LED_ON );#endif +cm_t3517_musb_init (); +return 0 ; }
@@ -58,3 +112,31 @@ int board_mmc_init(bd_t *bis) return omap_mmc_init(0, 0, 0, SB_T35_CD_GPIO, SB_T35_WP_GPIO); }#endif + +#ifdef CONFIG_USB_EHCI_OMAP +static struct omap_usbhs_board_data cm_t3517_usbhs_bdata = { + .port_mode[0 ] =OMAP_EHCI_PORT_MODE_PHY , + .port_mode[1 ] =OMAP_EHCI_PORT_MODE_PHY , + .port_mode[2 ] =OMAP_USBHS_PORT_MODE_UNUSED , +}; + +#define CM_T3517_USB_HUB_RESET_GPIO 152 +#define SB_T35_USB_HUB_RESET_GPIO 98 + +int ehci_hcd_init (int index,enum usb_init_type init, +struct ehci_hccr **hccr,struct ehci_hcor **hcor) +{ +cl_usb_hub_init (CM_T3517_USB_HUB_RESET_GPIO ,"cm-t3517 hub rst" ); +cl_usb_hub_init (SB_T35_USB_HUB_RESET_GPIO ,"sb-t35 hub rst" ); + +return omap_ehci_hcd_init (index, &cm_t3517_usbhs_bdata, hccr, hcor); +} + +int ehci_hcd_stop (void ) +{ +cl_usb_hub_deinit (CM_T3517_USB_HUB_RESET_GPIO ); +cl_usb_hub_deinit (SB_T35_USB_HUB_RESET_GPIO ); + +return omap_ehci_hcd_stop (); +} +#endif /* CONFIG_USB_EHCI_OMAP */
board/compulab/cm_t3517/mux.c +38 -0
@@ -104,6 +104,10 @@ void set_muxconf_regs(void)MUX_VAL (CP (UART2_CTS ), (IEN |PTU |EN |M4 ));/*GPIO_144*/ /* WIFI nRESET GPIO145 */ MUX_VAL (CP (UART2_RTS ), (IEN |PTD |EN |M4 ));/*GPIO_145*/ +/* USB1 PHY Reset GPIO 146 */ +MUX_VAL (CP (UART2_TX ), (IEN |PTD |EN |M4 ));/*GPIO_146*/ +/* USB2 PHY Reset GPIO 147 */ +MUX_VAL (CP (UART2_RX ), (IEN |PTD |EN |M4 ));/*GPIO_147*/ /* MMC1 */ MUX_VAL (CP (MMC1_CLK ), (IDIS |PTU |EN |M0 ));
@@ -119,12 +123,46 @@ void set_muxconf_regs(void)MUX_VAL (CP (I2C3_SCL ), (IEN |PTU |EN |M0 ));MUX_VAL (CP (I2C3_SDA ), (IEN |PTU |EN |M0 )); +/* SB-T35 USB HUB Reset GPIO98 */ +MUX_VAL (CP (CCDC_WEN ), (IDIS |PTU |EN |M4 ));/*GPIO_98*/ +/* CM-T3517 USB HUB Reset GPIO152 */ +MUX_VAL (CP (MCBSP4_CLKX ), (IDIS |PTD |DIS |M4 ));/*GPIO_152*/ +/* Green LED GPIO186 */ MUX_VAL (CP (SYS_CLKOUT2 ), (IDIS |PTU |DIS |M4 ));/*GPIO_186*/ /* RTC V3020 CS Enable GPIO160 */ MUX_VAL (CP (MCBSP_CLKS ), (IEN |PTD |EN |M4 ));/*GPIO_160*/ +/* USB0 - mUSB */ +MUX_VAL (CP (USB0_DRVBUS ), (IEN |PTD |EN |M0 )); +/* USB1 EHCI */ +MUX_VAL (CP (ETK_D0_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT0*/ +MUX_VAL (CP (ETK_D1_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT1*/ +MUX_VAL (CP (ETK_D2_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT2*/ +MUX_VAL (CP (ETK_D7_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT3*/ +MUX_VAL (CP (ETK_D4_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT4*/ +MUX_VAL (CP (ETK_D5_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT5*/ +MUX_VAL (CP (ETK_D6_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT6*/ +MUX_VAL (CP (ETK_D3_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DT7*/ +MUX_VAL (CP (ETK_D8_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_DIR*/ +MUX_VAL (CP (ETK_D9_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB1_NXT*/ +MUX_VAL (CP (ETK_CTL_ES2 ), (IDIS |PTD |DIS |M3 ));/*HSUSB1_CLK*/ +MUX_VAL (CP (ETK_CLK_ES2 ), (IDIS |PTU |DIS |M3 ));/*HSUSB1_STP*/ +/* USB2 EHCI */ +MUX_VAL (CP (ETK_D14_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT0*/ +MUX_VAL (CP (ETK_D15_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT1*/ +MUX_VAL (CP (MCSPI1_CS3 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT2*/ +MUX_VAL (CP (MCSPI2_CS1 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT3*/ +MUX_VAL (CP (MCSPI2_SIMO ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT4*/ +MUX_VAL (CP (MCSPI2_SOMI ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT5*/ +MUX_VAL (CP (MCSPI2_CS0 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT6*/ +MUX_VAL (CP (MCSPI2_CLK ), (IEN |PTD |EN |M3 ));/*HSUSB2_DT7*/ +MUX_VAL (CP (ETK_D12_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB2_DIR*/ +MUX_VAL (CP (ETK_D13_ES2 ), (IEN |PTD |EN |M3 ));/*HSUSB2_NXT*/ +MUX_VAL (CP (ETK_D10_ES2 ), (IDIS |PTD |DIS |M3 ));/*HSUSB2_CLK*/ +MUX_VAL (CP (ETK_D11_ES2 ), (IDIS |PTU |DIS |M3 ));/*HSUSB2_STP*/ +/* SYS_BOOT */ MUX_VAL (CP (SYS_BOOT0 ), (IEN |PTU |DIS |M4 ));/*GPIO_2*/ MUX_VAL (CP (SYS_BOOT1 ), (IEN |PTU |DIS |M4 ));/*GPIO_3*/
include/configs/cm_t3517.h +17 -0
@@ -98,6 +98,23 @@#define CONFIG_OMAP_HSMMC #define CONFIG_DOS_PARTITION +/* USB */ +#define CONFIG_USB_MUSB_AM35X + +#ifndef CONFIG_USB_MUSB_AM35X +#define CONFIG_USB_OMAP3 +#define CONFIG_USB_EHCI +#define CONFIG_USB_EHCI_OMAP +#define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO 146 +#define CONFIG_OMAP_EHCI_PHY2_RESET_GPIO 147 +#else /* !CONFIG_USB_MUSB_AM35X */ +#define CONFIG_MUSB_HOST +#define CONFIG_MUSB_PIO_ONLY +#endif /* CONFIG_USB_MUSB_AM35X */ + +#define CONFIG_USB_STORAGE +#define CONFIG_CMD_USB +/* commands to include */ #include <config_cmd_default.h>
Signature · 1 line
2.0.4
PATCH 9/11 omap3: cm-t3517: add USB support
Quoted 5 lines · Igor Grinberg
Add both host and mUSB support.
Currently, the selection between host USB and mUSB is done through the config file.Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/1688ce2c/attachment.pgp>
PATCH 9/11 omap3: cm-t3517: add USB support
In reply to Igor GrinbergQuoted 6 lines · Igor Grinberg
Add both host and mUSB support.
Currently, the selection between host USB and mUSB is done through the config file.Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/0aff411d/attachment.pgp>
PATCH 10/11 omap3: cm-t3517: add Ethernet support
In reply to Igor GrinbergAdd both EMAC and SMC911x support.
--- board/compulab/cm_t3517/cm_t3517.c | 89 ++++++++++++++++++++++++++++++++++++++ board/compulab/cm_t3517/mux.c | 19 ++++++++ include/configs/cm_t3517.h | 11 +++++ 3 files changed, 119 insertions(+)
board/compulab/cm_t3517/cm_t3517.c +89 -0
@@ -8,6 +8,8 @@#include <common.h> #include <status_led.h> +#include <net.h> +#include <netdev.h> #include <usb.h> #include <mmc.h> #include <linux/compiler.h>
@@ -23,6 +25,7 @@#include <asm/ehci-omap.h> #include "../common/common.h" +#include "../common/eeprom.h" DECLARE_GLOBAL_DATA_PTR ;
@@ -113,6 +116,92 @@ int board_mmc_init(bd_t *bis) }#endif +#ifdef CONFIG_DRIVER_TI_EMAC +#define CONTROL_EFUSE_EMAC_LSB 0x48002380 +#define CONTROL_EFUSE_EMAC_MSB 0x48002384 + +static int am3517_get_efuse_enetaddr (u8 *enetaddr) +{ +u32 lsb =__raw_readl (CONTROL_EFUSE_EMAC_LSB ); +u32 msb =__raw_readl (CONTROL_EFUSE_EMAC_MSB ); + + enetaddr[0 ] = (u8)((msb >>16 ) &0xff ); + enetaddr[1 ] = (u8)((msb >>8 ) &0xff ); + enetaddr[2 ] = (u8)(msb &0xff ); + enetaddr[3 ] = (u8)((lsb >>16 ) &0xff ); + enetaddr[4 ] = (u8)((lsb >>8 ) &0xff ); + enetaddr[5 ] = (u8)(lsb &0xff ); + +return is_valid_ether_addr (enetaddr); +} + +static inline int cm_t3517_init_emac (bd_t *bis) +{ +int ret =cpu_eth_init (bis); + +if (ret >0 ) +return ret; + +printf ("Failed initializing EMAC! " ); +return 0 ; +} +#else /* !CONFIG_DRIVER_TI_EMAC */ +static inline int am3517_get_efuse_enetaddr (u8 *enetaddr) {return 1 ; } +static inline int cm_t3517_init_emac (bd_t *bis) {return 0 ; } +#endif /* CONFIG_DRIVER_TI_EMAC */ + +/* +* Routine: handle_mac_address +* Description: prepare MAC address for on-board Ethernet. +*/ +static int cm_t3517_handle_mac_address (void ) +{ +unsigned char enetaddr[6 ]; +int ret; + + ret =eth_getenv_enetaddr ("ethaddr" , enetaddr); +if (ret) +return 0 ; + + ret =cl_eeprom_read_mac_addr (enetaddr); +if (ret) { + ret =am3517_get_efuse_enetaddr (enetaddr); +if (ret) +return ret; + } + +if (!is_valid_ether_addr (enetaddr)) +return -1 ; + +return eth_setenv_enetaddr ("ethaddr" , enetaddr); +} + +#define SB_T35_ETH_RST_GPIO 164 + +/* +* Routine: board_eth_init +* Description: initialize module and base-board Ethernet chips +*/ +int board_eth_init (bd_t *bis) +{ +int rc =0 , rc1 =0 ; + + rc1 =cm_t3517_handle_mac_address (); +if (rc1) +printf ("No MAC address found! " ); + + rc1 =cm_t3517_init_emac (bis); +if (rc1 >0 ) + rc++; + + rc1 =cl_omap3_smc911x_init (0 ,4 ,CONFIG_SMC911X_BASE , +NULL ,SB_T35_ETH_RST_GPIO ); +if (rc1 >0 ) + rc++; + +return rc; +} +#ifdef CONFIG_USB_EHCI_OMAP static struct omap_usbhs_board_data cm_t3517_usbhs_bdata = { .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
board/compulab/cm_t3517/mux.c +19 -0
@@ -83,6 +83,9 @@ void set_muxconf_regs(void)MUX_VAL (CP (GPMC_D15 ), (IEN |PTU |EN |M0 ));MUX_VAL (CP (GPMC_NCS0 ), (IDIS |PTU |EN |M0 )); +/* SB-T35 Ethernet */ +MUX_VAL (CP (GPMC_NCS4 ), (IEN |PTU |EN |M0 )); +/* SB-T35 SD/MMC WP GPIO59 */ MUX_VAL (CP (GPMC_CLK ), (IEN |PTU |EN |M4 ));/*GPIO_59*/ MUX_VAL (CP (GPMC_NWE ), (IDIS |PTD |DIS |M0 ));
@@ -93,12 +96,16 @@ void set_muxconf_regs(void)MUX_VAL (CP (GPMC_NBE1 ), (IDIS |PTU |EN |M4 ));/*GPIO_61*/ MUX_VAL (CP (GPMC_NWP ), (IEN |PTD |DIS |M0 ));MUX_VAL (CP (GPMC_WAIT0 ), (IEN |PTU |EN |M0 )); +/* SB-T35 Ethernet IRQ GPIO65 */ +MUX_VAL (CP (GPMC_WAIT3 ), (IEN |PTU |EN |M4 ));/*GPIO_65*/ /* UART3 Console */ MUX_VAL (CP (UART3_RX_IRRX ), (IEN |PTD |DIS |M0 ));MUX_VAL (CP (UART3_TX_IRTX ), (IDIS |PTD |DIS |M0 ));/* RTC V3020 nCS GPIO163 */ MUX_VAL (CP (UART3_CTS_RCTX ), (IEN |PTU |EN |M4 ));/*GPIO_163*/ +/* SB-T35 Ethernet nRESET GPIO164 */ +MUX_VAL (CP (UART3_RTS_SD ), (IDIS |PTU |EN |M4 ));/*GPIO_164*/ /* SB-T35 SD/MMC CD GPIO144 */ MUX_VAL (CP (UART2_CTS ), (IEN |PTU |EN |M4 ));/*GPIO_144*/
@@ -128,6 +135,18 @@ void set_muxconf_regs(void)/* CM-T3517 USB HUB Reset GPIO152 */ MUX_VAL (CP (MCBSP4_CLKX ), (IDIS |PTD |DIS |M4 ));/*GPIO_152*/ +/* RMII */ +MUX_VAL (CP (RMII_MDIO_DATA ), (IEN |PTU |EN |M0 )); +MUX_VAL (CP (RMII_MDIO_CLK ), (M0 )); +MUX_VAL (CP (RMII_RXD0 ), (IEN |PTD |DIS |M0 )); +MUX_VAL (CP (RMII_RXD1 ), (IEN |PTD |DIS |M0 )); +MUX_VAL (CP (RMII_CRS_DV ), (IEN |PTD |DIS |M0 )); +MUX_VAL (CP (RMII_RXER ), (IEN |PTD |DIS |M0 )); +MUX_VAL (CP (RMII_TXD0 ), (IDIS |M0 )); +MUX_VAL (CP (RMII_TXD1 ), (IDIS |M0 )); +MUX_VAL (CP (RMII_TXEN ), (IDIS |M0 )); +MUX_VAL (CP (RMII_50MHZ_CLK ), (IEN |PTU |DIS |M0 )); +/* Green LED GPIO186 */ MUX_VAL (CP (SYS_CLKOUT2 ), (IDIS |PTU |DIS |M4 ));/*GPIO_186*/
include/configs/cm_t3517.h +11 -0
@@ -132,6 +132,8 @@#define CONFIG_CMD_I2C /* I2C serial bus support */ #define CONFIG_CMD_MMC /* MMC support */ #define CONFIG_CMD_NAND /* NAND support */ +#define CONFIG_CMD_DHCP +#define CONFIG_CMD_PING #define CONFIG_CMD_GPIO #undef CONFIG_CMD_FLASH/* flinfo, erase, protect */
@@ -272,6 +274,15 @@#define CONFIG_ENV_OFFSET SMNAND_ENV_OFFSET#define CONFIG_ENV_ADDR SMNAND_ENV_OFFSET +#if defined(CONFIG_CMD_NET ) +#define CONFIG_DRIVER_TI_EMAC +#define CONFIG_DRIVER_TI_EMAC_USE_RMII +#define CONFIG_MII +#define CONFIG_SMC911X +#define CONFIG_SMC911X_32_BIT +#define CONFIG_SMC911X_BASE (0x2C000000 + (16 << 20)) +#endif /* CONFIG_CMD_NET */ +/* additions for new relocation code, must be added to all boards */ #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1#define CONFIG_SYS_INIT_RAM_ADDR 0x4020f800
Signature · 1 line
2.0.4
PATCH 10/11 omap3: cm-t3517: add Ethernet support
Quoted 3 lines · Igor Grinberg
Add both EMAC and SMC911x support.
Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/7cf2dbdb/attachment.pgp>
PATCH 10/11 omap3: cm-t3517: add Ethernet support
In reply to Igor GrinbergQuoted 4 lines · Igor Grinberg
Add both EMAC and SMC911x support.
Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/dd5d2713/attachment.pgp>
PATCH 11/11 omap3: cm-t3517: add LCD/DVI and splash support
In reply to Igor GrinbergAdd support for splash screen on both DVI and SCF0403 LCD.
--- board/compulab/cm_t3517/mux.c | 44 +++++++++++++++++++++++++++++++++++++++++++ include/configs/cm_t3517.h | 15 +++++++++++++++ 2 files changed, 59 insertions(+)
board/compulab/cm_t3517/mux.c +44 -0
@@ -85,6 +85,10 @@ void set_muxconf_regs(void)/* SB-T35 Ethernet */ MUX_VAL (CP (GPMC_NCS4 ), (IEN |PTU |EN |M0 )); +/* DVI enable */ +MUX_VAL (CP (GPMC_NCS3 ), (IDIS |PTU |DIS |M4 ));/*GPIO_54*/ +/* DataImage backlight */ +MUX_VAL (CP (GPMC_NCS7 ), (IDIS |PTU |DIS |M4 ));/*GPIO_58*/ /* SB-T35 SD/MMC WP GPIO59 */ MUX_VAL (CP (GPMC_CLK ), (IEN |PTU |EN |M4 ));/*GPIO_59*/
@@ -124,6 +128,36 @@ void set_muxconf_regs(void)MUX_VAL (CP (MMC1_DAT2 ), (IEN |PTU |EN |M0 ));MUX_VAL (CP (MMC1_DAT3 ), (IEN |PTU |EN |M0 )); +/* DSS */ +MUX_VAL (CP (DSS_PCLK ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_HSYNC ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_VSYNC ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_ACBIAS ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA0 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA1 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA2 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA3 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA4 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA5 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA6 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA7 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA8 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA9 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA10 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA11 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA12 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA13 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA14 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA15 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA16 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA17 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA18 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA19 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA20 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA21 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA22 ), (IDIS |PTD |DIS |M0 )); +MUX_VAL (CP (DSS_DATA23 ), (IDIS |PTD |DIS |M0 )); +/* I2C */ MUX_VAL (CP (I2C1_SCL ), (IEN |PTU |EN |M0 ));MUX_VAL (CP (I2C1_SDA ), (IEN |PTU |EN |M0 ));
@@ -150,8 +184,18 @@ void set_muxconf_regs(void)/* Green LED GPIO186 */ MUX_VAL (CP (SYS_CLKOUT2 ), (IDIS |PTU |DIS |M4 ));/*GPIO_186*/ +/* SPI */ +MUX_VAL (CP (MCBSP1_CLKR ), (IEN |PTD |DIS |M1 ));/*MCSPI4_CLK*/ +MUX_VAL (CP (MCBSP1_DX ), (IEN |PTD |DIS |M1 ));/*MCSPI4_SIMO*/ +MUX_VAL (CP (MCBSP1_DR ), (IEN |PTD |DIS |M1 ));/*MCSPI4_SOMI*/ +MUX_VAL (CP (MCBSP1_FSX ), (IEN |PTU |EN |M1 ));/*MCSPI4_CS0*/ +/* LCD reset GPIO157 */ +MUX_VAL (CP (MCBSP1_FSR ), (IDIS |PTU |DIS |M4 ));/*GPIO_157*/ +/* RTC V3020 CS Enable GPIO160 */ MUX_VAL (CP (MCBSP_CLKS ), (IEN |PTD |EN |M4 ));/*GPIO_160*/ +/* SB-T35 LVDS Transmitter SHDN GPIO162 */ +MUX_VAL (CP (MCBSP1_CLKX ), (IEN |PTU |DIS |M4 ));/*GPIO_162*/ /* USB0 - mUSB */ MUX_VAL (CP (USB0_DRVBUS ), (IEN |PTD |EN |M0 ));
include/configs/cm_t3517.h +15 -0
@@ -307,4 +307,19 @@#define CONFIG_OMAP3_GPIO_6 /* GPIO186 is in GPIO bank 6 */ #endif +/* Display Configuration */ +#define CONFIG_OMAP3_GPIO_2 +#define CONFIG_OMAP3_GPIO_5 +#define CONFIG_VIDEO_OMAP3 +#define LCD_BPP LCD_COLOR16 + +#define CONFIG_LCD +#define CONFIG_SPLASH_SCREEN +#define CONFIG_SPLASHIMAGE_GUARD +#define CONFIG_CMD_BMP +#define CONFIG_BMP_16BPP +#define CONFIG_SCF0403_LCD + +#define CONFIG_OMAP3_SPI +#endif /* __CONFIG_H */
Signature · 1 line
2.0.4
PATCH 11/11 omap3: cm-t3517: add LCD/DVI and splash support
Quoted 3 lines · Igor Grinberg
Add support for splash screen on both DVI and SCF0403 LCD.
Signed-off-by Igor Grinberg <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141104/48ab961b/attachment.pgp>
PATCH 11/11 omap3: cm-t3517: add LCD/DVI and splash support
In reply to Igor GrinbergQuoted 4 lines · Igor Grinberg
Add support for splash screen on both DVI and SCF0403 LCD.
Signed-off-by Igor Grinberg <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot-ti/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141105/ce5c2f23/attachment.pgp>