ARM: OMAP: Board updates and additions for OMAP2
Tony Lindgren
maintainercover ARM: OMAP: Board updates and additions for OMAP2
Hi,
The following patch series contains updates board updates and additions for OMAP2 code.
This is take #2 of the earlier 90 patch mountain, which has been split into six smaller series.
Regards,
Tony
Tony Lindgren
maintainerPATCH 1/7 ARM: OMAP: USB peripheral support on H4
From: David Brownell <[email protected]>
H4 has two peripheral ports, one for "download" and one for OTG. The one to use is selected through Kconfig.
--- arch/arm/mach-omap2/Kconfig | 21 ++++++++++++++++++ arch/arm/mach-omap2/board-h4.c | 46 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/Kconfig +21 -0
@@ -27,6 +27,27 @@ config MACH_OMAP_H4 depends on ARCH_OMAP2 && ARCH_OMAP24XX select OMAP_DEBUG_DEVICES +config MACH_OMAP_H4_OTG + bool "Use USB OTG connector, not device connector (S1.10)" + depends on MACH_OMAP_H4 + help + Set this if you've set S1.10 (on the mainboard) to use the + Mini-AB (OTG) connector and OTG transceiver with the USB0 + port, instead of the Mini-B ("download") connector with its + non-OTG transceiver. + + Note that the "download" connector can be used to bootstrap + the system from the OMAP mask ROM. Also, since this is a + development platform, you can also force the OTG port into + a non-OTG operational mode. + +config MACH_OMAP2_H4_USB1 + bool "Use USB1 port, not UART2 (S3.3)" + depends on MACH_OMAP_H4 + help + Set this if you've set SW3.3 (on the CPU card) so that the + expansion connectors receive USB1 signals instead of UART2. + config MACH_OMAP_APOLLON bool "OMAP 2420 Apollon board" depends on ARCH_OMAP2 && ARCH_OMAP24XX
arch/arm/mach-omap2/board-h4.c +46 -0
69 lines not on this page · raw message
Tony Lindgren
maintainerPATCH 2/7 ARM: OMAP: Fix typo in board-h4.h
From: Komal Shah <[email protected]>
Replace OMAP1610 with OMAP2420.
--- include/asm-arm/arch-omap/board-h4.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
include/asm-arm/arch-omap/board-h4.h +1 -1
@@ -1,7 +1,7 @@/* * linux/include/asm-arm/arch-omap/board-h4.h * -* Hardware definitions for TI OMAP1610 H4 board. +* Hardware definitions for TI OMAP2420 H4 board. * * Initial creation by Dirk Behme <[email protected]> *
Signature · 1 line
1.4.4.2
Tony Lindgren
maintainerPATCH 3/7 ARM: OMAP: Sync H4 board init with linux-omap
This patch syncs H4 board init with linux-omap tree.
--- arch/arm/mach-omap2/board-h4.c | 180 +++++++++++++++++++++++++++++++-- 10 files changed, 380 insertions(+), 176 deletions(-)
arch/arm/mach-omap2/board-h4.c +170 -10
@@ -19,6 +19,8 @@#include <linux/delay.h> #include <linux/workqueue.h> #include <linux/input.h> +#include <linux/err.h> +#include <linux/clk.h> #include <asm/hardware.h> #include <asm/mach-types.h>
@@ -36,10 +38,14 @@#include <asm/arch/keypad.h> #include <asm/arch/menelaus.h> #include <asm/arch/dma.h> +#include <asm/arch/gpmc.h> #include "prcm-regs.h" #include <asm/io.h> +#define H4_FLASH_CS 0 +#define H4_SMC91X_CS 1 +static unsigned int row_gpios[6 ] = {88 ,89 ,124 ,11 ,6 ,96 };static unsigned int col_gpios[7 ] = {90 ,91 ,100 ,36 ,12 ,97 ,98 };
@@ -116,8 +122,6 @@ static struct flash_platform_data h4_flash_data = { };static struct resource h4_flash_resource = { - .start =H4_CS0_BASE , - .end =H4_CS0_BASE +SZ_64M -1 , .flags =IORESOURCE_MEM , };
@@ -133,6 +137,7 @@ static struct platform_device h4_flash_device = {/* Select between the IrDA and aGPS module */ +#if defined(CONFIG_OMAP_IR ) || defined(CONFIG_OMAP_IR_MODULE )static int h4_select_irda (struct device *dev,int state) {unsigned char expa;
@@ -192,6 +197,10 @@ static int h4_transceiver_mode(struct device *dev, int mode)return 0 ; } +#else +static int h4_select_irda (struct device *dev,int state) {return 0 ; } +static int h4_transceiver_mode (struct device *dev,int mode) {return 0 ; } +#endif static struct omap_irda_config h4_irda_data = { .transceiver_cap =IR_SIRMODE |IR_MIRMODE |IR_FIRMODE ,
@@ -253,16 +262,80 @@ static struct platform_device *h4_devices[] __initdata = { &h4_lcd_device, }; +/* 2420 Sysboot setup (2430 is different) */ +static u32 get_sysboot_value (void ) +{ +return (omap_readl (OMAP242X_CONTROL_STATUS ) &0xFFF ); +} + +/* FIXME: This function should be moved to some other file, gpmc.c? */ + +/* H4-2420's always used muxed mode, H4-2422's always use non-muxed +* +* Note: OMAP-GIT doesn't correctly do is_cpu_omap2422 and is_cpu_omap2423 +* correctly. The macro needs to look at production_id not just hawkeye. +*/ +static u32 is_gpmc_muxed (void ) +{ +u32 mux; + mux =get_sysboot_value (); +if ((mux &0xF ) ==0xd ) +return 1 ;/* NAND config (could be either) */ +if (mux &0x2 )/* if mux'ed */ +return 1 ; +else +return 0 ; +} +static inline void __init h4_init_debug (void ) { +int eth_cs; +unsigned long cs_mem_base; +unsigned int muxed, rate; +struct clk *l3ck; + + eth_cs =H4_SMC91X_CS ; + + l3ck =clk_get (NULL ,"core_l3_ck" ); +if (IS_ERR (l3ck)) + rate =100000000 ; +else + rate =clk_get_rate (l3ck); + +if (is_gpmc_muxed ()) + muxed =0x200 ; +else + muxed =0 ; +/* Make sure CS1 timings are correct */ -GPMC_CONFIG1_1 =0x00011200 ; -GPMC_CONFIG2_1 =0x001f1f01 ; -GPMC_CONFIG3_1 =0x00080803 ; -GPMC_CONFIG4_1 =0x1c091c09 ; -GPMC_CONFIG5_1 =0x041f1f1f ; -GPMC_CONFIG6_1 =0x000004c4 ; -GPMC_CONFIG7_1 =0x00000f40 | (0x08000000 >>24 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG1 , +0x00011000 | muxed); + +if (rate >=160000000 ) { +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f01 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080803 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1c0b1c0a ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x041f1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000004C4 ); + }else if (rate >=130000000 ) { +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f00 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080802 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1C091C09 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x041f1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000004C4 ); + }else {/* rate = 100000000 */ +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f00 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080802 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1C091C09 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x031A1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000003C2 ); + } + +if (gpmc_cs_request (eth_cs,SZ_16M , &cs_mem_base) <0 ) { +printk (KERN_ERR "Failed to request GPMC mem for smc91x\n" ); +return ; + } +udelay (100 );omap_cfg_reg (M15_24XX_GPIO92 );
@@ -270,11 +343,24 @@ static inline void __init h4_init_debug(void)gpmc_cs_free (eth_cs); } +static void __init h4_init_flash (void ) +{ +unsigned long base; + +if (gpmc_cs_request (H4_FLASH_CS ,SZ_64M , &base) <0 ) { +printk ("Can't request GPMC CS for flash\n" ); +return ; + } + h4_flash_resource.start = base; + h4_flash_resource.end = base +SZ_64M -1 ; +} +static void __init omap_h4_init_irq (void ) {omap2_init_common_hw ();omap_init_irq ();omap_gpio_init (); +h4_init_flash (); }static struct omap_uart_config h4_uart_config__initdata = {
@@ -336,9 +422,75 @@ static struct omap_board_config_kernel h4_config[] = { { OMAP_TAG_UART, &h4_uart_config }, { OMAP_TAG_MMC, &h4_mmc_config }, { OMAP_TAG_LCD, &h4_lcd_config }, - { OMAP_TAG_USB, &h4_usb_config }, + { OMAP_TAG_USB, &h4_usb_config }, }; +#ifdef CONFIG_MACH_OMAP_H4_TUSB + +#include <linux/usb/musb.h> + +static struct musb_hdrc_platform_data tusb_data = { + .mode =MUSB_OTG , + .min_power =25 ,/* x2 = 50 mA drawn from VBUS as peripheral */ + +/* 1.8V supplied by Menelaus, other voltages supplied by VBAT; +* so no switching. +*/ +}; + +static void __init tusb_evm_setup (void ) +{ +static char announce[]__initdata = +KERN_INFO "TUSB 6010 EVM\n" ; +int irq; +unsigned dmachan =0 ; + +/* There are at least 32 different combinations of boards that +* are loosely called "H4", with a 2420 ... different OMAP chip +* revisions (with pin mux changes for DMAREQ, GPMC errata, etc), +* modifications of the CPU board, mainboard, EVM, TUSB etc. +* Plus omap2422, omap2423, etc. +* +* So you might need to tweak this setup to make the TUSB EVM +* behave on your particular setup ... +*/ + +/* Already set up: GPMC AD[0..15], CLK, nOE, nWE, nADV_ALE */ +omap_cfg_reg (E2_GPMC_NCS2 ); +omap_cfg_reg (L2_GPMC_NCS7 ); +omap_cfg_reg (M1_GPMC_WAIT2 ); + +switch ((system_rev >>8 ) &0x0f ) { +case 0 :/* ES 1.0 */ +case 1 :/* ES 2.0 */ +/* Assume early board revision without optional ES2.0 +* rework to swap J15 & AA10 so DMAREQ0 works +*/ +omap_cfg_reg (AA10_242X_GPIO13 ); + irq =13 ; +// omap_cfg_reg(J15_24XX_DMAREQ0); +break ; +default : +/* Later Menelaus boards can support all 6 DMA request +* lines, at the price of boot flash A23-A26. +*/ +omap_cfg_reg (J15_24XX_GPIO99 ); + irq =99 ; +omap_cfg_reg (AA10_242X_DMAREQ0 ); +omap_cfg_reg (AA6_242X_DMAREQ1 ); + dmachan = (1 <<1 ) | (1 <<0 ); +break ; + } + +if (tusb6010_setup_interface (&tusb_data, +TUSB6010_REFCLK_24 ,/* waitpin */ 2 , +/* async cs */ 2 ,/* sync cs */ 7 , + irq, dmachan) ==0 ) +printk (announce); +} + +#endif +static void __init omap_h4_init (void ) {/*
@@ -371,6 +523,14 @@ static void __init omap_h4_init(void) omap_board_config = h4_config; omap_board_config_size =ARRAY_SIZE (h4_config);omap_serial_init (); + +/* smc91x, debug leds, ps/2, extra uarts */ +h4_init_debug (); + +#ifdef CONFIG_MACH_OMAP_H4_TUSB +tusb_evm_setup (); +#endif + }static void __init omap_h4_map_io (void )
Signature · 1 line
1.4.4.2
Tony Lindgren
maintainerPATCH 4/7 ARM: OMAP: cleanup apollon board
From: Kyungmin Park <[email protected]>
- Add etherent gpmc handling
- Remove unused mux setting
- Add MMC switch pin comments
--- arch/arm/mach-omap2/board-apollon.c | 50 ++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 12 deletions(-)
arch/arm/mach-omap2/board-apollon.c +38 -12
@@ -27,6 +27,8 @@#include <linux/delay.h> #include <linux/leds.h> #include <linux/irq.h> +#include <linux/err.h> +#include <linux/clk.h> #include <asm/hardware.h> #include <asm/mach-types.h>
@@ -187,16 +189,42 @@ static struct platform_device *apollon_devices[] __initdata = {static inline void __init apollon_init_smc91x (void ) {unsigned long base; +unsigned int rate; +struct clk *l3ck; +int eth_cs; + + l3ck =clk_get (NULL ,"core_l3_ck" ); +if (IS_ERR (l3ck)) + rate =100000000 ; +else + rate =clk_get_rate (l3ck); + + eth_cs =APOLLON_ETH_CS ;/* Make sure CS1 timings are correct */ -GPMC_CONFIG1_1 =0x00011203 ; -GPMC_CONFIG2_1 =0x001f1f01 ; -GPMC_CONFIG3_1 =0x00080803 ; -GPMC_CONFIG4_1 =0x1c091c09 ; -GPMC_CONFIG5_1 =0x041f1f1f ; -GPMC_CONFIG6_1 =0x000004c4 ; - -if (gpmc_cs_request (APOLLON_ETH_CS ,SZ_16M , &base) <0 ) { +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG1 ,0x00011200 ); + +if (rate >=160000000 ) { +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f01 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080803 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1c0b1c0a ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x041f1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000004C4 ); + }else if (rate >=130000000 ) { +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f00 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080802 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1C091C09 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x041f1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000004C4 ); + }else {/* rate = 100000000 */ +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG2 ,0x001f1f00 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG3 ,0x00080802 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG4 ,0x1C091C09 ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG5 ,0x031A1F1F ); +gpmc_cs_write_reg (eth_cs,GPMC_CS_CONFIG6 ,0x000003C2 ); + } + +if (gpmc_cs_request (eth_cs,SZ_16M , &base) <0 ) {printk (KERN_ERR "Failed to request GPMC CS for smc91x\n" );return ; }
@@ -208,7 +236,7 @@ static inline void __init apollon_init_smc91x(void)if (omap_request_gpio (APOLLON_ETHR_GPIO_IRQ ) <0 ) {printk (KERN_ERR "Failed to request GPIO%d for smc91x IRQ\n" ,APOLLON_ETHR_GPIO_IRQ ); -gpmc_cs_free (APOLLON_ETH_CS ); +gpmc_cs_free (eth_cs);return ; }omap_set_gpio_direction (APOLLON_ETHR_GPIO_IRQ ,1 );
@@ -232,6 +260,7 @@ static struct omap_mmc_config apollon_mmc_config __initdata = { .wire4 = 1, .wp_pin = -1, .power_pin = -1, + /* Note: If you want to detect card feature, please assign 37 */ .switch_pin = -1, }, };
@@ -336,9 +365,6 @@ static void __init omap_apollon_init(void)apollon_flash_init ();apollon_usb_init (); -/* REVISIT: where's the correct place */ -omap_cfg_reg (W19_24XX_SYS_NIRQ ); -/* Use Interal loop-back in MMC/SDIO Module Input Clock selection */ CONTROL_DEVCONF |= (1 <<24 );
Signature · 1 line
1.4.4.2
Tony Lindgren
maintainerPATCH 5/7 ARM: OMAP: Merge board specific files from N800 tree
From: Kai Svahn <[email protected]>
This patch merges board specific files from N800 tree. Nokia has published the files at:
http://repository.maemo.org/pool/maemo3.0/free/source/
kernel-source-rx-34_2.6.18.orig.tar.gz
kernel-source-rx-34_2.6.18-osso29.diff.gz
arch/arm/mach-omap2/Kconfig +10 -1
@@ -54,4 +54,13 @@ config MACH_OMAP_APOLLON config MACH_OMAP_2430SDP bool "OMAP 2430 SDP board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 && ARCH_OMAP24XX + +config MACH_NOKIA_N800 + bool "Nokia N800" + depends on ARCH_OMAP24XX + +config MACH_OMAP2_TUSB6010 + bool + depends on ARCH_OMAP2 && ARCH_OMAP2420 + default y if MACH_NOKIA_N800
arch/arm/mach-omap2/Makefile +4 -0
@@ -16,4 +16,8 @@ obj-$(CONFIG_MACH_OMAP_GENERIC) += boar obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o +obj-$(CONFIG_MACH_NOKIA_N800) += board-n800.o board-n800-flash.o \ + board-n800-mmc.o board-n800-bt.o \ + board-n800-audio.o board-n800-usb.o \ + board-n800-dsp.o board-n800-pm.o
arch/arm/mach-omap2/board-n800-audio.c new file +366 -0
366 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-bt.c new file +42 -0
42 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-dsp.c new file +156 -0
156 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-flash.c new file +156 -0
156 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-mmc.c new file +282 -0
282 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-pm.c new file +79 -0
79 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-usb.c new file +102 -0
102 lines not on this page · raw message
arch/arm/mach-omap2/board-n800.c new file +515 -0
515 lines not on this page · raw message
include/asm-arm/arch-omap/board.h +22 -2
@@ -25,9 +25,12 @@#define OMAP_TAG_FBMEM 0x4f08#define OMAP_TAG_STI_CONSOLE 0x4f09#define OMAP_TAG_CAMERA_SENSOR 0x4f0a +#define OMAP_TAG_PARTITION 0x4f0b +#define OMAP_TAG_TEA5761 0x4f10 +#define OMAP_TAG_TMP105 0x4f11#define OMAP_TAG_BOOT_REASON 0x4f80 -#define OMAP_TAG_FLASH_PART 0x4f81 +#define OMAP_TAG_FLASH_PART_STR 0x4f81#define OMAP_TAG_VERSION_STR 0x4f82struct omap_clock_config {
@@ -139,8 +142,25 @@ struct omap_uart_config {unsigned int enabled_uarts; }; +struct omap_tea5761_config { +u16 enable_gpio; +}; + +/* This cannot be passed from the bootloader */ +struct omap_tmp105_config { +u16 tmp105_irq_pin; +int (* set_power)(int enable); +}; + +struct omap_partition_config { +char name[16 ]; +unsigned int size; +unsigned int offset; +/* same as in include/linux/mtd/partitions.h */ +unsigned int mask_flags; +}; -struct omap_flash_part_config { +struct omap_flash_part_str_config {char part_table[0 ]; };
include/asm-arm/arch-omap/board-nokia.h +11 -0
@@ -11,6 +11,17 @@#include <linux/types.h> +extern void __init n800_flash_init (void ); +extern void __init n800_mmc_init (void ); +extern void __init n800_bt_init (void ); +extern void __init n800_audio_init (struct tsc2301_platform_data *); +extern void __init n800_dsp_init (void ); +extern void __init n800_usb_init (void ); +extern void __init n800_pm_init (void ); +extern int n800_audio_enable (struct dsp_kfunc_device *kdev,int stage); +extern int n800_audio_disable (struct dsp_kfunc_device *kdev,int stage); +extern void n800_mmc_slot1_cover_handler (void *arg,int state); +#define OMAP_TAG_NOKIA_BT 0x4e01#define OMAP_TAG_WLAN_CX3110X 0x4e02#define OMAP_TAG_CBUS 0x4e03
include/asm-arm/arch-omap/onenand.h +1 -0
@@ -16,4 +16,5 @@ struct omap_onenand_platform_data {int gpio_irq;struct mtd_partition *parts;int nr_parts; +int (*onenand_setup)(void __iomem *); };
Tony Lindgren
maintainerPATCH 6/7 ARM: OMAP: Replace mach-omap/omap2 with mach-omap2
From: Trilok Soni <[email protected]>
Update board Apollon with correct file path.
--- arch/arm/mach-omap2/board-apollon.c | 2 +- arch/arm/mach-omap2/usb-tusb6010.c | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-)
arch/arm/mach-omap2/board-apollon.c +1 -1
@@ -4,7 +4,7 @@* Copyright (C) 2005,2006 Samsung Electronics * Author: Kyungmin Park <[email protected]> * -* Modified from mach-omap/omap2/board-h4.c +* Modified from mach-omap2/board-h4.c * * Code for apollon OMAP2 board. Should work on many OMAP2 systems where * the bootloader passes the board-specific data to the kernel.
Tony Lindgren
maintainerPATCH 7/7 ARM: OMAP: Add apollon gpio keys using gpio-keys input
From: Kyungmin Park <[email protected]>
Add apollon gpio keys using gpio-keys input
--- arch/arm/mach-omap2/Makefile | 3 +- arch/arm/mach-omap2/board-apollon-keys.c | 79 ++++++++++++++++++++++++++++++ arch/arm/mach-omap2/board-apollon.c | 53 -------------------- 3 files changed, 81 insertions(+), 54 deletions(-)
arch/arm/mach-omap2/Makefile +2 -1
@@ -15,7 +15,8 @@ obj-$(CONFIG_PM) += pm.o sleep.o obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o -obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o +obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o \ + board-apollon-keys.o obj-$(CONFIG_MACH_NOKIA_N800) += board-n800.o board-n800-flash.o \ board-n800-mmc.o board-n800-bt.o \ board-n800-audio.o board-n800-usb.o \
arch/arm/mach-omap2/board-apollon-keys.c new file +79 -0
79 lines not on this page · raw message
arch/arm/mach-omap2/board-apollon.c +0 -53
79 lines not on this page · raw message
Tony Lindgren
maintainerRe: [PATCH 5/7] ARM: OMAP: Merge board specific files from N800 tree
In reply to Tony LindgrenQuoted 8 lines · Tony Lindgren
From: Kai Svahn <[email protected]>
This patch merges board specific files from N800 tree. Nokia has published the files at:
http://repository.maemo.org/pool/maemo3.0/free/source/
kernel-source-rx-34_2.6.18.orig.tar.gz
kernel-source-rx-34_2.6.18-osso29.diff.gz
Here's an updated version that fixes compile after my last fix to move externs to board-nokia.h.
Regards,
Tony
Quoted 1 line
From
fd345ea126336a514baf808170f1231999ba2c1dMon Sep 17 00:00:00 2001
From: Kai Svahn <[email protected]>
Date: Fri, 26 Jan 2007 12:39:48 -0800
Subject: [PATCH 5/7] ARM: OMAP: Merge board specific files from N800 tree
This patch merges board specific files from N800 tree. Nokia has published the files at:
http://repository.maemo.org/pool/maemo3.0/free/source/
kernel-source-rx-34_2.6.18.orig.tar.gz
kernel-source-rx-34_2.6.18-osso29.diff.gz
arch/arm/mach-omap2/Kconfig +10 -1
@@ -54,4 +54,13 @@ config MACH_OMAP_APOLLON config MACH_OMAP_2430SDP bool "OMAP 2430 SDP board" - depends on ARCH_OMAP2 && ARCH_OMAP24XX + depends on ARCH_OMAP2 && ARCH_OMAP24XX + +config MACH_NOKIA_N800 + bool "Nokia N800" + depends on ARCH_OMAP24XX + +config MACH_OMAP2_TUSB6010 + bool + depends on ARCH_OMAP2 && ARCH_OMAP2420 + default y if MACH_NOKIA_N800
arch/arm/mach-omap2/Makefile +4 -0
@@ -16,4 +16,8 @@ obj-$(CONFIG_MACH_OMAP_GENERIC) += boar obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o +obj-$(CONFIG_MACH_NOKIA_N800) += board-n800.o board-n800-flash.o \ + board-n800-mmc.o board-n800-bt.o \ + board-n800-audio.o board-n800-usb.o \ + board-n800-dsp.o board-n800-pm.o
arch/arm/mach-omap2/board-n800-audio.c new file +366 -0
366 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-bt.c new file +42 -0
42 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-dsp.c new file +156 -0
156 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-flash.c new file +156 -0
156 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-mmc.c new file +282 -0
282 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-pm.c new file +79 -0
79 lines not on this page · raw message
arch/arm/mach-omap2/board-n800-usb.c new file +102 -0
102 lines not on this page · raw message
arch/arm/mach-omap2/board-n800.c new file +515 -0
515 lines not on this page · raw message
include/asm-arm/arch-omap/board.h +22 -2
@@ -25,9 +25,12 @@#define OMAP_TAG_FBMEM 0x4f08#define OMAP_TAG_STI_CONSOLE 0x4f09#define OMAP_TAG_CAMERA_SENSOR 0x4f0a +#define OMAP_TAG_PARTITION 0x4f0b +#define OMAP_TAG_TEA5761 0x4f10 +#define OMAP_TAG_TMP105 0x4f11#define OMAP_TAG_BOOT_REASON 0x4f80 -#define OMAP_TAG_FLASH_PART 0x4f81 +#define OMAP_TAG_FLASH_PART_STR 0x4f81#define OMAP_TAG_VERSION_STR 0x4f82struct omap_clock_config {
@@ -139,8 +142,25 @@ struct omap_uart_config {unsigned int enabled_uarts; }; +struct omap_tea5761_config { +u16 enable_gpio; +}; + +/* This cannot be passed from the bootloader */ +struct omap_tmp105_config { +u16 tmp105_irq_pin; +int (* set_power)(int enable); +}; + +struct omap_partition_config { +char name[16 ]; +unsigned int size; +unsigned int offset; +/* same as in include/linux/mtd/partitions.h */ +unsigned int mask_flags; +}; -struct omap_flash_part_config { +struct omap_flash_part_str_config {char part_table[0 ]; };
include/asm-arm/arch-omap/board-nokia.h +13 -1
@@ -11,12 +11,24 @@#include <linux/types.h> +struct tsc2301_platform_data ; +struct dsp_kfunc_device ; +extern void n800_bt_init (void ); +extern void n800_dsp_init (void ); +extern void n800_flash_init (void ); +extern void n800_mmc_init (void ); +extern void n800_pm_init (void ); +extern void n800_usb_init (void ); +extern void n800_audio_init (struct tsc2301_platform_data *); +extern int n800_audio_enable (struct dsp_kfunc_device *kdev,int stage); +extern int n800_audio_disable (struct dsp_kfunc_device *kdev,int stage); +extern void n800_mmc_slot1_cover_handler (void *arg,int state); +#define OMAP_TAG_NOKIA_BT 0x4e01#define OMAP_TAG_WLAN_CX3110X 0x4e02#define OMAP_TAG_CBUS 0x4e03#define OMAP_TAG_EM_ASIC_BB5 0x4e04 -#define BT_CHIP_CSR 1#define BT_CHIP_TI 2
include/asm-arm/arch-omap/onenand.h +1 -0
@@ -16,4 +16,5 @@ struct omap_onenand_platform_data {int gpio_irq;struct mtd_partition *parts;int nr_parts; +int (*onenand_setup)(void __iomem *); };