Skip to contentSkip to conversation

Add support for TI OMAP4 SDP and Panda

PATCH Superseded Steve Sakoman 6 participants 23 messages Jun 15, 2010 – Jun 17, 2010

Subsystems (5)

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

cover Add support for TI OMAP4 SDP and Panda

Note: I am taking over patch submission for OMAP4 from Aneesh.

Since I have restructured the patches significantly it is not quite accurate to call this version 2. I have, however, taken into account all of the feedback that was given on Aneesh's original patch set.

The folowing series adds support for two boards based upon the TI OMAP4430. The OMAP4430 is a Cortex-A9 based SOC from TI.

The first patch in this series renames the cpu arm_cortexa8 to armv7 so that the existing cortex A8 code can be shared with cortex A9. Both A8 and A9 are based on ARMV7 architecture.

The 2nd patch adds basic OMAP4 architecture support.

The 3rd and 4th patches add minimal board support for the Panda and SDP.

The 5th patch restructures the OMAP mmc driver code so that it can be shared by both OMAP3 and OMAP4 boards. This patch depends on a previously submitted patch (OMAP: mmc: add support for second and third mmc channel):

http://www.mail-archive.com/u-boot at lists.denx.de/msg31765.html

The 6th and 7th patches add mmc support for Panda and SDP.

The 8th patch restructures the OMAP i2c code so that it can be shared by both OMAP3 and OMAP4 boards.

And, finally, the 9th and 10th patches add i2c support for Panda and SDP.

---

Steve Sakoman (10):
ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
ARMV7: Add basic support for TI OMAP4
ARMV7: Add support for TI OMAP4430 SDP
ARMV7: Add support for TI OMAP4 Panda
ARMV7: Restructure OMAP mmc driver to allow code sharing between
OMAP3 and OMAP4
ARMV7: Enable mmc support on TI OMAP4430 SDP
ARMV7: Enable mmc support on TI OMAP4 Panda
ARMV7: Restructure OMAP i2c driver to allow code sharing between
OMAP3 and OMAP4
ARMV7: Enable i2c support on TI OMAP4 SDP
ARMV7: Enable i2c support on TI OMAP4 Panda

 MAINTAINERS                                        |   20 +-
 MAKEALL                                            |   10 +-
 Makefile                                           |   35 ++-
 arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile      |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk     |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c         |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c  |    0
 .../{arm_cortexa8 => armv7}/mx51/lowlevel_init.S   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds    |    2 +-
 .../mx51 => armv7/omap-common}/Makefile            |   10 +-
 .../{arm_cortexa8 => armv7/omap-common}/config.mk  |    0
 .../omap3 => armv7/omap-common}/reset.S            |    0
 .../omap3 => armv7/omap-common}/timer.c            |    5 +
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile |    2 -
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c  |    0
 .../{arm_cortexa8 => armv7}/omap3/lowlevel_init.S  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c   |    0
 .../cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c   |    0
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c |    0
 .../{arm_cortexa8/omap3 => armv7/omap4}/Makefile   |   11 +-
 arch/arm/cpu/armv7/omap4/board.c                   |   91 ++++++++
 .../mx51/speed.c => armv7/omap4/lowlevel_init.S}   |   39 ++--
 .../mx51/speed.c => armv7/omap4/sys_info.c}        |   45 +++--
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile   |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S    |    2 +-
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/start.S       |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds    |    2 +-
 arch/arm/include/asm/arch-mx51/asm-offsets.h       |    2 +-
 arch/arm/include/asm/arch-omap4/cpu.h              |   94 +++++++++
 arch/arm/include/asm/arch-omap4/i2c.h              |  215 +++++++++++++++++++
 arch/arm/include/asm/arch-omap4/mmc_host_def.h     |  171 +++++++++++++++
 arch/arm/include/asm/arch-omap4/omap4.h            |  118 +++++++++++
 .../speed.c => include/asm/arch-omap4/sys_proto.h} |   34 ++--
 board/logicpd/zoom2/zoom2.c                        |    2 +-
 .../cpu/arm_cortexa8 => board/ti/panda}/Makefile   |   24 ++-
 .../cpu/arm_cortexa8 => board/ti/panda}/config.mk  |   25 +--
 .../u-boot.lds => board/ti/panda/panda.c           |   65 +++---
 .../cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile |   24 ++-
 .../arm_cortexa8 => board/ti/sdp4430}/config.mk    |   25 +--
 .../u-boot.lds => board/ti/sdp4430/sdp.c           |   66 +++---
 drivers/i2c/omap24xx_i2c.c                         |   15 +-
 drivers/mmc/omap3_mmc.c                            |   13 +-
 .../arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h    |    2 +-
 include/configs/devkit8000.h                       |    2 +-
 include/configs/omap3_beagle.h                     |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_overo.h                      |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/omap3_zoom2.h                      |    2 +-
 include/configs/omap4_panda.h                      |  220 +++++++++++++++++++
 include/configs/omap4_sdp4430.h                    |  221 ++++++++++++++++++++
 include/configs/smdkc100.h                         |    2 +-
 67 files changed, 1406 insertions(+), 222 deletions(-)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds (97%)
 rename arch/arm/cpu/{arm_cortexa8/mx51 => armv7/omap-common}/Makefile (87%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7/omap-common}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/timer.c (96%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile (97%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap4}/Makefile (88%)
 create mode 100644 arch/arm/cpu/armv7/omap4/board.c
 copy arch/arm/cpu/{arm_cortexa8/mx51/speed.c => armv7/omap4/lowlevel_init.S} (66%)
 copy arch/arm/cpu/{arm_cortexa8/mx51/speed.c => armv7/omap4/sys_info.c} (57%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S (98%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/start.S (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds (97%)
 create mode 100644 arch/arm/include/asm/arch-omap4/cpu.h
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
 create mode 100644 arch/arm/include/asm/arch-omap4/mmc_host_def.h
 create mode 100644 arch/arm/include/asm/arch-omap4/omap4.h
 rename arch/arm/{cpu/arm_cortexa8/mx51/speed.c => include/asm/arch-omap4/sys_proto.h} (60%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/Makefile (79%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/config.mk (54%)
 copy arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/panda/panda.c (53%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile (79%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/config.mk (54%)
 rename arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/sdp4430/sdp.c (52%)
 rename arch/arm/include/asm/arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h (99%)
 create mode 100644 include/configs/omap4_panda.h
 create mode 100644 include/configs/omap4_sdp4430.h
#1 lore raw

PATCH 1/10 ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7

The purpose of this patch is to prepare for adding the OMAP4 architecture, which is Cortex A9

Cortex A8 and A9 both belong to the armv7 architecture, hence the name change.

The two architectures are similar enough that substantial code can be shared.

---
 MAINTAINERS                                        |   18 ++++++++--------
 MAKEALL                                            |    8 +++---
 Makefile                                           |   22 ++++++++++----------
 arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile      |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk     |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c         |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c  |    0
 .../{arm_cortexa8 => armv7}/mx51/lowlevel_init.S   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds    |    2 +-
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c  |    0
 .../{arm_cortexa8 => armv7}/omap3/lowlevel_init.S  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/reset.S |    0
 .../cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c   |    0
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/timer.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile   |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S    |    2 +-
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/start.S       |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds    |    2 +-
 arch/arm/include/asm/arch-mx51/asm-offsets.h       |    2 +-
 board/logicpd/zoom2/zoom2.c                        |    2 +-
 include/configs/devkit8000.h                       |    2 +-
 include/configs/omap3_beagle.h                     |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_overo.h                      |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/omap3_zoom2.h                      |    2 +-
 include/configs/smdkc100.h                         |    2 +-
 45 files changed, 38 insertions(+), 38 deletions(-)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds (97%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S (98%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/start.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds (97%)
MAINTAINERS +9 -9
index 7a13d28..b9c6af2 100644
@@ -536,7 +536,7 @@ Stefano Babic <[email protected]>
 
 Dirk Behme <[email protected]>
 
-	omap3_beagle	ARM CORTEX-A8 (OMAP3530 SoC)
+	omap3_beagle	ARM ARMV7 (OMAP3530 SoC)
 
 Eric Benard <[email protected]>
 
@@ -602,7 +602,7 @@ Kshitij Gupta <[email protected]>
 
 Grazvydas Ignotas <[email protected]>
 
-	omap3_pandora	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_pandora	ARM ARMV7 (OMAP3xx SoC)
 
 Gary Jennejohn <[email protected]>
 
@@ -628,7 +628,7 @@ Simon Kagstrom <[email protected]>
 
 Minkyu Kang <[email protected]>
 
-	SMDKC100	ARM CORTEX-A8 (S5PC100 SoC)
+	SMDKC100	ARM ARMV7 (S5PC100 SoC)
 
 Nishant Kamat <[email protected]>
 
@@ -636,7 +636,7 @@ Nishant Kamat <[email protected]>
 
 Frederik Kriewitz <[email protected]>
 
-	devkit8000	ARM CORTEX-A8 (OMAP3530 SoC)
+	devkit8000	ARM ARMV7 (OMAP3530 SoC)
 
 Sergey Kubushyn <[email protected]>
 
@@ -667,8 +667,8 @@ Guennadi Liakhovetski <[email protected]>
 
 Nishanth Menon <[email protected]>
 
-	omap3_sdp3430	ARM CORTEX-A8 (OMAP3xx SoC)
-	omap3_zoom1	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_sdp3430	ARM ARMV7 (OMAP3xx SoC)
+	omap3_zoom1	ARM ARMV7 (OMAP3xx SoC)
 
 David M?ller <[email protected]>
 
@@ -706,7 +706,7 @@ Dave Peverley <[email protected]>
 
 Manikandan Pillai <[email protected]>
 
-	omap3_evm	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_evm	ARM ARMV7 (OMAP3xx SoC)
 
 Stelian Pop <[email protected]>
 
@@ -718,7 +718,7 @@ Stelian Pop <[email protected]>
 
 Tom Rix <[email protected]>
 
-	omap3_zoom2	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_zoom2	ARM ARMV7 (OMAP3xx SoC)
 
 John Rigby <[email protected]>
 
@@ -737,7 +737,7 @@ Nomadik Linux Team <[email protected]>
 
 Steve Sakoman <[email protected]>
 
-	omap3_overo	ARM CORTEX-A8 (OMAP3xx SoC)
+	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
 
 Jens Scharsig <[email protected]>
 
MAKEALL +4 -4
index 2527352..1ebcb65 100755
@@ -638,9 +638,9 @@ LIST_ARM11="			\
 "
 
 #########################################################################
-## ARM Cortex-A8 Systems
+## ARMV7 Systems
 #########################################################################
-LIST_ARM_CORTEX_A8="		\
+LIST_ARMV7="		\
 	devkit8000		\
 	mx51evk			\
 	omap3_beagle		\
@@ -730,7 +730,7 @@ LIST_arm="			\
 	${LIST_ARM9}		\
 	${LIST_ARM10}		\
 	${LIST_ARM11}		\
-	${LIST_ARM_CORTEX_A8}	\
+	${LIST_ARMV7}	\
 	${LIST_at91}		\
 	${LIST_pxa}		\
 	${LIST_ixp}		\
@@ -996,7 +996,7 @@ print_stats() {
 for arg in $@
 do
 	case "$arg" in
-	arm|SA|ARM7|ARM9|ARM10|ARM11|ARM_CORTEX_A8|at91|ixp|pxa \
+	arm|SA|ARM7|ARM9|ARM10|ARM11|ARMV7|at91|ixp|pxa \
 	|avr32 \
 	|blackfin \
 	|coldfire \
Makefile +11 -11
index c26e491..4006b75 100644
@@ -3152,35 +3152,35 @@ SMN42_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm720t SMN42 siemens lpc2292
 
 #########################################################################
-## ARM CORTEX Systems
+## ARMV7 Systems
 #########################################################################
 
 devkit8000_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 devkit8000 timll omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 devkit8000 timll omap3
 
 omap3_beagle_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 beagle ti omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 beagle ti omap3
 
 omap3_overo_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 overo NULL omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 overo NULL omap3
 
 omap3_evm_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 evm ti omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 evm ti omap3
 
 omap3_pandora_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 pandora NULL omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 pandora NULL omap3
 
 omap3_sdp3430_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 sdp3430 ti omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 sdp3430 ti omap3
 
 omap3_zoom1_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom1 logicpd omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 zoom1 logicpd omap3
 
 omap3_zoom2_config :	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom2 logicpd omap3
+	@$(MKCONFIG) $(@:_config=) arm armv7 zoom2 logicpd omap3
 
 smdkc100_config:	unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 smdkc100 samsung s5pc1xx
+	@$(MKCONFIG) $(@:_config=) arm armv7 smdkc100 samsung s5pc1xx
 
 #########################################################################
 ## XScale Systems
@@ -3299,7 +3299,7 @@ mx31pdk_nand_config	: unconfig
 	@$(MKCONFIG) -a mx31pdk arm arm1136 mx31pdk freescale mx31
 
 mx51evk_config	: unconfig
-	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 mx51evk freescale mx51
+	@$(MKCONFIG) $(@:_config=) arm armv7 mx51evk freescale mx51
 
 omap2420h4_config	: unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 ti omap24xx
arch/arm/cpu/armv7/Makefile renamed from arch/arm/cpu/arm_cortexa8/Makefile +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/Makefile
rename to arch/arm/cpu/armv7/Makefile
arch/arm/cpu/armv7/config.mk renamed from arch/arm/cpu/arm_cortexa8/config.mk +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/config.mk
rename to arch/arm/cpu/armv7/config.mk
arch/arm/cpu/armv7/cpu.c renamed from arch/arm/cpu/arm_cortexa8/cpu.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/cpu.c
rename to arch/arm/cpu/armv7/cpu.c
arch/arm/cpu/armv7/mx51/Makefile renamed from arch/arm/cpu/arm_cortexa8/mx51/Makefile +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/Makefile
rename to arch/arm/cpu/armv7/mx51/Makefile
arch/arm/cpu/armv7/mx51/clock.c renamed from arch/arm/cpu/arm_cortexa8/mx51/clock.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/clock.c
rename to arch/arm/cpu/armv7/mx51/clock.c
arch/arm/cpu/armv7/mx51/iomux.c renamed from arch/arm/cpu/arm_cortexa8/mx51/iomux.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/iomux.c
rename to arch/arm/cpu/armv7/mx51/iomux.c
arch/arm/cpu/armv7/mx51/lowlevel_init.S renamed from arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S
rename to arch/arm/cpu/armv7/mx51/lowlevel_init.S
arch/arm/cpu/armv7/mx51/soc.c renamed from arch/arm/cpu/arm_cortexa8/mx51/soc.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/soc.c
rename to arch/arm/cpu/armv7/mx51/soc.c
arch/arm/cpu/armv7/mx51/speed.c renamed from arch/arm/cpu/arm_cortexa8/mx51/speed.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/speed.c
rename to arch/arm/cpu/armv7/mx51/speed.c
arch/arm/cpu/armv7/mx51/timer.c renamed from arch/arm/cpu/arm_cortexa8/mx51/timer.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/mx51/timer.c
rename to arch/arm/cpu/armv7/mx51/timer.c
arch/arm/cpu/armv7/mx51/u-boot.lds renamed from arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds +1 -1
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/mx51/u-boot.lds
rename to arch/arm/cpu/armv7/mx51/u-boot.lds
index 2953b93..d66434c 100644
@@ -36,7 +36,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	   :
 	{
-	  arch/arm/cpu/arm_cortexa8/start.o
+	  arch/arm/cpu/armv7/start.o
 	  *(.text)
 	}
 
arch/arm/cpu/armv7/omap3/Makefile renamed from arch/arm/cpu/arm_cortexa8/omap3/Makefile +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/Makefile
rename to arch/arm/cpu/armv7/omap3/Makefile
arch/arm/cpu/armv7/omap3/board.c renamed from arch/arm/cpu/arm_cortexa8/omap3/board.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/board.c
rename to arch/arm/cpu/armv7/omap3/board.c
arch/arm/cpu/armv7/omap3/cache.S renamed from arch/arm/cpu/arm_cortexa8/omap3/cache.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/cache.S
rename to arch/arm/cpu/armv7/omap3/cache.S
arch/arm/cpu/armv7/omap3/clock.c renamed from arch/arm/cpu/arm_cortexa8/omap3/clock.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/clock.c
rename to arch/arm/cpu/armv7/omap3/clock.c
arch/arm/cpu/armv7/omap3/gpio.c renamed from arch/arm/cpu/arm_cortexa8/omap3/gpio.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/gpio.c
rename to arch/arm/cpu/armv7/omap3/gpio.c
arch/arm/cpu/armv7/omap3/lowlevel_init.S renamed from arch/arm/cpu/arm_cortexa8/omap3/lowlevel_init.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/lowlevel_init.S
rename to arch/arm/cpu/armv7/omap3/lowlevel_init.S
arch/arm/cpu/armv7/omap3/mem.c renamed from arch/arm/cpu/arm_cortexa8/omap3/mem.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/mem.c
rename to arch/arm/cpu/armv7/omap3/mem.c
arch/arm/cpu/armv7/omap3/reset.S renamed from arch/arm/cpu/arm_cortexa8/omap3/reset.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/reset.S
rename to arch/arm/cpu/armv7/omap3/reset.S
arch/arm/cpu/armv7/omap3/sys_info.c renamed from arch/arm/cpu/arm_cortexa8/omap3/sys_info.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/sys_info.c
rename to arch/arm/cpu/armv7/omap3/sys_info.c
arch/arm/cpu/armv7/omap3/syslib.c renamed from arch/arm/cpu/arm_cortexa8/omap3/syslib.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/syslib.c
rename to arch/arm/cpu/armv7/omap3/syslib.c
arch/arm/cpu/armv7/omap3/timer.c renamed from arch/arm/cpu/arm_cortexa8/omap3/timer.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/omap3/timer.c
rename to arch/arm/cpu/armv7/omap3/timer.c
arch/arm/cpu/armv7/s5pc1xx/Makefile renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/Makefile +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/Makefile
rename to arch/arm/cpu/armv7/s5pc1xx/Makefile
arch/arm/cpu/armv7/s5pc1xx/cache.S renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S +1 -1
similarity index 98%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/cache.S
rename to arch/arm/cpu/armv7/s5pc1xx/cache.S
index 906118d..7734b32 100644
@@ -2,7 +2,7 @@
  * Copyright (C) 2009 Samsung Electronics
  * Minkyu Kang <[email protected]>
  *
- * based on arch/arm/cpu/arm_cortexa8/omap3/cache.S
+ * based on arch/arm/cpu/armv7/omap3/cache.S
  *
  * See file CREDITS for list of people who contributed to this
  * project.
arch/arm/cpu/armv7/s5pc1xx/clock.c renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/clock.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/clock.c
rename to arch/arm/cpu/armv7/s5pc1xx/clock.c
arch/arm/cpu/armv7/s5pc1xx/cpu_info.c renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/cpu_info.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/cpu_info.c
rename to arch/arm/cpu/armv7/s5pc1xx/cpu_info.c
arch/arm/cpu/armv7/s5pc1xx/reset.S renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/reset.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/reset.S
rename to arch/arm/cpu/armv7/s5pc1xx/reset.S
arch/arm/cpu/armv7/s5pc1xx/sromc.c renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/sromc.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/sromc.c
rename to arch/arm/cpu/armv7/s5pc1xx/sromc.c
arch/arm/cpu/armv7/s5pc1xx/timer.c renamed from arch/arm/cpu/arm_cortexa8/s5pc1xx/timer.c +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/s5pc1xx/timer.c
rename to arch/arm/cpu/armv7/s5pc1xx/timer.c
arch/arm/cpu/armv7/start.S renamed from arch/arm/cpu/arm_cortexa8/start.S +0 -0
similarity index 100%
rename from arch/arm/cpu/arm_cortexa8/start.S
rename to arch/arm/cpu/armv7/start.S
arch/arm/cpu/armv7/u-boot.lds renamed from arch/arm/cpu/arm_cortexa8/u-boot.lds +1 -1
similarity index 97%
rename from arch/arm/cpu/arm_cortexa8/u-boot.lds
rename to arch/arm/cpu/armv7/u-boot.lds
index 820e3a1..9e5b5a9 100644
@@ -34,7 +34,7 @@ SECTIONS
 	. = ALIGN(4);
 	.text	:
 	{
-		arch/arm/cpu/arm_cortexa8/start.o	(.text)
+		arch/arm/cpu/armv7/start.o	(.text)
 		*(.text)
 	}
 
arch/arm/include/asm/arch-mx51/asm-offsets.h +1 -1
index fbba412..afd2728 100644
@@ -1,5 +1,5 @@
 /*
- * needed for arch/arm/cpu/arm_cortexa8/mx51/lowlevel_init.S
+ * needed for arch/arm/cpu/armv7/mx51/lowlevel_init.S
  *
  * These should be auto-generated
  */
board/logicpd/zoom2/zoom2.c +1 -1
index 6455d1d..e9f6625 100644
@@ -46,7 +46,7 @@
 /*
  * This the the zoom2, board specific, gpmc configuration for the
  * quad uart on the debug board.   The more general gpmc configurations
- * are setup at the cpu level in arch/arm/cpu/arm_cortexa8/omap3/mem.c
+ * are setup at the cpu level in arch/arm/cpu/armv7/omap3/mem.c
  *
  * The details of the setting of the serial gpmc setup are not available.
  * The values were provided by another party.
include/configs/devkit8000.h +1 -1
index 7d1332f..cfe02c8 100644
@@ -32,7 +32,7 @@
 #define __CONFIG_H
 
 /* High Level Configuration Options */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_beagle.h +1 -1
index 08d79ac..af6485c 100644
@@ -31,7 +31,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_evm.h +1 -1
index 0d99f7d..405dfe6 100644
@@ -36,7 +36,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_overo.h +1 -1
index a43500b..5c34eb7 100644
@@ -23,7 +23,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_pandora.h +1 -1
index 945c053..112caf2 100644
@@ -26,7 +26,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_sdp3430.h +1 -1
index b4919db..7b1c772 100644
@@ -36,7 +36,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_zoom1.h +1 -1
index ae7ebf9..9259638 100644
@@ -32,7 +32,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/omap3_zoom2.h +1 -1
index c88c732..39e6429 100644
@@ -33,7 +33,7 @@
 /*
  * High Level Configuration Options
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_OMAP		1	/* in a TI OMAP core */
 #define CONFIG_OMAP34XX		1	/* which is a 34XX */
 #define CONFIG_OMAP3430		1	/* which is in a 3430 */
include/configs/smdkc100.h +1 -1
index 09bce6d..76a47c4 100644
@@ -32,7 +32,7 @@
  * High Level Configuration Options
  * (easy to change)
  */
-#define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
+#define CONFIG_ARMV7		1	/* This is an ARM V7 CPU core */
 #define CONFIG_SAMSUNG		1	/* in a SAMSUNG core */
 #define CONFIG_S5PC1XX		1	/* which is in a S5PC1XX Family */
 #define CONFIG_S5PC100		1	/* which is in a S5PC100 */
Signature · 1 line
1.7.0.4
#2 lore raw

PATCH 2/10 ARMV7: Add basic support for TI OMAP4

In reply to Steve Sakoman

This patch adds minimum support for OMAP4. Code which can be shared between OMAP3 and OMAP4 is placed in arch/arm/cpu/armv7/omap-common

---
 Makefile                                           |    7 +
 arch/arm/cpu/armv7/{omap3 => omap-common}/Makefile |   19 +---
 .../{omap3/Makefile => omap-common/config.mk}      |   46 ++------
 arch/arm/cpu/armv7/{omap3 => omap-common}/reset.S  |    0
 arch/arm/cpu/armv7/{omap3 => omap-common}/timer.c  |    5 +
 arch/arm/cpu/armv7/omap3/Makefile                  |    2 -
 arch/arm/cpu/armv7/{omap3 => omap4}/Makefile       |   11 +--
 arch/arm/cpu/armv7/omap4/board.c                   |   91 +++++++++++++++
 .../armv7/{omap3/reset.S => omap4/lowlevel_init.S} |   42 +++++---
 .../cpu/armv7/{omap3/reset.S => omap4/sys_info.c}  |   52 ++++++---
 arch/arm/include/asm/arch-omap4/cpu.h              |   94 ++++++++++++++++
 arch/arm/include/asm/arch-omap4/omap4.h            |  118 ++++++++++++++++++++
 .../reset.S => include/asm/arch-omap4/sys_proto.h} |   37 +++---
 13 files changed, 414 insertions(+), 110 deletions(-)
 copy arch/arm/cpu/armv7/{omap3 => omap-common}/Makefile (81%)
 copy arch/arm/cpu/armv7/{omap3/Makefile => omap-common/config.mk} (52%)
 copy arch/arm/cpu/armv7/{omap3 => omap-common}/reset.S (100%)
 rename arch/arm/cpu/armv7/{omap3 => omap-common}/timer.c (96%)
 copy arch/arm/cpu/armv7/{omap3 => omap4}/Makefile (88%)
 create mode 100644 arch/arm/cpu/armv7/omap4/board.c
 copy arch/arm/cpu/armv7/{omap3/reset.S => omap4/lowlevel_init.S} (60%)
 copy arch/arm/cpu/armv7/{omap3/reset.S => omap4/sys_info.c} (55%)
 create mode 100644 arch/arm/include/asm/arch-omap4/cpu.h
 create mode 100644 arch/arm/include/asm/arch-omap4/omap4.h
 rename arch/arm/{cpu/armv7/omap3/reset.S => include/asm/arch-omap4/sys_proto.h} (58%)
Makefile +7 -0
index 4006b75..513ff4a 100644
@@ -244,6 +244,13 @@ LIBS += lib/libfdt/libfdt.a
 LIBS += api/libapi.a
 LIBS += post/libpost.a
 
+ifeq ($(SOC),omap3)
+LIBS += $(CPUDIR)/omap-common/libomap-common.a
+endif
+ifeq ($(SOC),omap4)
+LIBS += $(CPUDIR)/omap-common/libomap-common.a
+endif
+
 LIBS := $(addprefix $(obj),$(LIBS))
 .PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)
 
arch/arm/cpu/armv7/omap-common/Makefile renamed from arch/arm/cpu/armv7/omap3/Makefile +5 -14
similarity index 81%
copy from arch/arm/cpu/armv7/omap3/Makefile
copy to arch/arm/cpu/armv7/omap-common/Makefile
index 136b163..3a4a304 100644
@@ -23,24 +23,15 @@
 
 include $(TOPDIR)/config.mk
 
-LIB	=  $(obj)lib$(SOC).a
+LIB	= $(obj)libomap-common.a
 
-SOBJS	:= lowlevel_init.o
-SOBJS	+= cache.o
-SOBJS	+= reset.o
-
-COBJS	+= board.o
-COBJS	+= clock.o
-COBJS	+= gpio.o
-COBJS	+= mem.o
-COBJS	+= syslib.o
-COBJS	+= sys_info.o
-COBJS	+= timer.o
+SOBJS	:= reset.o
+COBJS	:= timer.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
 
-all:	 $(obj).depend $(LIB)
+all:	$(obj).depend $(LIB)
 
 $(LIB):	$(OBJS)
 	$(AR) $(ARFLAGS) $@ $(OBJS)
arch/arm/cpu/armv7/omap-common/config.mk renamed from arch/arm/cpu/armv7/omap3/Makefile +12 -34

54 lines not on this page · raw message

arch/arm/cpu/armv7/omap-common/reset.S renamed from arch/arm/cpu/armv7/omap3/reset.S +0 -0
similarity index 100%
copy from arch/arm/cpu/armv7/omap3/reset.S
copy to arch/arm/cpu/armv7/omap-common/reset.S
arch/arm/cpu/armv7/omap-common/timer.c renamed from arch/arm/cpu/armv7/omap3/timer.c +5 -0
similarity index 96%
rename from arch/arm/cpu/armv7/omap3/timer.c
rename to arch/arm/cpu/armv7/omap-common/timer.c
index 401bfe6..69e285f 100644
@@ -84,6 +84,11 @@ void set_timer(ulong t)
 /* delay x useconds */
 void __udelay(unsigned long usec)
 {
+#if defined(CONFIG_OMAP44XX)
+	/* TODO temporary hack until OMAP4 clock setup routines are present */
+	if (usec > 1000)
+		usec = usec/1000;
+#endif
 	long tmo = usec * (TIMER_CLOCK / 1000) / 1000;
 	unsigned long now, last = readl(&timer_base->tcrr);
 
arch/arm/cpu/armv7/omap3/Makefile +0 -2
index 136b163..c23a8d7 100644
@@ -27,7 +27,6 @@ LIB	=  $(obj)lib$(SOC).a
 
 SOBJS	:= lowlevel_init.o
 SOBJS	+= cache.o
-SOBJS	+= reset.o
 
 COBJS	+= board.o
 COBJS	+= clock.o
@@ -35,7 +34,6 @@ COBJS	+= gpio.o
 COBJS	+= mem.o
 COBJS	+= syslib.o
 COBJS	+= sys_info.o
-COBJS	+= timer.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
arch/arm/cpu/armv7/omap4/Makefile renamed from arch/arm/cpu/armv7/omap3/Makefile +2 -9
similarity index 88%
copy from arch/arm/cpu/armv7/omap3/Makefile
copy to arch/arm/cpu/armv7/omap4/Makefile
index 136b163..ecf64f9 100644
@@ -1,5 +1,5 @@
 #
-# (C) Copyright 2000-2003
+# (C) Copyright 2000-2010
 # Wolfgang Denk, DENX Software Engineering, wd at denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -25,17 +25,10 @@ include $(TOPDIR)/config.mk
 
 LIB	=  $(obj)lib$(SOC).a
 
-SOBJS	:= lowlevel_init.o
-SOBJS	+= cache.o
-SOBJS	+= reset.o
+SOBJS	+= lowlevel_init.o
 
 COBJS	+= board.o
-COBJS	+= clock.o
-COBJS	+= gpio.o
-COBJS	+= mem.o
-COBJS	+= syslib.o
 COBJS	+= sys_info.o
-COBJS	+= timer.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
arch/arm/cpu/armv7/omap4/board.c new file +91 -0

91 lines not on this page · raw message

arch/arm/cpu/armv7/omap4/lowlevel_init.S renamed from arch/arm/cpu/armv7/omap3/reset.S +27 -15

56 lines not on this page · raw message

arch/arm/cpu/armv7/omap4/sys_info.c renamed from arch/arm/cpu/armv7/omap3/reset.S +35 -17

67 lines not on this page · raw message

arch/arm/include/asm/arch-omap4/cpu.h new file +94 -0

94 lines not on this page · raw message

arch/arm/include/asm/arch-omap4/omap4.h new file +118 -0

118 lines not on this page · raw message

arch/arm/include/asm/arch-omap4/sys_proto.h renamed from arch/arm/cpu/armv7/omap3/reset.S +18 -19
similarity index 58%
rename from arch/arm/cpu/armv7/omap3/reset.S
rename to arch/arm/include/asm/arch-omap4/sys_proto.h
index a53c408..4adb8b6 100644
@@ -1,9 +1,6 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <[email protected]>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License as
@@ -12,25 +9,27 @@
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  * MA 02111-1307 USA
- */
+  */
+#ifndef _SYS_PROTO_H_
+#define _SYS_PROTO_H_
+#include <asm/arch/omap4.h>
+#include <asm/io.h>
+
+struct omap_sysinfo {
+	char *board_string;
+};
+
+void watchdog_init(void);
+u32 get_device_type(void);
+void invalidate_dcache(u32);
 
-#include <config.h>
+extern const struct omap_sysinfo sysinfo;
 
-.global reset_cpu
-reset_cpu:
-	ldr	r1, rstctl			@ get addr for global reset
-						@ reg
-	mov	r3, #0x2			@ full reset pll + mpu
-	str	r3, [r1]			@ force reset
-	mov	r0, r0
-_loop_forever:
-	b	_loop_forever
-rstctl:
-	.word	PRM_RSTCTRL
+#endif
Signature · 1 line
1.7.0.4
#3 lore raw

PATCH 2/10 ARMV7: Add basic support for TI OMAP4

Quoted 2 lines · Steve Sakoman

+

[...]

arch/arm/cpu/armv7/omap4/board.c line 36

Quoted 4 lines
arch/arm/cpu/armv7/omap4/board.c new file +3 -0
+/* Declare the global data pointer - gd */
+DECLARE_GLOBAL_DATA_PTR;
+

Once the declaration in /board/ti/sdp4430/sdp.c is made global this won't be needed.
[...]
--- a/arch/arm/cpu/armv7/omap3/reset.S

Quoted 16 lines

+++ b/arch/arm/cpu/armv7/omap4/lowlevel_init.S

arch/arm/cpu/armv7/omap4/lowlevel_init.S renamed from arch/arm/cpu/armv7/omap3/reset.S +7 -2
@@ -1,6 +1,11 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <[email protected]>
+ * Board specific setup info
+ *
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
+ *
+ * Author :
+ *     Aneesh V        <[email protected]>
 *
 * See file CREDITS for list of people who contributed to this
 * project.

arch/arm/cpu/armv7/omap4/lowlevel_init.S line 21

Quoted 6 lines
arch/arm/cpu/armv7/omap4/lowlevel_init.S renamed from arch/arm/cpu/armv7/omap3/reset.S +1 -1
@@ -12,7 +17,7 @@
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 

Extra space. Check other files also.
[...]

Quoted 18 lines
arch/arm/cpu/armv7/omap4/sys_info.c renamed from arch/arm/cpu/armv7/omap3/reset.S +5 -4
@@ -1,9 +1,10 @@
 /*
- * Copyright (c) 2009 Samsung Electronics.
- * Minkyu Kang <[email protected]>
+ * (C) Copyright 2010
+ * Texas Instruments, <www.ti.com>
 *
- * See file CREDITS for list of people who contributed to this
- * project.
+ * Author :
+ *     Aneesh V        <[email protected]>
+ *     Steve Sakoman   <[email protected]>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as

arch/arm/cpu/armv7/omap4/sys_info.c line 17

Quoted 6 lines
arch/arm/cpu/armv7/omap4/sys_info.c renamed from arch/arm/cpu/armv7/omap3/reset.S +1 -1
@@ -12,7 +13,7 @@
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR /PURPOSE.  See the
 

Extra / before PURPOSE
[...]

Signature · 2 lines
Regards,
Vaibhav
#4 lore raw

PATCH 2/10 ARMV7: Add basic support for TI OMAP4

Quoted 4 lines · Vaibhav Bedia
Quoted 2 lines · Steve Sakoman

+

Quoted 8 lines

[...]

arch/arm/cpu/armv7/omap4/board.c line 36

Quoted 4 lines
arch/arm/cpu/armv7/omap4/board.c new file +3 -0
+/* Declare the global data pointer - gd */
+DECLARE_GLOBAL_DATA_PTR;
+

Once the declaration in /board/ti/sdp4430/sdp.c is made global this won't be needed.

It still seems to be needed to avoid a compile time error, even with the global declaration
in /board/ti/sdp4430/sdp.c.

Steve

#5 lore raw

PATCH 3/10 ARMV7: Add support for TI OMAP4430 SDP

In reply to Steve Sakoman

OMAP4430 SDP is a reference board based on OMAP4430, an ARMV7 Cortex A9 CPU

This patch adds minimum support for booting the board. It assumes U-boot is loaded to SDRAM with the help of another small bootloader (x-load) running from SRAM. U-boot currently relies on x-load for clock, mux, and SDRAM initialization

---
 MAINTAINERS                     |    1 +
 MAKEALL                         |    1 +
 Makefile                        |    3 +
 board/ti/sdp4430/Makefile       |   49 +++++++++++
 board/ti/sdp4430/config.mk      |   32 +++++++
 board/ti/sdp4430/sdp.c          |   62 ++++++++++++++
 include/configs/omap4_sdp4430.h |  175 +++++++++++++++++++++++++++++++++++++++
 7 files changed, 323 insertions(+), 0 deletions(-)
 create mode 100644 board/ti/sdp4430/Makefile
 create mode 100644 board/ti/sdp4430/config.mk
 create mode 100644 board/ti/sdp4430/sdp.c
 create mode 100644 include/configs/omap4_sdp4430.h
MAINTAINERS +1 -0
index b9c6af2..41951d1 100644
@@ -738,6 +738,7 @@ Nomadik Linux Team <[email protected]>
 Steve Sakoman <[email protected]>
 
 	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
+	omap4_sdp4430	ARM ARMV7 (OMAP4xx SoC)
 
 Jens Scharsig <[email protected]>
 
MAKEALL +1 -0
index 1ebcb65..09c6f53 100755
@@ -650,6 +650,7 @@ LIST_ARMV7="		\
 	omap3_sdp3430		\
 	omap3_zoom1		\
 	omap3_zoom2		\
+	omap4_sdp4430		\
 	smdkc100		\
 "
 
Makefile +3 -0
index 513ff4a..54511ed 100644
@@ -3186,6 +3186,9 @@ omap3_zoom1_config :	unconfig
 omap3_zoom2_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm armv7 zoom2 logicpd omap3
 
+omap4_sdp4430_config :	unconfig
+	@$(MKCONFIG) $(@:_config=) arm armv7 sdp4430 ti omap4
+
 smdkc100_config:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm armv7 smdkc100 samsung s5pc1xx
 
board/ti/sdp4430/Makefile new file +49 -0

49 lines not on this page · raw message

board/ti/sdp4430/config.mk new file +32 -0
new file mode 100644
index 0000000..7382263
@@ -0,0 +1,32 @@
+#
+# (C) Copyright 2006-2009
+# Texas Instruments Incorporated, <www.ti.com>
+#
+# OMAP 4430 SDP
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+# SDRAM Address Space:
+# 8000'0000 - 9fff'ffff (512 MB)
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+
+# Let's place u-boot 1MB before the end of SDRAM.
+TEXT_BASE = 0x9ff00000
board/ti/sdp4430/sdp.c new file +62 -0

62 lines not on this page · raw message

include/configs/omap4_sdp4430.h new file +175 -0

175 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#7 lore raw

PATCH 3/10 ARMV7: Add support for TI OMAP4430 SDP

Quoted 9 lines · Vaibhav Bedia

On Tue, Jun 15, 2010 at 10:09 AM, Steve Sakoman <[email protected]> wrote:
[...]

board/ti/sdp4430/sdp.c

Quoted 4 lines
board/ti/sdp4430/sdp.c new file +3 -0
+int board_init(void)
+{
+ ? ? ? DECLARE_GLOBAL_DATA_PTR;

This should be moved outside the function. Relevant thread
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/31805

I'll fix this. Looks like a bunch of other boards do the same. I'll prepare fix patches for some of the other OMAP boards that still do this.

Steve

#8 lore raw

PATCH 4/10 ARMV7: Add support for TI OMAP4 Panda

In reply to Steve Sakoman

OMAP4 Panda is a reference board based on OMAP4430, an ARMV7 Cortex A9 CPU

This patch adds minimum support for booting the board. It assumes U-boot is loaded to SDRAM with the help of another small bootloader (x-load) running from SRAM. U-boot currently relies on x-load for clock, mux, and SDRAM initialization

---
 MAINTAINERS                   |    1 +
 MAKEALL                       |    1 +
 Makefile                      |    3 +
 board/ti/panda/Makefile       |   49 ++++++++++++
 board/ti/panda/config.mk      |   32 ++++++++
 board/ti/panda/panda.c        |   61 ++++++++++++++
 include/configs/omap4_panda.h |  174 +++++++++++++++++++++++++++++++++++++++++
 7 files changed, 321 insertions(+), 0 deletions(-)
 create mode 100644 board/ti/panda/Makefile
 create mode 100644 board/ti/panda/config.mk
 create mode 100644 board/ti/panda/panda.c
 create mode 100644 include/configs/omap4_panda.h
MAINTAINERS +1 -0
index 41951d1..41e62f4 100644
@@ -738,6 +738,7 @@ Nomadik Linux Team <[email protected]>
 Steve Sakoman <[email protected]>
 
 	omap3_overo	ARM ARMV7 (OMAP3xx SoC)
+	omap4_panda	ARM ARMV7 (OMAP4xx SoC)
 	omap4_sdp4430	ARM ARMV7 (OMAP4xx SoC)
 
 Jens Scharsig <[email protected]>
MAKEALL +1 -0
index 09c6f53..8a30df1 100755
@@ -650,6 +650,7 @@ LIST_ARMV7="		\
 	omap3_sdp3430		\
 	omap3_zoom1		\
 	omap3_zoom2		\
+	omap4_panda		\
 	omap4_sdp4430		\
 	smdkc100		\
 "
Makefile +3 -0
index 54511ed..7b06683 100644
@@ -3186,6 +3186,9 @@ omap3_zoom1_config :	unconfig
 omap3_zoom2_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm armv7 zoom2 logicpd omap3
 
+omap4_panda_config :	unconfig
+	@$(MKCONFIG) $(@:_config=) arm armv7 panda ti omap4
+
 omap4_sdp4430_config :	unconfig
 	@$(MKCONFIG) $(@:_config=) arm armv7 sdp4430 ti omap4
 
board/ti/panda/Makefile new file +49 -0

49 lines not on this page · raw message

board/ti/panda/config.mk new file +32 -0
new file mode 100644
index 0000000..7382263
@@ -0,0 +1,32 @@
+#
+# (C) Copyright 2006-2009
+# Texas Instruments Incorporated, <www.ti.com>
+#
+# OMAP 4430 SDP
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# 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; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+# SDRAM Address Space:
+# 8000'0000 - 9fff'ffff (512 MB)
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+
+# Let's place u-boot 1MB before the end of SDRAM.
+TEXT_BASE = 0x9ff00000
board/ti/panda/panda.c new file +61 -0

61 lines not on this page · raw message

include/configs/omap4_panda.h new file +174 -0

174 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#9 lore raw

PATCH 4/10 ARMV7: Add support for TI OMAP4 Panda

[...]

board/ti/panda/panda.c line 39

Quoted 10 lines
board/ti/panda/panda.c new file +9 -0
+/**
+ * @brief board_init
+ *
+ * @return 0
+ */
+int board_init(void)
+{
+       DECLARE_GLOBAL_DATA_PTR;
+

This should also be made global.
[...]

Signature · 2 lines
Regards,
Vaibhav
#10 lore raw

PATCH 5/10 ARMV7: Restructure OMAP mmc driver to allow code sharing between OMAP3 and OMAP4

In reply to Steve Sakoman

The architecture independent header is moved to drivers/mmc, and the architecture dependent headers reside in asm/arch-omap3 and asm/arch-omap4

---
 arch/arm/include/asm/arch-omap4/mmc_host_def.h     |  171 ++++++++++++++++++++
 drivers/mmc/omap3_mmc.c                            |   13 +-
 .../arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h    |    2 +-
 3 files changed, 181 insertions(+), 5 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-omap4/mmc_host_def.h
 rename arch/arm/include/asm/arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h (99%)
arch/arm/include/asm/arch-omap4/mmc_host_def.h new file +171 -0
new file mode 100644
index 0000000..75fb61e
@@ -0,0 +1,171 @@
+/*
+ * (C) Copyright 2008
+ * Texas Instruments, <www.ti.com>
+ * Syed Mohammed Khasim <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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's version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef MMC_HOST_DEF_H
+#define MMC_HOST_DEF_H
+
+/*
+ * OMAP HSMMC register definitions
+ */
+
+#define OMAP_HSMMC1_BASE	0x4809C100
+#define OMAP_HSMMC2_BASE	0x480B4100
+#define OMAP_HSMMC3_BASE	0x480AD100
+
+typedef struct hsmmc {
+	unsigned char res1[0x10];
+	unsigned int sysconfig;		/* 0x10 */
+	unsigned int sysstatus;		/* 0x14 */
+	unsigned char res2[0x14];
+	unsigned int con;		/* 0x2C */
+	unsigned char res3[0xD4];
+	unsigned int blk;		/* 0x104 */
+	unsigned int arg;		/* 0x108 */
+	unsigned int cmd;		/* 0x10C */
+	unsigned int rsp10;		/* 0x110 */
+	unsigned int rsp32;		/* 0x114 */
+	unsigned int rsp54;		/* 0x118 */
+	unsigned int rsp76;		/* 0x11C */
+	unsigned int data;		/* 0x120 */
+	unsigned int pstate;		/* 0x124 */
+	unsigned int hctl;		/* 0x128 */
+	unsigned int sysctl;		/* 0x12C */
+	unsigned int stat;		/* 0x130 */
+	unsigned int ie;		/* 0x134 */
+	unsigned char res4[0x8];
+	unsigned int capa;		/* 0x140 */
+} hsmmc_t;
+
+/*
+ * OMAP HS MMC Bit definitions
+ */
+#define MMC_SOFTRESET			(0x1 << 1)
+#define RESETDONE			(0x1 << 0)
+#define NOOPENDRAIN			(0x0 << 0)
+#define OPENDRAIN			(0x1 << 0)
+#define OD				(0x1 << 0)
+#define INIT_NOINIT			(0x0 << 1)
+#define INIT_INITSTREAM			(0x1 << 1)
+#define HR_NOHOSTRESP			(0x0 << 2)
+#define STR_BLOCK			(0x0 << 3)
+#define MODE_FUNC			(0x0 << 4)
+#define DW8_1_4BITMODE			(0x0 << 5)
+#define MIT_CTO				(0x0 << 6)
+#define CDP_ACTIVEHIGH			(0x0 << 7)
+#define WPP_ACTIVEHIGH			(0x0 << 8)
+#define RESERVED_MASK			(0x3 << 9)
+#define CTPL_MMC_SD			(0x0 << 11)
+#define BLEN_512BYTESLEN		(0x200 << 0)
+#define NBLK_STPCNT			(0x0 << 16)
+#define DE_DISABLE			(0x0 << 0)
+#define BCE_DISABLE			(0x0 << 1)
+#define ACEN_DISABLE			(0x0 << 2)
+#define DDIR_OFFSET			(4)
+#define DDIR_MASK			(0x1 << 4)
+#define DDIR_WRITE			(0x0 << 4)
+#define DDIR_READ			(0x1 << 4)
+#define MSBS_SGLEBLK			(0x0 << 5)
+#define RSP_TYPE_OFFSET			(16)
+#define RSP_TYPE_MASK			(0x3 << 16)
+#define RSP_TYPE_NORSP			(0x0 << 16)
+#define RSP_TYPE_LGHT136		(0x1 << 16)
+#define RSP_TYPE_LGHT48			(0x2 << 16)
+#define RSP_TYPE_LGHT48B		(0x3 << 16)
+#define CCCE_NOCHECK			(0x0 << 19)
+#define CCCE_CHECK			(0x1 << 19)
+#define CICE_NOCHECK			(0x0 << 20)
+#define CICE_CHECK			(0x1 << 20)
+#define DP_OFFSET			(21)
+#define DP_MASK				(0x1 << 21)
+#define DP_NO_DATA			(0x0 << 21)
+#define DP_DATA				(0x1 << 21)
+#define CMD_TYPE_NORMAL			(0x0 << 22)
+#define INDEX_OFFSET			(24)
+#define INDEX_MASK			(0x3f << 24)
+#define INDEX(i)			(i << 24)
+#define DATI_MASK			(0x1 << 1)
+#define DATI_CMDDIS			(0x1 << 1)
+#define DTW_1_BITMODE			(0x0 << 1)
+#define DTW_4_BITMODE			(0x1 << 1)
+#define SDBP_PWROFF			(0x0 << 8)
+#define SDBP_PWRON			(0x1 << 8)
+#define SDVS_1V8			(0x5 << 9)
+#define SDVS_3V0			(0x6 << 9)
+#define ICE_MASK			(0x1 << 0)
+#define ICE_STOP			(0x0 << 0)
+#define ICS_MASK			(0x1 << 1)
+#define ICS_NOTREADY			(0x0 << 1)
+#define ICE_OSCILLATE			(0x1 << 0)
+#define CEN_MASK			(0x1 << 2)
+#define CEN_DISABLE			(0x0 << 2)
+#define CEN_ENABLE			(0x1 << 2)
+#define CLKD_OFFSET			(6)
+#define CLKD_MASK			(0x3FF << 6)
+#define DTO_MASK			(0xF << 16)
+#define DTO_15THDTO			(0xE << 16)
+#define SOFTRESETALL			(0x1 << 24)
+#define CC_MASK				(0x1 << 0)
+#define TC_MASK				(0x1 << 1)
+#define BWR_MASK			(0x1 << 4)
+#define BRR_MASK			(0x1 << 5)
+#define ERRI_MASK			(0x1 << 15)
+#define IE_CC				(0x01 << 0)
+#define IE_TC				(0x01 << 1)
+#define IE_BWR				(0x01 << 4)
+#define IE_BRR				(0x01 << 5)
+#define IE_CTO				(0x01 << 16)
+#define IE_CCRC				(0x01 << 17)
+#define IE_CEB				(0x01 << 18)
+#define IE_CIE				(0x01 << 19)
+#define IE_DTO				(0x01 << 20)
+#define IE_DCRC				(0x01 << 21)
+#define IE_DEB				(0x01 << 22)
+#define IE_CERR				(0x01 << 28)
+#define IE_BADA				(0x01 << 29)
+
+#define VS30_3V0SUP			(1 << 25)
+#define VS18_1V8SUP			(1 << 26)
+
+/* Driver definitions */
+#define MMCSD_SECTOR_SIZE		512
+#define MMC_CARD			0
+#define SD_CARD				1
+#define BYTE_MODE			0
+#define SECTOR_MODE			1
+#define CLK_INITSEQ			0
+#define CLK_400KHZ			1
+#define CLK_MISC			2
+
+typedef struct {
+	unsigned int card_type;
+	unsigned int version;
+	unsigned int mode;
+	unsigned int size;
+	unsigned int RCA;
+} mmc_card_data;
+
+#define mmc_reg_out(addr, mask, val)\
+	writel((readl(addr) & (~(mask))) | ((val) & (mask)), (addr))
+
+#endif /* MMC_HOST_DEF_H */
drivers/mmc/omap3_mmc.c +9 -4
index bf650ba..e97d817 100644
@@ -30,7 +30,8 @@
 #include <i2c.h>
 #include <twl4030.h>
 #include <asm/io.h>
-#include <asm/arch/mmc.h>
+
+#include "omap3_mmc.h"
 
 const unsigned short mmc_transspeed_val[15][4] = {
 	{CLKD(10, 1), CLKD(10, 10), CLKD(10, 100), CLKD(10, 1000)},
@@ -81,13 +82,14 @@ block_dev_desc_t *mmc_get_dev(int dev)
 
 unsigned char mmc_board_init(void)
 {
-	t2_t *t2_base = (t2_t *)T2_BASE;
-	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
-
 #if defined(CONFIG_TWL4030_POWER)
 	twl4030_power_mmc_init();
 #endif
 
+#if defined(CONFIG_OMAP34XX)
+	t2_t *t2_base = (t2_t *)T2_BASE;
+	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
+
 	writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 |
 		PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
 		&t2_base->pbias_lite);
@@ -105,6 +107,9 @@ unsigned char mmc_board_init(void)
 	writel(readl(&prcm_base->iclken1_core) | 
 		EN_MMC1 | EN_MMC2 | EN_MMC3,
 		&prcm_base->iclken1_core);
+#endif
+
+/* TODO add appropriate OMAP4 init */
 
 	return 1;
 }
drivers/mmc/omap3_mmc.h renamed from arch/arm/include/asm/arch-omap3/mmc.h +1 -1
similarity index 99%
rename from arch/arm/include/asm/arch-omap3/mmc.h
rename to drivers/mmc/omap3_mmc.h
index 196ffdc..cbb3dc3 100644
@@ -25,7 +25,7 @@
 #ifndef MMC_H
 #define MMC_H
 
-#include "mmc_host_def.h"
+#include <asm/arch/mmc_host_def.h>
 
 /* Responses */
 #define RSP_TYPE_NONE	(RSP_TYPE_NORSP   | CCCE_NOCHECK | CICE_NOCHECK)
Signature · 1 line
1.7.0.4
#11 lore raw

PATCH 6/10 ARMV7: Enable mmc support on TI OMAP4430 SDP

In reply to Steve Sakoman

This patch enables the mmc driver as well as support for FAT and ext2.

It also sets up environment settings to facilitate booting from mmc

---
 include/configs/omap4_sdp4430.h |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)
include/configs/omap4_sdp4430.h +36 -0
index 07ab93f..3a14d34 100644
@@ -94,12 +94,23 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* MMC */
+#define CONFIG_MMC			1
+#define CONFIG_OMAP3_MMC		1
+#define CONFIG_SYS_MMC_SET_DEV		1
+#define CONFIG_DOS_PARTITION		1
+
 /* Flash */
 #define CONFIG_SYS_NO_FLASH	1
 
 /* commands to include */
 #include <config_cmd_default.h>
 
+/* Enabled commands */
+#define CONFIG_CMD_EXT2		/* EXT2 Support                 */
+#define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_MMC		/* MMC support                  */
+
 /* Disabled commands */
 #undef CONFIG_CMD_NET
 #undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
@@ -121,6 +132,31 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"loadaddr=0x82000000\0" \
 	"console=ttyS2,115200n8\0" \
+	"mmcdev=1\0" \
+	"mmcroot=/dev/mmcblk0p2 rw\0" \
+	"mmcrootfstype=ext3 rootwait\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"root=${mmcroot} " \
+		"rootfstype=${mmcrootfstype}\0" \
+	"loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+		"source ${loadaddr}\0" \
+	"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+	"mmcboot=echo Booting from mmc${mmcdev} ...; " \
+		"run mmcargs; " \
+		"bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc init ${mmcdev}; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run nandboot; " \
+			"fi; " \
+		"fi; " \
+	"fi"
 
 #define CONFIG_AUTO_COMPLETE		1
 
Signature · 1 line
1.7.0.4
#12 lore raw

PATCH 7/10 ARMV7: Enable mmc support on TI OMAP4 Panda

In reply to Steve Sakoman

This patch enables the mmc driver as well as support for FAT and ext2.

It also sets up environment settings to facilitate booting from mmc.

---
 include/configs/omap4_panda.h |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)
include/configs/omap4_panda.h +36 -0
index 5b96b2e..9302ecb 100644
@@ -93,12 +93,23 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* MMC */
+#define CONFIG_MMC			1
+#define CONFIG_OMAP3_MMC		1
+#define CONFIG_SYS_MMC_SET_DEV		1
+#define CONFIG_DOS_PARTITION		1
+
 /* Flash */
 #define CONFIG_SYS_NO_FLASH	1
 
 /* commands to include */
 #include <config_cmd_default.h>
 
+/* Enabled commands */
+#define CONFIG_CMD_EXT2		/* EXT2 Support                 */
+#define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_MMC		/* MMC support                  */
+
 /* Disabled commands */
 #undef CONFIG_CMD_NET
 #undef CONFIG_CMD_FPGA		/* FPGA configuration Support   */
@@ -120,6 +131,31 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"loadaddr=0x82000000\0" \
 	"console=ttyS2,115200n8\0" \
+	"mmcdev=1\0" \
+	"mmcroot=/dev/mmcblk0p2 rw\0" \
+	"mmcrootfstype=ext3 rootwait\0" \
+	"mmcargs=setenv bootargs console=${console} " \
+		"root=${mmcroot} " \
+		"rootfstype=${mmcrootfstype}\0" \
+	"loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+	"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+		"source ${loadaddr}\0" \
+	"loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+	"mmcboot=echo Booting from mmc${mmcdev} ...; " \
+		"run mmcargs; " \
+		"bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+	"if mmc init ${mmcdev}; then " \
+		"if run loadbootscript; then " \
+			"run bootscript; " \
+		"else " \
+			"if run loaduimage; then " \
+				"run mmcboot; " \
+			"else run nandboot; " \
+			"fi; " \
+		"fi; " \
+	"fi"
 
 #define CONFIG_AUTO_COMPLETE		1
 
Signature · 1 line
1.7.0.4
#13 lore raw

PATCH 8/10 ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4

In reply to Steve Sakoman

This patch modifies the omap24xx driver so that it will also work with OMAP4.

---
 arch/arm/include/asm/arch-omap4/i2c.h |  215 +++++++++++++++++++++++++++++++++
 drivers/i2c/omap24xx_i2c.c            |   15 ++-
 2 files changed, 227 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
arch/arm/include/asm/arch-omap4/i2c.h new file +215 -0
new file mode 100644
index 0000000..e1f578f
@@ -0,0 +1,215 @@
+/*
+ * (C) Copyright 2004-2008
+ * Texas Instruments, <www.ti.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _I2C_H_
+#define _I2C_H_
+
+#define I2C_DEFAULT_BASE	I2C_BASE1
+
+struct i2c {
+	unsigned short revnb_lo;	/* 0x00 */
+	unsigned short res1;
+	unsigned short revnb_hi;	/* 0x04 */
+	unsigned short res2[13];
+	unsigned short sysc;		/* 0x20 */
+	unsigned short res3;
+	unsigned short irqstatus_raw;	/* 0x24 */
+	unsigned short res4;
+	unsigned short stat;		/* 0x28 */
+	unsigned short res5;
+	unsigned short ie;		/* 0x2C */
+	unsigned short res6;
+	unsigned short irqenable_clr;	/* 0x30 */
+	unsigned short res7;
+	unsigned short iv;		/* 0x34 */
+	unsigned short res8[45];
+	unsigned short syss;		/* 0x90 */
+	unsigned short res9;
+	unsigned short buf;		/* 0x94 */
+	unsigned short res10;
+	unsigned short cnt;		/* 0x98 */
+	unsigned short res11;
+	unsigned short data;		/* 0x9C */
+	unsigned short res13;
+	unsigned short res14;		/* 0xA0 */
+	unsigned short res15;
+	unsigned short con;		/* 0xA4 */
+	unsigned short res16;
+	unsigned short oa;		/* 0xA8 */
+	unsigned short res17;
+	unsigned short sa;		/* 0xAC */
+	unsigned short res18;
+	unsigned short psc;		/* 0xB0 */
+	unsigned short res19;
+	unsigned short scll;		/* 0xB4 */
+	unsigned short res20;
+	unsigned short sclh;		/* 0xB8 */
+	unsigned short res21;
+	unsigned short systest;		/* 0xBC */
+	unsigned short res22;
+	unsigned short bufstat;		/* 0xC0 */
+	unsigned short res23;
+};
+
+#define I2C_BUS_MAX	3
+
+/* I2C masks */
+
+/* I2C Interrupt Enable Register (I2C_IE): */
+#define I2C_IE_GC_IE	(1 << 5)
+#define I2C_IE_XRDY_IE	(1 << 4) /* Transmit data ready interrupt enable */
+#define I2C_IE_RRDY_IE	(1 << 3) /* Receive data ready interrupt enable */
+#define I2C_IE_ARDY_IE	(1 << 2) /* Register access ready interrupt enable */
+#define I2C_IE_NACK_IE	(1 << 1) /* No acknowledgment interrupt enable */
+#define I2C_IE_AL_IE	(1 << 0) /* Arbitration lost interrupt enable */
+
+/* I2C Status Register (I2C_STAT): */
+
+#define I2C_STAT_SBD	(1 << 15) /* Single byte data */
+#define I2C_STAT_BB	(1 << 12) /* Bus busy */
+#define I2C_STAT_ROVR	(1 << 11) /* Receive overrun */
+#define I2C_STAT_XUDF	(1 << 10) /* Transmit underflow */
+#define I2C_STAT_AAS	(1 << 9)  /* Address as slave */
+#define I2C_STAT_GC	(1 << 5)
+#define I2C_STAT_XRDY	(1 << 4)  /* Transmit data ready */
+#define I2C_STAT_RRDY	(1 << 3)  /* Receive data ready */
+#define I2C_STAT_ARDY	(1 << 2)  /* Register access ready */
+#define I2C_STAT_NACK	(1 << 1)  /* No acknowledgment interrupt enable */
+#define I2C_STAT_AL	(1 << 0)  /* Arbitration lost interrupt enable */
+
+/* I2C Interrupt Code Register (I2C_INTCODE): */
+
+#define I2C_INTCODE_MASK	7
+#define I2C_INTCODE_NONE	0
+#define I2C_INTCODE_AL		1	/* Arbitration lost */
+#define I2C_INTCODE_NAK		2	/* No acknowledgement/general call */
+#define I2C_INTCODE_ARDY	3	/* Register access ready */
+#define I2C_INTCODE_RRDY	4	/* Rcv data ready */
+#define I2C_INTCODE_XRDY	5	/* Xmit data ready */
+
+/* I2C Buffer Configuration Register (I2C_BUF): */
+
+#define I2C_BUF_RDMA_EN		(1 << 15) /* Receive DMA channel enable */
+#define I2C_BUF_XDMA_EN		(1 << 7)  /* Transmit DMA channel enable */
+
+/* I2C Configuration Register (I2C_CON): */
+
+#define I2C_CON_EN	(1 << 15)  /* I2C module enable */
+#define I2C_CON_BE	(1 << 14)  /* Big endian mode */
+#define I2C_CON_STB	(1 << 11)  /* Start byte mode (master mode only) */
+#define I2C_CON_MST	(1 << 10)  /* Master/slave mode */
+#define I2C_CON_TRX	(1 << 9)   /* Transmitter/receiver mode */
+				   /* (master mode only) */
+#define I2C_CON_XA	(1 << 8)   /* Expand address */
+#define I2C_CON_STP	(1 << 1)   /* Stop condition (master mode only) */
+#define I2C_CON_STT	(1 << 0)   /* Start condition (master mode only) */
+
+/* I2C System Test Register (I2C_SYSTEST): */
+
+#define I2C_SYSTEST_ST_EN	(1 << 15) /* System test enable */
+#define I2C_SYSTEST_FREE	(1 << 14) /* Free running mode, on brkpoint) */
+#define I2C_SYSTEST_TMODE_MASK	(3 << 12) /* Test mode select */
+#define I2C_SYSTEST_TMODE_SHIFT	(12)	  /* Test mode select */
+#define I2C_SYSTEST_SCL_I	(1 << 3)  /* SCL line sense input value */
+#define I2C_SYSTEST_SCL_O	(1 << 2)  /* SCL line drive output value */
+#define I2C_SYSTEST_SDA_I	(1 << 1)  /* SDA line sense input value */
+#define I2C_SYSTEST_SDA_O	(1 << 0)  /* SDA line drive output value */
+
+#define I2C_SCLL_SCLL		0
+#define I2C_SCLL_SCLL_M		0xFF
+#define I2C_SCLL_HSSCLL		8
+#define I2C_SCLH_HSSCLL_M	0xFF
+#define I2C_SCLH_SCLH		0
+#define I2C_SCLH_SCLH_M		0xFF
+#define I2C_SCLH_HSSCLH		8
+#define I2C_SCLH_HSSCLH_M	0xFF
+
+#define OMAP_I2C_STANDARD	100000
+#define OMAP_I2C_FAST_MODE	400000
+#define OMAP_I2C_HIGH_SPEED	3400000
+
+#define SYSTEM_CLOCK_12		12000000
+#define SYSTEM_CLOCK_13		13000000
+#define SYSTEM_CLOCK_192	19200000
+#define SYSTEM_CLOCK_96		96000000
+
+/* Use the reference value of 96MHz if not explicitly set by the board */
+#ifndef I2C_IP_CLK
+#define I2C_IP_CLK		SYSTEM_CLOCK_96
+#endif
+
+/*
+ * The reference minimum clock for high speed is 19.2MHz.
+ * The linux 2.6.30 kernel uses this value.
+ * The reference minimum clock for fast mode is 9.6MHz
+ * The reference minimum clock for standard mode is 4MHz
+ * In TRM, the value of 12MHz is used.
+ */
+#ifndef I2C_INTERNAL_SAMPLING_CLK
+#define I2C_INTERNAL_SAMPLING_CLK	19200000
+#endif
+
+/*
+ * The equation for the low and high time is
+ * tlow = scll + scll_trim = (sampling clock * tlow_duty) / speed
+ * thigh = sclh + sclh_trim = (sampling clock * (1 - tlow_duty)) / speed
+ *
+ * If the duty cycle is 50%
+ *
+ * tlow = scll + scll_trim = sampling clock / (2 * speed)
+ * thigh = sclh + sclh_trim = sampling clock / (2 * speed)
+ *
+ * In TRM
+ * scll_trim = 7
+ * sclh_trim = 5
+ *
+ * The linux 2.6.30 kernel uses
+ * scll_trim = 6
+ * sclh_trim = 6
+ *
+ * These are the trim values for standard and fast speed
+ */
+#ifndef I2C_FASTSPEED_SCLL_TRIM
+#define I2C_FASTSPEED_SCLL_TRIM		6
+#endif
+#ifndef I2C_FASTSPEED_SCLH_TRIM
+#define I2C_FASTSPEED_SCLH_TRIM		6
+#endif
+
+/* These are the trim values for high speed */
+#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM
+#define I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM
+#define I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM
+#define I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM
+#define I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
+#endif
+
+#define I2C_PSC_MAX		0x0f
+#define I2C_PSC_MIN		0x00
+
+#endif /* _I2C_H_ */
drivers/i2c/omap24xx_i2c.c +12 -3
index ff18991..0ff18af 100644
@@ -176,7 +176,8 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
 
 		status = wait_for_pin ();
 		if (status & I2C_STAT_RRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			*value = readb (&i2c_base->data);
 #else
 			*value = readw (&i2c_base->data);
@@ -221,7 +222,8 @@ static int i2c_write_byte (u8 devaddr, u8 regoffset, u8 value)
 	status = wait_for_pin ();
 
 	if (status & I2C_STAT_XRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 		/* send out 1 byte */
 		writeb (regoffset, &i2c_base->data);
 		writew (I2C_STAT_XRDY, &i2c_base->stat);
@@ -274,7 +276,8 @@ static void flush_fifo(void)
 	while(1){
 		stat = readw(&i2c_base->stat);
 		if(stat == I2C_STAT_RRDY){
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			readb(&i2c_base->data);
 #else
 			readw(&i2c_base->data);
@@ -435,3 +438,9 @@ int i2c_set_bus_num(unsigned int bus)
 
 	return 0;
 }
+
+int i2c_get_bus_num(void)
+{
+	return (int) current_bus;
+}
+
Signature · 1 line
1.7.0.4
#14 lore raw

PATCH 8/10 ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4

Hello Steve,

Quoted 15 lines · Steve Sakoman

This patch modifies the omap24xx driver so that it will also work with OMAP4.

---
 arch/arm/include/asm/arch-omap4/i2c.h |  215 +++++++++++++++++++++++++++++++++
 drivers/i2c/omap24xx_i2c.c            |   15 ++-
 2 files changed, 227 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
arch/arm/include/asm/arch-omap4/i2c.h new file +0 -0
new file mode 100644
index 0000000..e1f578f

arch/arm/include/asm/arch-omap4/i2c.h line 2

Quoted 2 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +2 -0
@@ -0,0 +1,215 @@
+/*
+ * (C) Copyright 2004-2008

2010 ?

Quoted 12 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +12 -0
+ * Texas Instruments, <www.ti.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of

arch/arm/include/asm/arch-omap4/i2c.h line 24

Quoted 10 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +10 -0
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _I2C_H_
+#define _I2C_H_

Please use another name, _I2C_H_ is used in include/i2c.h

What with

#define _OMAP4_I2C_H_

?

Quoted 49 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +49 -0
+
+#define I2C_DEFAULT_BASE	I2C_BASE1
+
+struct i2c {
+	unsigned short revnb_lo;	/* 0x00 */
+	unsigned short res1;
+	unsigned short revnb_hi;	/* 0x04 */
+	unsigned short res2[13];
+	unsigned short sysc;		/* 0x20 */
+	unsigned short res3;
+	unsigned short irqstatus_raw;	/* 0x24 */
+	unsigned short res4;
+	unsigned short stat;		/* 0x28 */
+	unsigned short res5;
+	unsigned short ie;		/* 0x2C */
+	unsigned short res6;
+	unsigned short irqenable_clr;	/* 0x30 */
+	unsigned short res7;
+	unsigned short iv;		/* 0x34 */
+	unsigned short res8[45];
+	unsigned short syss;		/* 0x90 */
+	unsigned short res9;
+	unsigned short buf;		/* 0x94 */
+	unsigned short res10;
+	unsigned short cnt;		/* 0x98 */
+	unsigned short res11;
+	unsigned short data;		/* 0x9C */
+	unsigned short res13;
+	unsigned short res14;		/* 0xA0 */
+	unsigned short res15;
+	unsigned short con;		/* 0xA4 */
+	unsigned short res16;
+	unsigned short oa;		/* 0xA8 */
+	unsigned short res17;
+	unsigned short sa;		/* 0xAC */
+	unsigned short res18;
+	unsigned short psc;		/* 0xB0 */
+	unsigned short res19;
+	unsigned short scll;		/* 0xB4 */
+	unsigned short res20;
+	unsigned short sclh;		/* 0xB8 */
+	unsigned short res21;
+	unsigned short systest;		/* 0xBC */
+	unsigned short res22;
+	unsigned short bufstat;		/* 0xC0 */
+	unsigned short res23;
+};
+
+#define I2C_BUS_MAX	3

arch/arm/include/asm/arch-omap4/i2c.h line 83

Quoted 10 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +10 -0
+
+/* I2C masks */
+
+/* I2C Interrupt Enable Register (I2C_IE): */
+#define I2C_IE_GC_IE	(1 << 5)
+#define I2C_IE_XRDY_IE	(1 << 4) /* Transmit data ready interrupt enable */
+#define I2C_IE_RRDY_IE	(1 << 3) /* Receive data ready interrupt enable */
+#define I2C_IE_ARDY_IE	(1 << 2) /* Register access ready interrupt enable */
+#define I2C_IE_NACK_IE	(1 << 1) /* No acknowledgment interrupt enable */
+#define I2C_IE_AL_IE	(1 << 0) /* Arbitration lost interrupt enable */

This seems identical to me to the defines in

arch/arm/include/asm/arch-omap24xx/i2c.h and
arch/arm/include/asm/arch-omap3/i2c.h

Instead of making here a third copy of this defines, we should make a common omap i2c.h file, which collects all common defines, and only add in this file here the specific defines.

This applies to a lot of defines below. Please
clean up, thanks!

Quoted 167 lines
arch/arm/include/asm/arch-omap4/i2c.h new file +132 -0
+
+/* I2C Status Register (I2C_STAT): */
+
+#define I2C_STAT_SBD	(1 << 15) /* Single byte data */
+#define I2C_STAT_BB	(1 << 12) /* Bus busy */
+#define I2C_STAT_ROVR	(1 << 11) /* Receive overrun */
+#define I2C_STAT_XUDF	(1 << 10) /* Transmit underflow */
+#define I2C_STAT_AAS	(1 << 9)  /* Address as slave */
+#define I2C_STAT_GC	(1 << 5)
+#define I2C_STAT_XRDY	(1 << 4)  /* Transmit data ready */
+#define I2C_STAT_RRDY	(1 << 3)  /* Receive data ready */
+#define I2C_STAT_ARDY	(1 << 2)  /* Register access ready */
+#define I2C_STAT_NACK	(1 << 1)  /* No acknowledgment interrupt enable */
+#define I2C_STAT_AL	(1 << 0)  /* Arbitration lost interrupt enable */
+
+/* I2C Interrupt Code Register (I2C_INTCODE): */
+
+#define I2C_INTCODE_MASK	7
+#define I2C_INTCODE_NONE	0
+#define I2C_INTCODE_AL		1	/* Arbitration lost */
+#define I2C_INTCODE_NAK		2	/* No acknowledgement/general call */
+#define I2C_INTCODE_ARDY	3	/* Register access ready */
+#define I2C_INTCODE_RRDY	4	/* Rcv data ready */
+#define I2C_INTCODE_XRDY	5	/* Xmit data ready */
+
+/* I2C Buffer Configuration Register (I2C_BUF): */
+
+#define I2C_BUF_RDMA_EN		(1 << 15) /* Receive DMA channel enable */
+#define I2C_BUF_XDMA_EN		(1 << 7)  /* Transmit DMA channel enable */
+
+/* I2C Configuration Register (I2C_CON): */
+
+#define I2C_CON_EN	(1 << 15)  /* I2C module enable */
+#define I2C_CON_BE	(1 << 14)  /* Big endian mode */
+#define I2C_CON_STB	(1 << 11)  /* Start byte mode (master mode only) */
+#define I2C_CON_MST	(1 << 10)  /* Master/slave mode */
+#define I2C_CON_TRX	(1 << 9)   /* Transmitter/receiver mode */
+				   /* (master mode only) */
+#define I2C_CON_XA	(1 << 8)   /* Expand address */
+#define I2C_CON_STP	(1 << 1)   /* Stop condition (master mode only) */
+#define I2C_CON_STT	(1 << 0)   /* Start condition (master mode only) */
+
+/* I2C System Test Register (I2C_SYSTEST): */
+
+#define I2C_SYSTEST_ST_EN	(1 << 15) /* System test enable */
+#define I2C_SYSTEST_FREE	(1 << 14) /* Free running mode, on brkpoint) */
+#define I2C_SYSTEST_TMODE_MASK	(3 << 12) /* Test mode select */
+#define I2C_SYSTEST_TMODE_SHIFT	(12)	  /* Test mode select */
+#define I2C_SYSTEST_SCL_I	(1 << 3)  /* SCL line sense input value */
+#define I2C_SYSTEST_SCL_O	(1 << 2)  /* SCL line drive output value */
+#define I2C_SYSTEST_SDA_I	(1 << 1)  /* SDA line sense input value */
+#define I2C_SYSTEST_SDA_O	(1 << 0)  /* SDA line drive output value */
+
+#define I2C_SCLL_SCLL		0
+#define I2C_SCLL_SCLL_M		0xFF
+#define I2C_SCLL_HSSCLL		8
+#define I2C_SCLH_HSSCLL_M	0xFF
+#define I2C_SCLH_SCLH		0
+#define I2C_SCLH_SCLH_M		0xFF
+#define I2C_SCLH_HSSCLH		8
+#define I2C_SCLH_HSSCLH_M	0xFF
+
+#define OMAP_I2C_STANDARD	100000
+#define OMAP_I2C_FAST_MODE	400000
+#define OMAP_I2C_HIGH_SPEED	3400000
+
+#define SYSTEM_CLOCK_12		12000000
+#define SYSTEM_CLOCK_13		13000000
+#define SYSTEM_CLOCK_192	19200000
+#define SYSTEM_CLOCK_96		96000000
+
+/* Use the reference value of 96MHz if not explicitly set by the board */
+#ifndef I2C_IP_CLK
+#define I2C_IP_CLK		SYSTEM_CLOCK_96
+#endif
+
+/*
+ * The reference minimum clock for high speed is 19.2MHz.
+ * The linux 2.6.30 kernel uses this value.
+ * The reference minimum clock for fast mode is 9.6MHz
+ * The reference minimum clock for standard mode is 4MHz
+ * In TRM, the value of 12MHz is used.
+ */
+#ifndef I2C_INTERNAL_SAMPLING_CLK
+#define I2C_INTERNAL_SAMPLING_CLK	19200000
+#endif
+
+/*
+ * The equation for the low and high time is
+ * tlow = scll + scll_trim = (sampling clock * tlow_duty) / speed
+ * thigh = sclh + sclh_trim = (sampling clock * (1 - tlow_duty)) / speed
+ *
+ * If the duty cycle is 50%
+ *
+ * tlow = scll + scll_trim = sampling clock / (2 * speed)
+ * thigh = sclh + sclh_trim = sampling clock / (2 * speed)
+ *
+ * In TRM
+ * scll_trim = 7
+ * sclh_trim = 5
+ *
+ * The linux 2.6.30 kernel uses
+ * scll_trim = 6
+ * sclh_trim = 6
+ *
+ * These are the trim values for standard and fast speed
+ */
+#ifndef I2C_FASTSPEED_SCLL_TRIM
+#define I2C_FASTSPEED_SCLL_TRIM		6
+#endif
+#ifndef I2C_FASTSPEED_SCLH_TRIM
+#define I2C_FASTSPEED_SCLH_TRIM		6
+#endif
+
+/* These are the trim values for high speed */
+#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM
+#define I2C_HIGHSPEED_PHASE_ONE_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM
+#define I2C_HIGHSPEED_PHASE_ONE_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM
+#define I2C_HIGHSPEED_PHASE_TWO_SCLL_TRIM	I2C_FASTSPEED_SCLL_TRIM
+#endif
+#ifndef I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM
+#define I2C_HIGHSPEED_PHASE_TWO_SCLH_TRIM	I2C_FASTSPEED_SCLH_TRIM
+#endif
+
+#define I2C_PSC_MAX		0x0f
+#define I2C_PSC_MIN		0x00
+
+#endif /* _I2C_H_ */
drivers/i2c/omap24xx_i2c.c +6 -3
index ff18991..0ff18af 100644
@@ -176,7 +176,8 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value)
 
 		status = wait_for_pin ();
 		if (status & I2C_STAT_RRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			*value = readb (&i2c_base->data);
 #else
 			*value = readw (&i2c_base->data);
@@ -221,7 +222,8 @@ static int i2c_write_byte (u8 devaddr, u8 regoffset, u8 value)
 	status = wait_for_pin ();
 
 	if (status & I2C_STAT_XRDY) {
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 		/* send out 1 byte */
 		writeb (regoffset, &i2c_base->data);
 		writew (I2C_STAT_XRDY, &i2c_base->stat);
@@ -274,7 +276,8 @@ static void flush_fifo(void)
 	while(1){
 		stat = readw(&i2c_base->stat);
 		if(stat == I2C_STAT_RRDY){
-#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX) || \
+    defined(CONFIG_OMAP44XX)
 			readb(&i2c_base->data);
 #else
 			readw(&i2c_base->data);

drivers/i2c/omap24xx_i2c.c int i2c_set_bus_num(unsigned int bus) · line 446

Quoted 9 lines
drivers/i2c/omap24xx_i2c.c +6 -0
@@ -435,3 +438,9 @@ int i2c_set_bus_num(unsigned int bus)
 
 	return 0;
 }
+
+int i2c_get_bus_num(void)
+{
+	return (int) current_bus;
+}
+

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#15 lore raw

PATCH 8/10 ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4

Quoted 7 lines · Heiko Schocher

Instead of making here a third copy of this defines, we should make a common omap i2c.h file, which collects all common defines, and only add in this file here the specific defines.

This applies to a lot of defines below. Please
clean up, thanks!

Thanks for the comments. I made the changes and I'm preparing a version 2 patch.

A quick procedure question. Should I post individual version 2 patch replies for each patch in the series that has received comments, or is it preferred to post a complete version 2 series? I see both approaches used on the list so I'm a bit confused which is proper.

Steve

#16 lore raw

PATCH 8/10 ARMV7: Restructure OMAP i2c driver to allow code sharing between OMAP3 and OMAP4

Hello Steve,

Quoted 7 lines · Steve Sakoman
Quoted 5 lines · Heiko Schocher

Instead of making here a third copy of this defines, we should make a common omap i2c.h file, which collects all common defines, and only add in this file here the specific defines.

Quoted 5 lines
Quoted 2 lines

This applies to a lot of defines below. Please
clean up, thanks!

Thanks for the comments. I made the changes and I'm preparing a version 2 patch.

Thanks.

Quoted 4 lines

A quick procedure question. Should I post individual version 2 patch replies for each patch in the series that has received comments, or is it preferred to post a complete version 2 series? I see both approaches used on the list so I'm a bit confused which is proper.

I have no preference, both seems Ok to me. Say you have to make for some patches a version 2, 3, 4 and they fit together with lower versions from other patches from your patch series, it is okay to post only individual versions, but the complexity can grow, mainline code changes, so it could make sense to post the complete patch series again.

bye
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#17 lore raw

PATCH 9/10 ARMV7: Enable i2c support on TI OMAP4 SDP

In reply to Steve Sakoman

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

Signed-off-by Steve Sakoman
---
 include/configs/omap4_sdp4430.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
include/configs/omap4_sdp4430.h +10 -0
index 3a14d34..8121554 100644
@@ -94,6 +94,15 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* I2C  */
+#define CONFIG_HARD_I2C			1
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SLAVE		1
+#define CONFIG_SYS_I2C_BUS		0
+#define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_DRIVER_OMAP34XX_I2C	1
+#define CONFIG_I2C_MULTI_BUS		1
+
 /* MMC */
 #define CONFIG_MMC			1
 #define CONFIG_OMAP3_MMC		1
@@ -109,6 +118,7 @@
 /* Enabled commands */
 #define CONFIG_CMD_EXT2		/* EXT2 Support                 */
 #define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
 #define CONFIG_CMD_MMC		/* MMC support                  */
 
 /* Disabled commands */
Signature · 1 line
1.7.0.4
#18 lore raw

PATCH 9/10 ARMV7: Enable i2c support on TI OMAP4 SDP

Hello Steve,

Quoted 3 lines · Steve Sakoman

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

Signed-off-by Steve Sakoman

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#19 lore raw

PATCH 10/10 ARMV7: Enable i2c support on TI OMAP4 Panda

In reply to Steve Sakoman

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

---
 include/configs/omap4_panda.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
include/configs/omap4_panda.h +10 -0
index 9302ecb..a15c5f5 100644
@@ -93,6 +93,15 @@
 #define CONFIG_SYS_BAUDRATE_TABLE	{4800, 9600, 19200, 38400, 57600,\
 					115200}
 
+/* I2C  */
+#define CONFIG_HARD_I2C			1
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SLAVE		1
+#define CONFIG_SYS_I2C_BUS		0
+#define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_DRIVER_OMAP34XX_I2C	1
+#define CONFIG_I2C_MULTI_BUS		1
+
 /* MMC */
 #define CONFIG_MMC			1
 #define CONFIG_OMAP3_MMC		1
@@ -108,6 +117,7 @@
 /* Enabled commands */
 #define CONFIG_CMD_EXT2		/* EXT2 Support                 */
 #define CONFIG_CMD_FAT		/* FAT support                  */
+#define CONFIG_CMD_I2C		/* I2C serial bus support	*/
 #define CONFIG_CMD_MMC		/* MMC support                  */
 
 /* Disabled commands */
Signature · 1 line
1.7.0.4
#20 lore raw

PATCH 10/10 ARMV7: Enable i2c support on TI OMAP4 Panda

Hello Steve,

Quoted 3 lines · Steve Sakoman

This patch enables the i2c driver, i2c commands, and i2c multi-bus support

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#21 lore raw

cover Add support for TI OMAP4 SDP and Panda

In reply to Steve Sakoman

I have no omap4 hw yet so I can't test this but I have build-tested this series of patches via MAKEALL with all omap[34] targets. Also verified that still works on Beagle.

Quoted 182 lines · Steve Sakoman

Note: I am taking over patch submission for OMAP4 from Aneesh.

Since I have restructured the patches significantly it is not quite accurate to call this version 2. I have, however, taken into account all of the feedback that was given on Aneesh's original patch set.

The folowing series adds support for two boards based upon the TI OMAP4430. The OMAP4430 is a Cortex-A9 based SOC from TI.

The first patch in this series renames the cpu arm_cortexa8 to armv7 so that the existing cortex A8 code can be shared with cortex A9. Both A8 and A9 are based on ARMV7 architecture.

The 2nd patch adds basic OMAP4 architecture support.

The 3rd and 4th patches add minimal board support for the Panda and SDP.

The 5th patch restructures the OMAP mmc driver code so that it can be shared by both OMAP3 and OMAP4 boards. This patch depends on a previously submitted patch (OMAP: mmc: add support for second and third mmc channel):

http://www.mail-archive.com/u-boot at lists.denx.de/msg31765.html

The 6th and 7th patches add mmc support for Panda and SDP.

The 8th patch restructures the OMAP i2c code so that it can be shared by both OMAP3 and OMAP4 boards.

And, finally, the 9th and 10th patches add i2c support for Panda and SDP.

---

Steve Sakoman (10):
ARM: Rename arch/arm/cpu/arm_cortexa8 to armv7
ARMV7: Add basic support for TI OMAP4
ARMV7: Add support for TI OMAP4430 SDP
ARMV7: Add support for TI OMAP4 Panda
ARMV7: Restructure OMAP mmc driver to allow code sharing between
OMAP3 and OMAP4
ARMV7: Enable mmc support on TI OMAP4430 SDP
ARMV7: Enable mmc support on TI OMAP4 Panda
ARMV7: Restructure OMAP i2c driver to allow code sharing between
OMAP3 and OMAP4
ARMV7: Enable i2c support on TI OMAP4 SDP
ARMV7: Enable i2c support on TI OMAP4 Panda

 MAINTAINERS                                        |   20 +-
 MAKEALL                                            |   10 +-
 Makefile                                           |   35 ++-
 arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile      |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk     |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c         |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c  |    0
 .../{arm_cortexa8 => armv7}/mx51/lowlevel_init.S   |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c  |    0
 .../cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds    |    2 +-
 .../mx51 => armv7/omap-common}/Makefile            |   10 +-
 .../{arm_cortexa8 => armv7/omap-common}/config.mk  |    0
 .../omap3 => armv7/omap-common}/reset.S            |    0
 .../omap3 => armv7/omap-common}/timer.c            |    5 +
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile |    2 -
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c  |    0
 .../{arm_cortexa8 => armv7}/omap3/lowlevel_init.S  |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c   |    0
 .../cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c   |    0
 .../arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c |    0
 .../{arm_cortexa8/omap3 => armv7/omap4}/Makefile   |   11 +-
 arch/arm/cpu/armv7/omap4/board.c                   |   91 ++++++++
 .../mx51/speed.c => armv7/omap4/lowlevel_init.S}   |   39 ++--
 .../mx51/speed.c => armv7/omap4/sys_info.c}        |   45 +++--
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile   |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S    |    2 +-
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c    |    0
 .../cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c    |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/start.S       |    0
 arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds    |    2 +-
 arch/arm/include/asm/arch-mx51/asm-offsets.h       |    2 +-
 arch/arm/include/asm/arch-omap4/cpu.h              |   94 +++++++++
 arch/arm/include/asm/arch-omap4/i2c.h              |  215
+++++++++++++++++++
 arch/arm/include/asm/arch-omap4/mmc_host_def.h     |  171 +++++++++++++++
 arch/arm/include/asm/arch-omap4/omap4.h            |  118 +++++++++++
 .../speed.c => include/asm/arch-omap4/sys_proto.h} |   34 ++--
 board/logicpd/zoom2/zoom2.c                        |    2 +-
 .../cpu/arm_cortexa8 => board/ti/panda}/Makefile   |   24 ++-
 .../cpu/arm_cortexa8 => board/ti/panda}/config.mk  |   25 +--
 .../u-boot.lds => board/ti/panda/panda.c           |   65 +++---
 .../cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile |   24 ++-
 .../arm_cortexa8 => board/ti/sdp4430}/config.mk    |   25 +--
 .../u-boot.lds => board/ti/sdp4430/sdp.c           |   66 +++---
 drivers/i2c/omap24xx_i2c.c                         |   15 +-
 drivers/mmc/omap3_mmc.c                            |   13 +-
 .../arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h    |    2 +-
 include/configs/devkit8000.h                       |    2 +-
 include/configs/omap3_beagle.h                     |    2 +-
 include/configs/omap3_evm.h                        |    2 +-
 include/configs/omap3_overo.h                      |    2 +-
 include/configs/omap3_pandora.h                    |    2 +-
 include/configs/omap3_sdp3430.h                    |    2 +-
 include/configs/omap3_zoom1.h                      |    2 +-
 include/configs/omap3_zoom2.h                      |    2 +-
 include/configs/omap4_panda.h                      |  220
+++++++++++++++++++
 include/configs/omap4_sdp4430.h                    |  221
++++++++++++++++++++
 include/configs/smdkc100.h                         |    2 +-
 67 files changed, 1406 insertions(+), 222 deletions(-)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/Makefile (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/cpu.c (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/iomux.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/soc.c (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/speed.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/mx51/u-boot.lds (97%)
 rename arch/arm/cpu/{arm_cortexa8/mx51 => armv7/omap-common}/Makefile
(87%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7/omap-common}/config.mk (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/reset.S
(100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap-common}/timer.c
(96%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/Makefile (97%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/board.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/cache.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/gpio.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/lowlevel_init.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/mem.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/sys_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/omap3/syslib.c (100%)
 rename arch/arm/cpu/{arm_cortexa8/omap3 => armv7/omap4}/Makefile (88%)
 create mode 100644 arch/arm/cpu/armv7/omap4/board.c
 copy arch/arm/cpu/{arm_cortexa8/mx51/speed.c =>
armv7/omap4/lowlevel_init.S} (66%)
 copy arch/arm/cpu/{arm_cortexa8/mx51/speed.c => armv7/omap4/sys_info.c}
(57%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/Makefile (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cache.S (98%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/clock.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/cpu_info.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/reset.S (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/sromc.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/s5pc1xx/timer.c (100%)
 rename arch/arm/cpu/{arm_cortexa8 => armv7}/start.S (100%)
 copy arch/arm/cpu/{arm_cortexa8 => armv7}/u-boot.lds (97%)
 create mode 100644 arch/arm/include/asm/arch-omap4/cpu.h
 create mode 100644 arch/arm/include/asm/arch-omap4/i2c.h
 create mode 100644 arch/arm/include/asm/arch-omap4/mmc_host_def.h
 create mode 100644 arch/arm/include/asm/arch-omap4/omap4.h
 rename arch/arm/{cpu/arm_cortexa8/mx51/speed.c =>
include/asm/arch-omap4/sys_proto.h} (60%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/Makefile (79%)
 copy {arch/arm/cpu/arm_cortexa8 => board/ti/panda}/config.mk (54%)
 copy arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/panda/panda.c (53%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/Makefile (79%)
 rename {arch/arm/cpu/arm_cortexa8 => board/ti/sdp4430}/config.mk (54%)
 rename arch/arm/cpu/arm_cortexa8/u-boot.lds => board/ti/sdp4430/sdp.c
(52%)
 rename arch/arm/include/asm/arch-omap3/mmc.h => drivers/mmc/omap3_mmc.h
(99%)
 create mode 100644 include/configs/omap4_panda.h
 create mode 100644 include/configs/omap4_sdp4430.h

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#22 lore raw

cover Add support for TI OMAP4 SDP and Panda

In reply to Steve Sakoman
Quoted 18 lines

Note: I am taking over patch submission for OMAP4 from Aneesh.

Since I have restructured the patches significantly it is not quite accurate to call this version 2. I have, however, taken into account all of the feedback that was given on Aneesh's original patch set.

The folowing series adds support for two boards based upon the TI OMAP4430. The OMAP4430 is a Cortex-A9 based SOC from TI.

The first patch in this series renames the cpu arm_cortexa8 to armv7 so that the existing cortex A8 code can be shared with cortex A9. Both A8 and A9 are based on ARMV7 architecture.

The 2nd patch adds basic OMAP4 architecture support.

Quoted 7 lines

The 3rd and 4th patches add minimal board support for the Panda and SDP.

The 5th patch restructures the OMAP mmc driver code so that it can be shared by both OMAP3 and OMAP4 boards. This patch depends on a previously submitted patch (OMAP: mmc: add support for second and third mmc channel):

http://www.mail-archive.com/u-boot at lists.denx.de/msg31765.html

This patch was Acked sometime back but does not seem to be part of u-boot-mmc or Wolfgang's tree.

Quoted 9 lines

The 6th and 7th patches add mmc support for Panda and SDP.

The 8th patch restructures the OMAP i2c code so that it can be shared by both OMAP3 and OMAP4 boards.

And, finally, the 9th and 10th patches add i2c support for Panda and SDP.

---