Omap updates for merge window after 2.6.30
Subsystems (10)
Tony Lindgren
maintainercover Omap updates for merge window after 2.6.30
Hi all,
This series contains omap updates for review. There will be one more series after this for omap3 specific patches.
Regards,
Tony
---
Eero Nurkkala (1):
ARM: OMAP: McBSP: Fix legacy interrupts to clear their status
Imre Deak (1):
ARM: OMAP2: 2430SDP: Add FB support to board file
Jarkko Nikula (1):
ARM: OMAP: Update contact address of I2C registration helper
Juha Yrjola (1):
ARM: OMAP2/3: Add generic onenand support when connected to GPMC
Mans Rullgard (1):
ARM: OMAP: Increase VMALLOC_END to allow 256MB RAM
Santosh Shilimkar (1):
ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain()
Tomi Valkeinen (1):
ARM: OMAP2/3: DMA: implement trans copy and const fill
Tony Lindgren (3):
ARM: OMAP2/3: Add generic smc91x support when connected to GPMC
ARM: OMAP1: Make 770 LCD work
ARM: OMAP1: Misc clean-up
arch/arm/configs/rx51_defconfig | 2 arch/arm/mach-omap1/Kconfig | 1 arch/arm/mach-omap1/Makefile | 4 arch/arm/mach-omap1/board-nokia770.c | 17 + arch/arm/mach-omap2/Makefile | 6 arch/arm/mach-omap2/board-2430sdp.c | 112 ++------ arch/arm/mach-omap2/board-3430sdp.c | 78 ++---- arch/arm/mach-omap2/board-rx51-peripherals.c | 192 ++++++-------- arch/arm/mach-omap2/gpmc-onenand.c | 340 +++++++++++++++++++++++++ arch/arm/mach-omap2/gpmc-smc91x.c | 189 ++++++++++++++ arch/arm/plat-omap/dma.c | 79 ++++-- arch/arm/plat-omap/i2c.c | 2 arch/arm/plat-omap/include/mach/dma.h | 3 arch/arm/plat-omap/include/mach/gpmc-smc91x.h | 46 +++ arch/arm/plat-omap/include/mach/hwa742.h | 5 arch/arm/plat-omap/include/mach/onenand.h | 29 ++ arch/arm/plat-omap/include/mach/vmalloc.h | 2 arch/arm/plat-omap/mcbsp.c | 30 ++ arch/arm/plat-omap/sram.c | 4 drivers/video/omap/hwa742.c | 26 +- 20 files changed, 851 insertions(+), 316 deletions(-) create mode 100644 arch/arm/mach-omap2/gpmc-onenand.c create mode 100644 arch/arm/mach-omap2/gpmc-smc91x.c create mode 100644 arch/arm/plat-omap/include/mach/gpmc-smc91x.h
Signature · 1 line
Signature
Tony Lindgren
maintainerPATCH 1/10 ARM: OMAP: Increase VMALLOC_END to allow 256MB RAM
From: Mans Rullgard <[email protected]>
This increases VMALLOC_END to 0x18000000, making room for 256MB RAM with the default 128MB vmalloc region.
Note that after this patch there's no longer a hole between vmalloc space and the beginning of IO space on omap2 as the first virtual mapping starts at 0xd8000000.
Also fold in a related change from Paul Walmsley <[email protected]> to change the OMAP2_SRAM addresses accordingly.
--- arch/arm/plat-omap/include/mach/vmalloc.h | 2 +- arch/arm/plat-omap/sram.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
arch/arm/plat-omap/include/mach/vmalloc.h +1 -1
@@ -17,5 +17,5 @@* along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#define VMALLOC_END (PAGE_OFFSET + 0x10000000) +#define VMALLOC_END (PAGE_OFFSET + 0x18000000)
arch/arm/plat-omap/sram.c +2 -2
@@ -38,8 +38,8 @@#define OMAP1_SRAM_VA VMALLOC_END#define OMAP2_SRAM_PA 0x40200000#define OMAP2_SRAM_PUB_PA 0x4020f800 -#define OMAP2_SRAM_VA VMALLOC_END -#define OMAP2_SRAM_PUB_VA (VMALLOC_END + 0x800) +#define OMAP2_SRAM_VA 0xe3000000 +#define OMAP2_SRAM_PUB_VA (OMAP2_SRAM_VA + 0x800)#define OMAP3_SRAM_PA 0x40200000#define OMAP3_SRAM_VA 0xd7000000#define OMAP3_SRAM_PUB_PA 0x40208000
Tony Lindgren
maintainerPATCH 2/10 ARM: OMAP: McBSP: Fix legacy interrupts to clear their status
In reply to Tony LindgrenFrom: Eero Nurkkala <[email protected]>
If XSYNCERR or RSYNCERR interrupts are enabled, they are never cleared causing the IRQ handler to be continuously called. This patch clears the IRQs in question in the event they are enabled and taken.
--- arch/arm/plat-omap/mcbsp.c | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-)
arch/arm/plat-omap/mcbsp.c +24 -6
@@ -91,11 +91,20 @@ static void omap_mcbsp_dump_reg(u8 id)static irqreturn_t omap_mcbsp_tx_irq_handler (int irq,void *dev_id) {struct omap_mcbsp *mcbsp_tx = dev_id; +u16 irqst_spcr2; -dev_dbg (mcbsp_tx->dev,"TX IRQ callback : 0x%x\n" , -OMAP_MCBSP_READ (mcbsp_tx->io_base,SPCR2 )); + irqst_spcr2 =OMAP_MCBSP_READ (mcbsp_tx->io_base,SPCR2 ); +dev_dbg (mcbsp_tx->dev,"TX IRQ callback : 0x%x\n" , irqst_spcr2); -complete (&mcbsp_tx->tx_irq_completion); +if (irqst_spcr2 &XSYNC_ERR ) { +dev_err (mcbsp_tx->dev,"TX Frame Sync Error! : 0x%x\n" , + irqst_spcr2); +/* Writing zero to XSYNC_ERR clears the IRQ */ +OMAP_MCBSP_WRITE (mcbsp_tx->io_base,SPCR2 , + irqst_spcr2 & ~(XSYNC_ERR )); + }else { +complete (&mcbsp_tx->tx_irq_completion); + }return IRQ_HANDLED ; }
@@ -103,11 +112,20 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)static irqreturn_t omap_mcbsp_rx_irq_handler (int irq,void *dev_id) {struct omap_mcbsp *mcbsp_rx = dev_id; +u16 irqst_spcr1; -dev_dbg (mcbsp_rx->dev,"RX IRQ callback : 0x%x\n" , -OMAP_MCBSP_READ (mcbsp_rx->io_base,SPCR2 )); + irqst_spcr1 =OMAP_MCBSP_READ (mcbsp_rx->io_base,SPCR1 ); +dev_dbg (mcbsp_rx->dev,"RX IRQ callback : 0x%x\n" , irqst_spcr1); -complete (&mcbsp_rx->rx_irq_completion); +if (irqst_spcr1 &RSYNC_ERR ) { +dev_err (mcbsp_rx->dev,"RX Frame Sync Error! : 0x%x\n" , + irqst_spcr1); +/* Writing zero to RSYNC_ERR clears the IRQ */ +OMAP_MCBSP_WRITE (mcbsp_rx->io_base,SPCR1 , + irqst_spcr1 & ~(RSYNC_ERR )); + }else { +complete (&mcbsp_rx->tx_irq_completion); + }return IRQ_HANDLED ; }
Tony Lindgren
maintainerPATCH 3/10 ARM: OMAP: Update contact address of I2C registration helper
In reply to Tony LindgrenFrom: Jarkko Nikula <[email protected]>
This email address is going to expire soon so update it.
--- arch/arm/plat-omap/i2c.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/plat-omap/i2c.c +1 -1
@@ -5,7 +5,7 @@* * Copyright (C) 2007 Nokia Corporation. * -* Contact: Jarkko Nikula <[email protected]> +* Contact: Jarkko Nikula <[email protected]> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License
Re: [PATCH 03/10] ARM: OMAP: Update contact address of I2C registration helper
Quoted 3 lines · Tony Lindgren
From: Jarkko Nikula <[email protected]>
This email address is going to expire soon so update it.
Should also be in MAINTAINERS, especially as that is being scripted to pull peoples contact information from that file (and git) automatically.
Re: [PATCH 03/10] ARM: OMAP: Update contact address of I2C registration helper
Quoted 8 lines · On Mon, 25 May 2009 10:23:50 +0100 Russell King - ARM Linux…
Quoted 3 lines · Tony Lindgren
From: Jarkko Nikula <[email protected]>
This email address is going to expire soon so update it.
Should also be in
MAINTAINERS, especially as that is being scripted to pull peoples contact information from that file (and git) automatically.
My expired old address removed from cc.
Is the arch/arm/plat-omap/i2c.c so important piece that it would need own entry in MAINTAINERS? I think arch/arm/*omap* would cover well enough most of the files.
Signature · 1 line
Jarkko
Tony Lindgren
maintainerRe: [PATCH 03/10] ARM: OMAP: Update contact address of I2C registration helper
Quoted 12 lines · Jarkko Nikula
Quoted 8 lines · On Mon, 25 May 2009 10:23:50 +0100 Russell King - ARM Linux…
Quoted 3 lines · Tony Lindgren
From: Jarkko Nikula <[email protected]>
This email address is going to expire soon so update it.
Should also be in
MAINTAINERS, especially as that is being scripted to pull peoples contact information from that file (and git) automatically.
Quoted 5 lines
My expired old address removed from cc.
Is the
arch/arm/plat-omap/i2c.cso important piece that it would need own entry inMAINTAINERS? I thinkarch/arm/*omap*would cover well enough most of the files.
Yeah we really should start hooking people up with maintainer role for the various omap stuff. I'll post a patch as patch 11/10 to this thread to start adding few.
Tony
Tony Lindgren
maintainerPATCH 4/10 ARM: OMAP1: Misc clean-up
In reply to Tony LindgrenRemove unnecessary Kconfig line and allow compile of MBOX_FWK. Also allow building USB on Nokia 770.
--- arch/arm/mach-omap1/Kconfig | 1 - arch/arm/mach-omap1/Makefile | 4 ++++ arch/arm/mach-omap1/board-nokia770.c | 1 + 3 files changed, 5 insertions(+), 1 deletions(-)
arch/arm/mach-omap1/Kconfig +0 -1
@@ -46,7 +46,6 @@ config MACH_OMAP_H2 config MACH_OMAP_H3 bool "TI H3 Support" depends on ARCH_OMAP1 && ARCH_OMAP16XX -# select GPIOEXPANDER_OMAP help TI OMAP 1710 H3 board support. Say Y here if you have such a board.
arch/arm/mach-omap1/Makefile +4 -0
@@ -13,6 +13,10 @@ obj-$(CONFIG_OMAP_32K_TIMER) += timer32k.o # Power Management obj-$(CONFIG_PM) += pm.o sleep.o +# DSP +obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox_mach.o +mailbox_mach-objs := mailbox.o + led-y := leds.o # Specific board support
arch/arm/mach-omap1/board-nokia770.c +1 -0
@@ -35,6 +35,7 @@#include <mach/omapfb.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> +#include <mach/usb.h> #define ADS7846_PENDOWN_GPIO 15
Tony Lindgren
maintainerPATCH 5/10 ARM: OMAP1: Make 770 LCD work
In reply to Tony LindgrenMake 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
--- arch/arm/mach-omap1/board-nokia770.c | 16 ++++++++++++++++ arch/arm/plat-omap/include/mach/hwa742.h | 5 +---- drivers/video/omap/hwa742.c | 26 ++++++++++---------------- 3 files changed, 27 insertions(+), 20 deletions(-)
arch/arm/mach-omap1/board-nokia770.c +16 -0
@@ -33,6 +33,7 @@#include <mach/common.h> #include <mach/dsp_common.h> #include <mach/omapfb.h> +#include <mach/hwa742.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> #include <mach/usb.h>
@@ -163,6 +164,20 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = { }, }; +static struct hwa742_platform_data nokia770_hwa742_platform_data = { + .sys_ck =NULL , + .te_connected =1 , +}; + +static void hwa742_dev_init (void ) +{ + nokia770_hwa742_platform_data.sys_ck =clk_get (NULL ,"bclk" ); +if (IS_ERR (nokia770_hwa742_platform_data.sys_ck)) { +printk (KERN_ERR "can't get HWA742 clock\n" ); + }else { +omapfb_set_ctrl_platform_data (&nokia770_hwa742_platform_data); + } +}/* assume no Mini-AB port */
@@ -371,6 +386,7 @@ static void __init omap_nokia770_init(void)omap_serial_init ();omap_register_i2c_bus (1 ,100 ,NULL ,0 );omap_dsp_init (); +hwa742_dev_init ();ads7846_dev_init ();mipid_dev_init ();omap_usb_init (&nokia770_usb_config);
arch/arm/plat-omap/include/mach/hwa742.h +1 -4
@@ -2,10 +2,7 @@#define _HWA742_Hstruct hwa742_platform_data { -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); -unsigned long (*get_clock_rate)(struct device *dev); - +struct clk *sys_ck;unsigned te_connected:1 ; };
drivers/video/omap/hwa742.c +10 -16
@@ -133,8 +133,7 @@ struct {struct lcd_ctrl_extif *extif;struct lcd_ctrl *int_ctrl; -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); +struct clk *sys_ck; } hwa742;struct lcd_ctrl hwa742_ctrl;
@@ -915,14 +914,13 @@ static void hwa742_suspend(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED );/* Enable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,1 <<1 ); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }static void hwa742_resume (void ) { -if (hwa742.power_up !=NULL ) - hwa742.power_up (hwa742.fbdev->dev); +clk_enable (hwa742.sys_ck); +/* Disable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,0 );while (1 ) {
@@ -955,14 +953,13 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode, omapfb_conf = fbdev->dev->platform_data; ctrl_conf = omapfb_conf->ctrl_platform_data; -if (ctrl_conf ==NULL || ctrl_conf->get_clock_rate ==NULL ) { +if (ctrl_conf ==NULL || ctrl_conf->sys_ck ==NULL ) {dev_err (fbdev->dev,"HWA742: missing platform data\n" ); r = -ENOENT ; goto err1; } - hwa742.power_down = ctrl_conf->power_down; - hwa742.power_up = ctrl_conf->power_up; + hwa742.sys_ck = ctrl_conf->sys_ck;spin_lock_init (&hwa742.req_lock);
@@ -972,12 +969,11 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,if ((r = hwa742.extif->init (fbdev)) <0 ) goto err2; - ext_clk = ctrl_conf->get_clock_rate (fbdev->dev); + ext_clk =clk_get_rate (hwa742.sys_ck);if ((r =calc_extif_timings (ext_clk, &extif_mem_div)) <0 ) goto err3; hwa742.extif->set_timings (&hwa742.reg_timings); -if (hwa742.power_up !=NULL ) - hwa742.power_up (fbdev->dev); +clk_enable (hwa742.sys_ck);calc_hwa742_clk_rates (ext_clk, &sys_clk, &pix_clk);if ((r =calc_extif_timings (sys_clk, &extif_mem_div)) <0 )
@@ -1040,8 +1036,7 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,return 0 ; err4: -if (hwa742.power_down !=NULL ) - hwa742.power_down (fbdev->dev); +clk_disable (hwa742.sys_ck); err3: hwa742.extif->cleanup (); err2:
@@ -1055,8 +1050,7 @@ static void hwa742_cleanup(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED ); hwa742.extif->cleanup (); hwa742.int_ctrl->cleanup (); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }struct lcd_ctrl hwa742_ctrl = {
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoted 2 lines · Tony Lindgren
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see clk_add_alias().
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().
Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of clk_add_alias() though - that symbol is defined in arch/arm/mach-pxa/clock.c, so I had to copy it into arch/arm/plat-omap/clock.c
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoting Andrew de Quincey <[email protected]>:
Quoted 9 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 7 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
Quoted 6 lines
Quoted 2 lines
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.c
Attached is a patch implementing this method. I don't like the duplication of the clk_alias code, but I imagine that could be resolved if this method was chosen....
arch/arm/mach-omap1/board-nokia770.c +12 -0
@@ -33,9 +33,11 @@#include <mach/common.h> #include <mach/dsp_common.h> #include <mach/omapfb.h> +#include <mach/hwa742.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> #include <mach/usb.h> +#include <mach/clock.h> #define ADS7846_PENDOWN_GPIO 15
@@ -163,6 +165,15 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = { }, }; +static struct hwa742_platform_data nokia770_hwa742_platform_data = { + .te_connected =1 , +}; + +static void hwa742_dev_init (void ) +{ +clk_add_alias ("hwa_sys_ck" ,NULL ,"bclk" ,NULL ); +omapfb_set_ctrl_platform_data (&nokia770_hwa742_platform_data); +}/* assume no Mini-AB port */
@@ -371,6 +382,7 @@ static void __init omap_nokia770_init(void)omap_serial_init ();omap_register_i2c_bus (1 ,100 ,NULL ,0 );omap_dsp_init (); +hwa742_dev_init ();ads7846_dev_init ();mipid_dev_init ();omap_usb_init (&nokia770_usb_config);
arch/arm/plat-omap/clock.c +19 -0
@@ -24,6 +24,7 @@#include <linux/debugfs.h> #include <linux/io.h> +#include <asm/clkdev.h> #include <mach/clock.h> static LIST_HEAD (clocks);
@@ -359,6 +360,24 @@ static int __init clk_disable_unused(void)late_initcall (clk_disable_unused);#endif +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (!r) +return -ENODEV ; + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias); +int __init clk_init (struct clk_functions * custom_clocks) {if (!custom_clocks) {
arch/arm/plat-omap/include/mach/clock.h +2 -0
@@ -127,12 +127,14 @@ extern void propagate_rate(struct clk *clk);extern void recalculate_root_clocks (void );extern unsigned long followparent_recalc (struct clk *clk);extern void clk_enable_init_clocks (void ); +extern int clk_add_alias (const char *alias,const char *alias_dev_name,char *id,struct device *dev);#ifdef CONFIG_CPU_FREQ extern void clk_init_cpufreq_table (struct cpufreq_frequency_table **table);#endif extern const struct clkops clkops_null; +/* Clock flags */ /* bit 0 is free */ #define RATE_FIXED (1 << 1)/* Fixed clock rate */
arch/arm/plat-omap/include/mach/hwa742.h +0 -4
@@ -2,10 +2,6 @@#define _HWA742_Hstruct hwa742_platform_data { -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); -unsigned long (*get_clock_rate)(struct device *dev); -unsigned te_connected:1 ; };
drivers/video/omap/hwa742.c +10 -16
@@ -133,8 +133,7 @@ struct {struct lcd_ctrl_extif *extif;struct lcd_ctrl *int_ctrl; -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); +struct clk *sys_ck; } hwa742;struct lcd_ctrl hwa742_ctrl;
@@ -915,14 +914,13 @@ static void hwa742_suspend(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED );/* Enable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,1 <<1 ); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }static void hwa742_resume (void ) { -if (hwa742.power_up !=NULL ) - hwa742.power_up (hwa742.fbdev->dev); +clk_enable (hwa742.sys_ck); +/* Disable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,0 );while (1 ) {
@@ -955,14 +953,13 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode, omapfb_conf = fbdev->dev->platform_data; ctrl_conf = omapfb_conf->ctrl_platform_data; -if (ctrl_conf ==NULL || ctrl_conf->get_clock_rate ==NULL ) { +if (ctrl_conf ==NULL ) {dev_err (fbdev->dev,"HWA742: missing platform data\n" ); r = -ENOENT ; goto err1; } - hwa742.power_down = ctrl_conf->power_down; - hwa742.power_up = ctrl_conf->power_up; + hwa742.sys_ck =clk_get (NULL ,"hwa_sys_ck" );spin_lock_init (&hwa742.req_lock);
@@ -972,12 +969,11 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,if ((r = hwa742.extif->init (fbdev)) <0 ) goto err2; - ext_clk = ctrl_conf->get_clock_rate (fbdev->dev); + ext_clk =clk_get_rate (hwa742.sys_ck);if ((r =calc_extif_timings (ext_clk, &extif_mem_div)) <0 ) goto err3; hwa742.extif->set_timings (&hwa742.reg_timings); -if (hwa742.power_up !=NULL ) - hwa742.power_up (fbdev->dev); +clk_enable (hwa742.sys_ck);calc_hwa742_clk_rates (ext_clk, &sys_clk, &pix_clk);if ((r =calc_extif_timings (sys_clk, &extif_mem_div)) <0 )
@@ -1040,8 +1036,7 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,return 0 ; err4: -if (hwa742.power_down !=NULL ) - hwa742.power_down (fbdev->dev); +clk_disable (hwa742.sys_ck); err3: hwa742.extif->cleanup (); err2:
@@ -1055,8 +1050,7 @@ static void hwa742_cleanup(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED ); hwa742.extif->cleanup (); hwa742.int_ctrl->cleanup (); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }struct lcd_ctrl hwa742_ctrl = {
Tony Lindgren
maintainerRe: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoted 18 lines · Andrew de Quincey
Quoting Andrew de Quincey <[email protected]>:
Quoted 16 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
Quoted 7 lines
Quoted 3 lines
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.cAttached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....
Andrew, can you please reply with your Signed-off-by?
Thanks,
Tony
Quoted 195 lines
arch/arm/mach-omap1/board-nokia770.c +12
-0@@ -33,9 +33,11 @@#include <mach/common.h> #include <mach/dsp_common.h> #include <mach/omapfb.h> +#include <mach/hwa742.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> #include <mach/usb.h> +#include <mach/clock.h> #define ADS7846_PENDOWN_GPIO 15@@ -163,6 +165,15 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = { }, }; +static struct hwa742_platform_data nokia770_hwa742_platform_data = { + .te_connected =1 , +}; + +static void hwa742_dev_init (void ) +{ +clk_add_alias ("hwa_sys_ck" ,NULL ,"bclk" ,NULL ); +omapfb_set_ctrl_platform_data (&nokia770_hwa742_platform_data); +}/* assume no Mini-AB port */ @@ -371,6 +382,7 @@ static void __init omap_nokia770_init(void)omap_serial_init ();omap_register_i2c_bus (1 ,100 ,NULL ,0 );omap_dsp_init (); +hwa742_dev_init ();ads7846_dev_init ();mipid_dev_init ();omap_usb_init (&nokia770_usb_config);arch/arm/plat-omap/clock.c +19
-0@@ -24,6 +24,7 @@#include <linux/debugfs.h> #include <linux/io.h> +#include <asm/clkdev.h> #include <mach/clock.h> static LIST_HEAD (clocks);@@ -359,6 +360,24 @@ static int __init clk_disable_unused(void)late_initcall (clk_disable_unused);#endif +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (!r) +return -ENODEV ; + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias); +int __init clk_init (struct clk_functions * custom_clocks) {if (!custom_clocks) {arch/arm/plat-omap/include/mach/clock.h +2
-0@@ -127,12 +127,14 @@ extern void propagate_rate(struct clk *clk);extern void recalculate_root_clocks (void );extern unsigned long followparent_recalc (struct clk *clk);extern void clk_enable_init_clocks (void ); +extern int clk_add_alias (const char *alias,const char *alias_dev_name,char *id,struct device *dev);#ifdef CONFIG_CPU_FREQ extern void clk_init_cpufreq_table (struct cpufreq_frequency_table **table);#endif extern const struct clkops clkops_null; +/* Clock flags */ /* bit 0 is free */ #define RATE_FIXED (1 << 1)/* Fixed clock rate */ arch/arm/plat-omap/include/mach/hwa742.h +0
-4@@ -2,10 +2,6 @@#define _HWA742_Hstruct hwa742_platform_data { -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); -unsigned long (*get_clock_rate)(struct device *dev); -unsigned te_connected:1 ; };drivers/video/omap/hwa742.c +10
-16@@ -133,8 +133,7 @@ struct {struct lcd_ctrl_extif *extif;struct lcd_ctrl *int_ctrl; -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); +struct clk *sys_ck; } hwa742;struct lcd_ctrl hwa742_ctrl;@@ -915,14 +914,13 @@ static void hwa742_suspend(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED );/* Enable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,1 <<1 ); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }static void hwa742_resume (void ) { -if (hwa742.power_up !=NULL ) - hwa742.power_up (hwa742.fbdev->dev); +clk_enable (hwa742.sys_ck); +/* Disable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,0 );while (1 ) {@@ -955,14 +953,13 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode, omapfb_conf = fbdev->dev->platform_data; ctrl_conf = omapfb_conf->ctrl_platform_data; -if (ctrl_conf ==NULL || ctrl_conf->get_clock_rate ==NULL ) { +if (ctrl_conf ==NULL ) {dev_err (fbdev->dev,"HWA742: missing platform data\n" ); r = -ENOENT ; goto err1; } - hwa742.power_down = ctrl_conf->power_down; - hwa742.power_up = ctrl_conf->power_up; + hwa742.sys_ck =clk_get (NULL ,"hwa_sys_ck" );spin_lock_init (&hwa742.req_lock);@@ -972,12 +969,11 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,if ((r = hwa742.extif->init (fbdev)) <0 ) goto err2; - ext_clk = ctrl_conf->get_clock_rate (fbdev->dev); + ext_clk =clk_get_rate (hwa742.sys_ck);if ((r =calc_extif_timings (ext_clk, &extif_mem_div)) <0 ) goto err3; hwa742.extif->set_timings (&hwa742.reg_timings); -if (hwa742.power_up !=NULL ) - hwa742.power_up (fbdev->dev); +clk_enable (hwa742.sys_ck);calc_hwa742_clk_rates (ext_clk, &sys_clk, &pix_clk);if ((r =calc_extif_timings (sys_clk, &extif_mem_div)) <0 )@@ -1040,8 +1036,7 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,return 0 ; err4: -if (hwa742.power_down !=NULL ) - hwa742.power_down (fbdev->dev); +clk_disable (hwa742.sys_ck); err3: hwa742.extif->cleanup (); err2:@@ -1055,8 +1050,7 @@ static void hwa742_cleanup(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED ); hwa742.extif->cleanup (); hwa742.int_ctrl->cleanup (); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }struct lcd_ctrl hwa742_ctrl = {
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoting Tony Lindgren <[email protected]>:
Quoted 23 lines · Andrew de Quincey
Quoted 22 lines
Quoting Andrew de Quincey <[email protected]>:
Quoted 19 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.c
Quoted 5 lines
Quoted 3 lines
Attached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....Andrew, can you please reply with your Signed-off-by?
Sure - sorry I was holding off in case there were any comments on the method...
Tony Lindgren
maintainerRe: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work, v2
Quoted 25 lines · Andrew de Quincey
Quoting Tony Lindgren <[email protected]>:
Quoted 23 lines · Andrew de Quincey
Quoted 22 lines
Quoting Andrew de Quincey <[email protected]>:
Quoted 19 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.c
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Attached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....Andrew, can you please reply with your Signed-off-by?
Sure - sorry I was holding off in case there were any comments on the method...
I added a note about maybe moving the clk_add_alias() to arch/arm/common/clkdev.c later.
Also noticed there were some whitespace errors, updated version below.
Regards,
Tony
Quoted 2 lines
Signed-off-by Andrew de Quincey <[email protected]>
From ad4db2847911f5847efe678d3693ca13bd3ac2ea Mon Sep 17 00:00:00 2001
From: Andrew de Quincey <[email protected]>
Date: Thu, 28 May 2009 11:54:31 -0700
Subject: [PATCH] ARM: OMAP1: Make 770 LCD work
Make 770 LCD work by adding clk_add_alias().
Also remove the old unused functions.
Note that the clk_add_alias() could probably be moved to arch/arm/clkdev.c later on.
arch/arm/mach-omap1/board-nokia770.c +12 -0
@@ -33,9 +33,11 @@#include <mach/common.h> #include <mach/dsp_common.h> #include <mach/omapfb.h> +#include <mach/hwa742.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> #include <mach/usb.h> +#include <mach/clock.h> #define ADS7846_PENDOWN_GPIO 15
@@ -163,6 +165,15 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = { }, }; +static struct hwa742_platform_data nokia770_hwa742_platform_data = { + .te_connected =1 , +}; + +static void hwa742_dev_init (void ) +{ +clk_add_alias ("hwa_sys_ck" ,NULL ,"bclk" ,NULL ); +omapfb_set_ctrl_platform_data (&nokia770_hwa742_platform_data); +}/* assume no Mini-AB port */
@@ -371,6 +382,7 @@ static void __init omap_nokia770_init(void)omap_serial_init ();omap_register_i2c_bus (1 ,100 ,NULL ,0 );omap_dsp_init (); +hwa742_dev_init ();ads7846_dev_init ();mipid_dev_init ();omap_usb_init (&nokia770_usb_config);
arch/arm/plat-omap/clock.c +19 -0
@@ -24,6 +24,7 @@#include <linux/debugfs.h> #include <linux/io.h> +#include <asm/clkdev.h> #include <mach/clock.h> static LIST_HEAD (clocks);
@@ -359,6 +360,24 @@ static int __init clk_disable_unused(void)late_initcall (clk_disable_unused);#endif +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (!r) +return -ENODEV ; + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias); +int __init clk_init (struct clk_functions * custom_clocks) {if (!custom_clocks) {
arch/arm/plat-omap/include/mach/clock.h +2 -0
@@ -127,6 +127,8 @@ extern void propagate_rate(struct clk *clk);extern void recalculate_root_clocks (void );extern unsigned long followparent_recalc (struct clk *clk);extern void clk_enable_init_clocks (void ); +extern int clk_add_alias (const char *alias,const char *alias_dev_name, +char *id,struct device *dev);#ifdef CONFIG_CPU_FREQ extern void clk_init_cpufreq_table (struct cpufreq_frequency_table **table);#endif
arch/arm/plat-omap/include/mach/hwa742.h +0 -4
@@ -2,10 +2,6 @@#define _HWA742_Hstruct hwa742_platform_data { -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); -unsigned long (*get_clock_rate)(struct device *dev); -unsigned te_connected:1 ; };
drivers/video/omap/hwa742.c +10 -16
@@ -133,8 +133,7 @@ struct {struct lcd_ctrl_extif *extif;struct lcd_ctrl *int_ctrl; -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); +struct clk *sys_ck; } hwa742;struct lcd_ctrl hwa742_ctrl;
@@ -915,14 +914,13 @@ static void hwa742_suspend(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED );/* Enable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,1 <<1 ); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }static void hwa742_resume (void ) { -if (hwa742.power_up !=NULL ) - hwa742.power_up (hwa742.fbdev->dev); +clk_enable (hwa742.sys_ck); +/* Disable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,0 );while (1 ) {
@@ -955,14 +953,13 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode, omapfb_conf = fbdev->dev->platform_data; ctrl_conf = omapfb_conf->ctrl_platform_data; -if (ctrl_conf ==NULL || ctrl_conf->get_clock_rate ==NULL ) { +if (ctrl_conf ==NULL ) {dev_err (fbdev->dev,"HWA742: missing platform data\n" ); r = -ENOENT ; goto err1; } - hwa742.power_down = ctrl_conf->power_down; - hwa742.power_up = ctrl_conf->power_up; + hwa742.sys_ck =clk_get (NULL ,"hwa_sys_ck" );spin_lock_init (&hwa742.req_lock);
@@ -972,12 +969,11 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,if ((r = hwa742.extif->init (fbdev)) <0 ) goto err2; - ext_clk = ctrl_conf->get_clock_rate (fbdev->dev); + ext_clk =clk_get_rate (hwa742.sys_ck);if ((r =calc_extif_timings (ext_clk, &extif_mem_div)) <0 ) goto err3; hwa742.extif->set_timings (&hwa742.reg_timings); -if (hwa742.power_up !=NULL ) - hwa742.power_up (fbdev->dev); +clk_enable (hwa742.sys_ck);calc_hwa742_clk_rates (ext_clk, &sys_clk, &pix_clk);if ((r =calc_extif_timings (sys_clk, &extif_mem_div)) <0 )
@@ -1040,8 +1036,7 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,return 0 ; err4: -if (hwa742.power_down !=NULL ) - hwa742.power_down (fbdev->dev); +clk_disable (hwa742.sys_ck); err3: hwa742.extif->cleanup (); err2:
@@ -1055,8 +1050,7 @@ static void hwa742_cleanup(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED ); hwa742.extif->cleanup (); hwa742.int_ctrl->cleanup (); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }struct lcd_ctrl hwa742_ctrl = {
Tony Lindgren
maintainerRe: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work, v3
Quoted 32 lines · Tony Lindgren
Quoted 31 lines · Andrew de Quincey
Quoting Tony Lindgren <[email protected]>:
Quoted 28 lines · Andrew de Quincey
Quoted 18 lines
Quoting Andrew de Quincey <[email protected]>:
Quoted 16 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
Quoted 7 lines
Quoted 3 lines
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.cAttached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....Andrew, can you please reply with your Signed-off-by?
Quoted 7 lines
Quoted 2 lines
Sure - sorry I was holding off in case there were any comments on the method...
I added a note about maybe moving the
clk_add_alias()toarch/arm/common/clkdev.clater.Also noticed there were some whitespace errors, updated version below.
One more time with clk_add_alias() in a separate patch.
Tony
From b2b1702dccf8ab070ecf3fdb59c77c552bbc103f Mon Sep 17 00:00:00 2001
From: Andrew de Quincey <[email protected]>
Date: Thu, 28 May 2009 13:47:48 -0700
Subject: [PATCH] ARM: OMAP1: Make 770 LCD work
Make 770 LCD work by adding clk_add_alias().
Also remove the old unused functions.
Note that the clk_add_alias() could probably be moved to arch/arm/clkdev.c later on.
arch/arm/mach-omap1/board-nokia770.c +12 -0
@@ -33,9 +33,11 @@#include <mach/common.h> #include <mach/dsp_common.h> #include <mach/omapfb.h> +#include <mach/hwa742.h> #include <mach/lcd_mipid.h> #include <mach/mmc.h> #include <mach/usb.h> +#include <mach/clock.h> #define ADS7846_PENDOWN_GPIO 15
@@ -163,6 +165,15 @@ static struct spi_board_info nokia770_spi_board_info[] __initdata = { }, }; +static struct hwa742_platform_data nokia770_hwa742_platform_data = { + .te_connected =1 , +}; + +static void hwa742_dev_init (void ) +{ +clk_add_alias ("hwa_sys_ck" ,NULL ,"bclk" ,NULL ); +omapfb_set_ctrl_platform_data (&nokia770_hwa742_platform_data); +}/* assume no Mini-AB port */
@@ -371,6 +382,7 @@ static void __init omap_nokia770_init(void)omap_serial_init ();omap_register_i2c_bus (1 ,100 ,NULL ,0 );omap_dsp_init (); +hwa742_dev_init ();ads7846_dev_init ();mipid_dev_init ();omap_usb_init (&nokia770_usb_config);
arch/arm/plat-omap/include/mach/hwa742.h +0 -4
@@ -2,10 +2,6 @@#define _HWA742_Hstruct hwa742_platform_data { -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); -unsigned long (*get_clock_rate)(struct device *dev); -unsigned te_connected:1 ; };
drivers/video/omap/hwa742.c +10 -16
@@ -133,8 +133,7 @@ struct {struct lcd_ctrl_extif *extif;struct lcd_ctrl *int_ctrl; -void (*power_up)(struct device *dev); -void (*power_down)(struct device *dev); +struct clk *sys_ck; } hwa742;struct lcd_ctrl hwa742_ctrl;
@@ -915,14 +914,13 @@ static void hwa742_suspend(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED );/* Enable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,1 <<1 ); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }static void hwa742_resume (void ) { -if (hwa742.power_up !=NULL ) - hwa742.power_up (hwa742.fbdev->dev); +clk_enable (hwa742.sys_ck); +/* Disable sleep mode */ hwa742_write_reg (HWA742_POWER_SAVE ,0 );while (1 ) {
@@ -955,14 +953,13 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode, omapfb_conf = fbdev->dev->platform_data; ctrl_conf = omapfb_conf->ctrl_platform_data; -if (ctrl_conf ==NULL || ctrl_conf->get_clock_rate ==NULL ) { +if (ctrl_conf ==NULL ) {dev_err (fbdev->dev,"HWA742: missing platform data\n" ); r = -ENOENT ; goto err1; } - hwa742.power_down = ctrl_conf->power_down; - hwa742.power_up = ctrl_conf->power_up; + hwa742.sys_ck =clk_get (NULL ,"hwa_sys_ck" );spin_lock_init (&hwa742.req_lock);
@@ -972,12 +969,11 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,if ((r = hwa742.extif->init (fbdev)) <0 ) goto err2; - ext_clk = ctrl_conf->get_clock_rate (fbdev->dev); + ext_clk =clk_get_rate (hwa742.sys_ck);if ((r =calc_extif_timings (ext_clk, &extif_mem_div)) <0 ) goto err3; hwa742.extif->set_timings (&hwa742.reg_timings); -if (hwa742.power_up !=NULL ) - hwa742.power_up (fbdev->dev); +clk_enable (hwa742.sys_ck);calc_hwa742_clk_rates (ext_clk, &sys_clk, &pix_clk);if ((r =calc_extif_timings (sys_clk, &extif_mem_div)) <0 )
@@ -1040,8 +1036,7 @@ static int hwa742_init(struct omapfb_device *fbdev, int ext_mode,return 0 ; err4: -if (hwa742.power_down !=NULL ) - hwa742.power_down (fbdev->dev); +clk_disable (hwa742.sys_ck); err3: hwa742.extif->cleanup (); err2:
@@ -1055,8 +1050,7 @@ static void hwa742_cleanup(void)hwa742_set_update_mode (OMAPFB_UPDATE_DISABLED ); hwa742.extif->cleanup (); hwa742.int_ctrl->cleanup (); -if (hwa742.power_down !=NULL ) - hwa742.power_down (hwa742.fbdev->dev); +clk_disable (hwa742.sys_ck); }struct lcd_ctrl hwa742_ctrl = {
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
In reply to Tony LindgrenQuoted 23 lines · Tony Lindgren
Quoted 22 lines · Andrew de Quincey
Quoting Andrew de Quincey <[email protected]>:
Quoted 19 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.c
Quoted 5 lines
Quoted 3 lines
Attached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....Andrew, can you please reply with your Signed-off-by?
Actually, I'm very tempted to suggest that clk_add_alias() should go into arch/arm/common/clkdev.c if we're going to have more people use it.
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 24 lines · Tony Lindgren
Quoted 23 lines · Andrew de Quincey
Quoted 22 lines
Quoting Andrew de Quincey <[email protected]>:
Quoted 19 lines
Quoting Russell King - ARM Linux <[email protected]>:
Quoted 9 lines · Tony Lindgren
Quoted 2 lines
Make 770 LCD work by passing the clock from platform data. Also remove the old unused functions.
I don't like this - because its passing struct clk's through platform data. That's not how things are supposed to work.
The way PXA solves this problem is to have clock aliases - see
clk_add_alias().Interesting idea - I now have a prototype patch implementing this, which I'll send when I get home (otherwise it would be an "it compiles" "test" :)
There isn't a common definition of
clk_add_alias()though - that symbol is defined inarch/arm/mach-pxa/clock.c, so I had to copy it intoarch/arm/plat-omap/clock.c
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines
Attached is a patch implementing this method. I don't like the duplication of the
clk_aliascode, but I imagine that could be resolved if this method was chosen....Andrew, can you please reply with your Signed-off-by?
Actually, I'm very tempted to suggest that
clk_add_alias()should go intoarch/arm/common/clkdev.cif we're going to have more people use it.
Cool!
Out of interest, what is the best practice way to pass platform specific GPIOs around? There are a number of other n770 related drivers I'm intending on cleaning up, several of which have GPIO numbers hardcoded in them. Should these be passed in platform structures, or is there something analogous to the clk_alias for GPIOs?
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
Quoted 6 lines · Andrew de Quincey
Out of interest, what is the best practice way to pass platform specific GPIOs around? There are a number of other n770 related drivers I'm intending on cleaning up, several of which have GPIO numbers hardcoded in them. Should these be passed in platform structures, or is there something analogous to the
clk_aliasfor GPIOs?
I was told that platform structures are the preferred way. For wl12xx (a wi-fi driver) I created a set_power function pointer which will control the power gpio line:
27 struct wl12xx_platform_data {
28 void (*set_power)(bool enable);
29 };
And the irq is configured in the board file and provided to wl12xx with struct spi_device.irq. So wl12xx doesn't use gpio code at all, it's all done in the board file.
Please comment if this isn't the correct way to do this.
Signature · 1 line
Kalle Valo
Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work
In reply to Tony LindgrenQuoted 9 lines · Tony Lindgren
Quoted 9 lines
arch/arm/plat-omap/clock.c +9
-0+int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (!r) +return -ENODEV ; +
Quoted 8 lines
arch/arm/plat-omap/clock.c static int __init clk_disable_unused(void) · line 379
Quoted 8 lines
arch/arm/plat-omap/clock.c +8
-0+ l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias);
Oh, and a really good thing to do would be to fix the error checking and returning in there (why did I miss it in the original PXA version...)
Tony Lindgren
maintainerPATCH 1/1 ARM: Move clk_add_alias() to arch/arm/common/clkdev.c (Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work)
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Tony Lindgren
Quoted 12 lines
(quoted diff) +12
-0+int clk_add_alias(const char *alias, const char *alias_dev_name, char *id, + struct device *dev) +{ + struct clk *r = clk_get(dev, id); + struct clk_lookup *l; + + if (!r) + return -ENODEV; + + l = clkdev_alloc(r, alias, alias_dev_name); + clk_put(r); + if (!l)
Quoted 8 lines
Quoted 5 lines
Review
Quoted 5 lines
(quoted diff) +5
-0+ return -ENODEV; + clkdev_add(l); + return 0; +} +EXPORT_SYMBOL(clk_add_alias);Oh, and a really good thing to do would be to fix the error checking and returning in there (why did I miss it in the original PXA version...)
How about this? The prototype is in clk.h now, is that OK?
Tony
From e4e651822967b0530a9d092894c04149e28efe39 Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Thu, 28 May 2009 13:24:12 -0700
Subject: [PATCH] ARM: Move clk_add_alias() to arch/arm/common/clkdev.c
This can be used for other arm platforms too as discussed on the linux-arm-kernel list.
Also check the return value with IS_ERR and return PTR_ERR as suggested by Russell King.
arch/arm/common/clkdev.c +18 -0
@@ -135,6 +135,24 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, }EXPORT_SYMBOL (clkdev_alloc); +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (IS_ERR (r)) +return PTR_ERR (r); + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias); +/* * clkdev_drop - remove a clock dynamically allocated */
arch/arm/mach-pxa/clock.c +0 -17
@@ -86,20 +86,3 @@ void clks_register(struct clk_lookup *clks, size_t num)for (i =0 ; i < num; i++)clkdev_add (&clks[i]); } - -int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, -struct device *dev) -{ -struct clk *r =clk_get (dev, id); -struct clk_lookup *l; - -if (!r) -return -ENODEV ; - - l =clkdev_alloc (r, alias, alias_dev_name); -clk_put (r); -if (!l) -return -ENODEV ; -clkdev_add (l); -return 0 ; -}
include/linux/clk.h +13 -0
@@ -142,4 +142,17 @@ struct clk *clk_get_parent(struct clk *clk);*/ struct clk *clk_get_sys (const char *dev_id,const char *con_id); +/** +* clk_add_alias - add a new clock alias +* @alias: name for clock alias +* @alias_dev_name: device name +* @id: platform specific clock name +* @dev: device +* +* Allows using generic clock names for drivers by adding a new alias. +* Assumes clkdev, see clkdev.h for more info. +*/ +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev); +#endif
Tony Lindgren
maintainerRe: [PATCH] ARM: Move clk_add_alias() to arch/arm/common/clkdev.c (Re: [PATCH 05/10] ARM: OMAP1: Make 770 LCD work)
Quoted 23 lines · Tony Lindgren
Quoted 13 lines · Russell King - ARM Linux
Quoted 12 lines · Tony Lindgren
Quoted 12 lines
arch/arm/common/clkdev.c +12
-0+int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (!r) +return -ENODEV ; + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l)Quoted 8 lines
Quoted 5 lines
arch/arm/common/clkdev.c struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, · line 154
Quoted 5 lines
arch/arm/common/clkdev.c +5
-0+return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias);Oh, and a really good thing to do would be to fix the error checking and returning in there (why did I miss it in the original PXA version...)
Quoted 1 line
How about this? The prototype is in
clk.hnow, is that OK?
Added to patch tracking as 5536/1.
Quoted 91 lines
Tony
From
e4e651822967b0530a9d092894c04149e28efe39Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Thu, 28 May 2009 13:24:12 -0700
Subject: [PATCH] ARM: Moveclk_add_alias()toarch/arm/common/clkdev.cThis can be used for other arm platforms too as discussed on the linux-arm-kernel list.
Also check the return value with
IS_ERRand returnPTR_ERRas suggested by Russell King.Signed-off-by Tony Lindgren <[email protected]>arch/arm/common/clkdev.c +18
-0@@ -135,6 +135,24 @@ struct clk_lookup *clkdev_alloc(struct clk *clk, const char *con_id, }EXPORT_SYMBOL (clkdev_alloc); +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev) +{ +struct clk *r =clk_get (dev, id); +struct clk_lookup *l; + +if (IS_ERR (r)) +return PTR_ERR (r); + + l =clkdev_alloc (r, alias, alias_dev_name); +clk_put (r); +if (!l) +return -ENODEV ; +clkdev_add (l); +return 0 ; +} +EXPORT_SYMBOL (clk_add_alias); +/* * clkdev_drop - remove a clock dynamically allocated */ arch/arm/mach-pxa/clock.c +0
-17@@ -86,20 +86,3 @@ void clks_register(struct clk_lookup *clks, size_t num)for (i =0 ; i < num; i++)clkdev_add (&clks[i]); } - -int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, -struct device *dev) -{ -struct clk *r =clk_get (dev, id); -struct clk_lookup *l; - -if (!r) -return -ENODEV ; - - l =clkdev_alloc (r, alias, alias_dev_name); -clk_put (r); -if (!l) -return -ENODEV ; -clkdev_add (l); -return 0 ; -}include/linux/clk.h +13
-0@@ -142,4 +142,17 @@ struct clk *clk_get_parent(struct clk *clk);*/ struct clk *clk_get_sys (const char *dev_id,const char *con_id); +/** +* clk_add_alias - add a new clock alias +* @alias: name for clock alias +* @alias_dev_name: device name +* @id: platform specific clock name +* @dev: device +* +* Allows using generic clock names for drivers by adding a new alias. +* Assumes clkdev, see clkdev.h for more info. +*/ +int clk_add_alias (const char *alias,const char *alias_dev_name,char *id, +struct device *dev); +#endif
Tony Lindgren
maintainerPATCH 6/10 ARM: OMAP2/3: DMA: implement trans copy and const fill
In reply to Tony LindgrenFrom: Tomi Valkeinen <[email protected]>
Implement transparent copy and constant fill features for OMAP2/3.
--- arch/arm/plat-omap/dma.c | 77 +++++++++++++++++++++------------ arch/arm/plat-omap/include/mach/dma.h | 1 2 files changed, 50 insertions(+), 28 deletions(-)
arch/arm/plat-omap/dma.c +49 -28
@@ -310,41 +310,62 @@ EXPORT_SYMBOL(omap_set_dma_transfer_params);void omap_set_dma_color_mode (int lch,enum omap_dma_color_mode mode,u32 color) { -u16 w; -BUG_ON (omap_dma_in_1510_mode ()); -if (cpu_class_is_omap2 ()) { -REVISIT_24XX (); -return ; - } +if (cpu_class_is_omap1 ()) { +u16 w; - w =dma_read (CCR2 (lch)); - w &= ~0x03 ; + w =dma_read (CCR2 (lch)); + w &= ~0x03 ; -switch (mode) { -case OMAP_DMA_CONSTANT_FILL : - w |=0x01 ; -break ; -case OMAP_DMA_TRANSPARENT_COPY : - w |=0x02 ; -break ; -case OMAP_DMA_COLOR_DIS : -break ; -default : -BUG (); +switch (mode) { +case OMAP_DMA_CONSTANT_FILL : + w |=0x01 ; +break ; +case OMAP_DMA_TRANSPARENT_COPY : + w |=0x02 ; +break ; +case OMAP_DMA_COLOR_DIS : +break ; +default : +BUG (); + } +dma_write (w,CCR2 (lch)); + + w =dma_read (LCH_CTRL (lch)); + w &= ~0x0f ; +/* Default is channel type 2D */ +if (mode) { +dma_write ((u16 )color,COLOR_L (lch)); +dma_write ((u16)(color >>16 ),COLOR_U (lch)); + w |=1 ;/* Channel type G */ + } +dma_write (w,LCH_CTRL (lch)); } -dma_write (w,CCR2 (lch)); - w =dma_read (LCH_CTRL (lch)); - w &= ~0x0f ; -/* Default is channel type 2D */ -if (mode) { -dma_write ((u16 )color,COLOR_L (lch)); -dma_write ((u16)(color >>16 ),COLOR_U (lch)); - w |=1 ;/* Channel type G */ +if (cpu_class_is_omap2 ()) { +u32 val; + + val =dma_read (CCR (lch)); + val &= ~((1 <<17 ) | (1 <<16 )); + +switch (mode) { +case OMAP_DMA_CONSTANT_FILL : + val |=1 <<16 ; +break ; +case OMAP_DMA_TRANSPARENT_COPY : + val |=1 <<17 ; +break ; +case OMAP_DMA_COLOR_DIS : +break ; +default : +BUG (); + } +dma_write (val,CCR (lch)); + + color &=0xffffff ; +dma_write (color,COLOR (lch)); } -dma_write (w,LCH_CTRL (lch)); }EXPORT_SYMBOL (omap_set_dma_color_mode);
arch/arm/plat-omap/include/mach/dma.h +1 -0
@@ -144,6 +144,7 @@#define OMAP_DMA4_CSSA_U (n) 0#define OMAP_DMA4_CDSA_L (n) 0#define OMAP_DMA4_CDSA_U (n) 0 +#define OMAP1_DMA_COLOR (n) 0/*----------------------------------------------------------------------------*/
Tony Lindgren
maintainerPATCH 7/10 ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain()
In reply to Tony LindgrenFrom: Santosh Shilimkar <[email protected]>
Original OMAP DMA chaining design has chain_id as one of the callback parameters. Patch 538528de0cb256f65716ab2e9613d9e920f97fe2 broke the desing.
Change the callback to return the logical channel number and not chain_id.
More details are on this email thread:
http://marc.info/?l=linux-omap&m=122961071931459&w=2
--- arch/arm/plat-omap/dma.c | 2 +- arch/arm/plat-omap/include/mach/dma.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-omap/dma.c +1 -1
@@ -1220,7 +1220,7 @@ static void create_dma_lch_chain(int lch_head, int lch_queue)* Failure: -EINVAL/-ENOMEM */ int omap_request_dma_chain (int dev_id,const char *dev_name, -void (*callback) (int chain_id,u16 ch_status, +void (*callback) (int lch,u16 ch_status,void *data),int *chain_id,int no_of_chans,int chain_mode,struct omap_dma_channel_params params)
arch/arm/plat-omap/include/mach/dma.h +1 -1
@@ -532,7 +532,7 @@ extern int omap_get_dma_index(int lch, int *ei, int *fi);/* Chaining APIs */ #ifndef CONFIG_ARCH_OMAP1 extern int omap_request_dma_chain(int dev_id, const char *dev_name, - void (*callback) (int chain_id, u16 ch_status, + void (*callback) (int lch, u16 ch_status, void *data), int *chain_id, int no_of_chans, int chain_mode,
Re: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain()
Quoted 8 lines · Tony Lindgren
From: Santosh Shilimkar <[email protected]>
Original OMAP DMA chaining design has
chain_idas one of the callback parameters. Patch538528de0cb256f65716ab2e9613d9e920f97fe2broke the desing.Change the callback to return the logical channel number and not
chain_id.
This patch does not make a material change. It merely changes the name used in a couple function pointer prototype. This has no impact on the generated code - iow, it's cosmetic.
RE: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain()
Quoted 17 lines
-----Original Message-----
From: Russell King - ARM Linux [mailto:[email protected]]
Sent: Monday, May 25, 2009 3:04 PM
To: Tony Lindgren
Cc: [email protected]; [email protected]; Shilimkar, Santosh
Subject: Re: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correctomap_request_dma_chain()Quoted 3 lines · Tony Lindgren
From: Santosh Shilimkar <[email protected]>
Original OMAP DMA chaining design has
chain_idas one ofthe callback
Quoted 3 lines
parameters. Patch
538528de0cb256f65716ab2e9613d9e920f97fe2broke the desing.
Quoted 8 lines
Quoted 2 lines
Change the callback to return the logical channel number and not
chain_id.This patch does not make a material change. It merely changes the name
used in a couple function pointer prototype. This has no impact on the
generated code - iow, it's cosmetic.
Yes it does look cosmetic but if you see the API signature, it corrects the callback parameters which actually the DMA lib sends.
The current API signature is misleading for chained DMA transfers where the actual driver passes 'channel number' as one of the callback parameter instead of chain_id which was the original design.
Regards,
Santosh
Tony Lindgren
maintainerRe: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain(), v2
Quoted 20 lines · Shilimkar, Santosh
Quoted 20 lines
-----Original Message-----
From: Russell King - ARM Linux [mailto:[email protected]]
Sent: Monday, May 25, 2009 3:04 PM
To: Tony Lindgren
Cc: [email protected]; [email protected]; Shilimkar, Santosh
Subject: Re: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correctomap_request_dma_chain()Quoted 3 lines · Tony Lindgren
From: Santosh Shilimkar <[email protected]>
Original OMAP DMA chaining design has
chain_idas one ofthe callback
Quoted 5 lines
parameters. Patch
538528de0cb256f65716ab2e9613d9e920f97fe2broke the desing.Change the callback to return the logical channel number and not
chain_id.
Quoted 8 lines
Quoted 5 lines
This patch does not make a material change. It merely changes the name
used in a couple function pointer prototype. This has no impact on the
generated code - iow, it's cosmetic.Yes it does look cosmetic but if you see the API signature, it corrects the callback parameters which actually the DMA lib sends.
The current API signature is misleading for chained DMA transfers where the actual driver passes 'channel number' as one of the callback parameter instead of
chain_idwhich was the original design.
Here's this one with more descriptive comments.
Tony
Quoted 1 line
From
eb76d1e31e2da419a66e16f90504ac3f8cdb6874Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <[email protected]>
Date: Thu, 21 May 2009 09:11:31 -0700
Subject: [PATCH] ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain(), v2
Original OMAP DMA chaining design had chain_id as one of the callback parameters. Patch 538528de0cb256f65716ab2e9613d9e920f97fe2 changed it to use logical channel instead.
Correct the naming for callback to also use logical channel number instead of the chain_id.
More details are on this email thread:
http://marc.info/?l=linux-omap&m=122961071931459&w=2
arch/arm/plat-omap/dma.c +1 -1
@@ -1220,7 +1220,7 @@ static void create_dma_lch_chain(int lch_head, int lch_queue)* Failure: -EINVAL/-ENOMEM */ int omap_request_dma_chain (int dev_id,const char *dev_name, -void (*callback) (int chain_id,u16 ch_status, +void (*callback) (int lch,u16 ch_status,void *data),int *chain_id,int no_of_chans,int chain_mode,struct omap_dma_channel_params params)
arch/arm/plat-omap/include/mach/dma.h +1 -1
@@ -532,7 +532,7 @@ extern int omap_get_dma_index(int lch, int *ei, int *fi);/* Chaining APIs */ #ifndef CONFIG_ARCH_OMAP1 extern int omap_request_dma_chain(int dev_id, const char *dev_name, - void (*callback) (int chain_id, u16 ch_status, + void (*callback) (int lch, u16 ch_status, void *data), int *chain_id, int no_of_chans, int chain_mode,
RE: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correct omap_request_dma_chain(), v2
Quoted 36 lines
-----Original Message-----
From: Tony Lindgren [mailto:[email protected]]
Sent: Monday, May 25, 2009 9:59 PM
To: Shilimkar, Santosh
Cc: Russell King - ARM Linux; [email protected]; [email protected]
Subject: Re: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correctomap_request_dma_chain(), v2Quoted 20 lines · Shilimkar, Santosh
Quoted 20 lines
-----Original Message-----
From: Russell King - ARM Linux [mailto:[email protected]]
Sent: Monday, May 25, 2009 3:04 PM
To: Tony Lindgren
Cc: [email protected]; [email protected]; Shilimkar, Santosh
Subject: Re: [PATCH 07/10] ARM: OMAP2/3: sDMA: Correctomap_request_dma_chain()Quoted 3 lines · Tony Lindgren
From: Santosh Shilimkar <[email protected]>
Original OMAP DMA chaining design has
chain_idas one ofthe callback
Quoted 5 lines
parameters. Patch
538528de0cb256f65716ab2e9613d9e920f97fe2broke the desing.Change the callback to return the logical channel number and not
chain_id.Quoted 6 lines
Quoted 5 lines
This patch does not make a material change. It merely changes the name
used in a couple function pointer prototype. This has no impact on the
generated code - iow, it's cosmetic.Yes it does look cosmetic but if you see the API signature,
Quoted 8 lines
it corrects the callback parameters which actually the DMA lib sends.
Quoted 2 lines
The current API signature is misleading for chained DMA
transfers where the actual driver passes 'channel number' as one of the callback parameter instead of
chain_idwhich was the original design.Here's this one with more descriptive comments.
Thanks Tony !!
Regards,
Santosh
Tony Lindgren
maintainerPATCH 8/10 ARM: OMAP2/3: Add generic onenand support when connected to GPMC
In reply to Tony LindgrenFrom: Juha Yrjola <[email protected]>
Add generic onenand support when connected to GPMC and make the boards to use it.
The patch has been modified to make it more generic to support all the boards with GPMC. The patch also remove unused prototype for omap2_onenand_rephase(void).
Note that board-apollon.c is currently using the MTD_ONENAND_GENERIC and setting the GPMC timings in the bootloader. Setting the GPMC timings in the bootloader will not allow supporting frequency scaling for the onenand source clock.
--- arch/arm/configs/rx51_defconfig | 2 arch/arm/mach-omap2/Makefile | 3 arch/arm/mach-omap2/board-rx51-peripherals.c | 52 ++++ arch/arm/mach-omap2/gpmc-onenand.c | 340 ++++++++++++++++++++++++++ arch/arm/plat-omap/include/mach/onenand.h | 29 ++ 5 files changed, 423 insertions(+), 3 deletions(-) create mode 100644 arch/arm/mach-omap2/gpmc-onenand.c
arch/arm/configs/rx51_defconfig +1 -1
@@ -282,7 +282,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs rw console=ttyMTD5" +CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set
arch/arm/mach-omap2/Makefile +3 -0
@@ -58,3 +58,6 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ ifeq ($(CONFIG_USB_MUSB_SOC),y) obj-y += usb-musb.o endif + +onenand-$(CONFIG_MTD_ONENAND_OMAP2) := gpmc-onenand.o +obj-y += $(onenand-m) $(onenand-y)
arch/arm/mach-omap2/board-rx51-peripherals.c +52 -0
69 lines not on this page · raw message
arch/arm/mach-omap2/gpmc-onenand.c new file +340 -0
340 lines not on this page · raw message
arch/arm/plat-omap/include/mach/onenand.h +27 -2
@@ -9,8 +9,14 @@* published by the Free Software Foundation. */ +#include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> +#ifndef __ASM_ARCH_OMAP_ONENAND_H__ + +#define ONENAND_SYNC_READ (1 << 0) +#define ONENAND_SYNC_READWRITE (1 << 1) + struct omap_onenand_platform_data { int cs; int gpio_irq;
@@ -18,8 +24,27 @@ struct omap_onenand_platform_data {int nr_parts;int (*onenand_setup)(void __iomem *,int freq);int dma_channel; + u8 flags; }; -int omap2_onenand_rephase (void ); -#define ONENAND_MAX_PARTITIONS 8 + +#if defined(CONFIG_MTD_ONENAND_OMAP2 ) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE ) + +extern void gpmc_onenand_init (struct omap_onenand_platform_data *d); + +#else + +#define board_onenand_data NULL + +static inline void board_onenand_init (void ) +{ +} + +static inline void gpmc_onenand_init (struct omap_onenand_platform_data *d) +{ +} + +#endif +#endif
Re: [PATCH 08/10] ARM: OMAP2/3: Add generic onenand support when connected to GPMC
Quoted 2 lines · Tony Lindgren
(quoted diff) +2
-0+#if defined(CONFIG_MTD_ONENAND_OMAP2) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
...
Quoted 10 lines
arch/arm/mach-omap2/board-rx51-peripherals.c +6
-0+static void __init board_onenand_init (void ) +{ +gpmc_onenand_init (&board_onenand_data); +} + +#endif void __init rx51_peripherals_init (void ) {
arch/arm/mach-omap2/board-rx51-peripherals.c void __init rx51_peripherals_init(void) · line 469
Quoted 4 lines
arch/arm/mach-omap2/board-rx51-peripherals.c +1
-0@@ -415,5 +466,6 @@ void __init rx51_peripherals_init(void) ARRAY_SIZE(rx51_peripherals_devices));rx51_i2c_init ();rx51_init_smc91x (); +board_onenand_init ();
This breaks without onenand support.
Quoted 14 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +8
-0@@ -0,0 +1,340 @@ +/* +* linux/arch/arm/mach-omap2/gpmc-onenand.c +* +* Copyright (C) 2006 - 2009 Nokia Corporation +* Contacts: Juha Yrjola +* Tony Lindgren +* +* This program is free software; you can redistribute it and/or modify
arch/arm/mach-omap2/gpmc-onenand.c line 18
Quoted 10 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +10
-0+* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#include <linux/kernel.h> +#include <linux/platform_device.h> +#include <asm/mach/flash.h> +#include <linux/mtd/onenand_regs.h> + +#include <linux/io.h>
linux/ includes together please (without asm/ includes mixed in).
arch/arm/mach-omap2/gpmc-onenand.c line 87
Quoted 9 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +9
-0+static unsigned short omap2_onenand_readw (void __iomem *addr) +{ +return readw (addr); +} + +static void omap2_onenand_writew (unsigned short value,void __iomem *addr) +{ +writew (value, addr); +}
These two are pointless. Just use readw/writew directly.
arch/arm/plat-omap/include/mach/onenand.h line 15
Quoted 12 lines
arch/arm/plat-omap/include/mach/onenand.h +2
-0@@ -9,8 +9,14 @@* published by the Free Software Foundation. */ +#include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> +#ifndef __ASM_ARCH_OMAP_ONENAND_H__
This provides no protection against multiple includes on its own. You're missing a #define of this symbol.
Quoted 20 lines
arch/arm/plat-omap/include/mach/onenand.h +8
-2+ +#define ONENAND_SYNC_READ (1 << 0) +#define ONENAND_SYNC_READWRITE (1 << 1) +struct omap_onenand_platform_data {int cs;int gpio_irq;@@ -18,8 +24,27 @@ struct omap_onenand_platform_data {int nr_parts;int (*onenand_setup)(void __iomem *,int freq);int dma_channel; +u8 flags; }; -int omap2_onenand_rephase (void ); -#define ONENAND_MAX_PARTITIONS 8 + +#if defined(CONFIG_MTD_ONENAND_OMAP2 ) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE )
arch/arm/plat-omap/include/mach/onenand.h struct omap_onenand_platform_data { · line 43
Quoted 10 lines
arch/arm/plat-omap/include/mach/onenand.h +10
-0+ +extern void gpmc_onenand_init (struct omap_onenand_platform_data *d); + +#else + +#define board_onenand_data NULL + +static inline void board_onenand_init (void ) +{ +}
Eww, you put it in a different file. Disgusting. Please put it in the _same_ file as the place it's used.
Quoted 13 lines
arch/arm/plat-omap/include/mach/onenand.h +7
-1+ +static inline void gpmc_onenand_init (struct omap_onenand_platform_data *d) +{ +} + +#endif +#endif -------------------------------------------------------------------List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
Tony Lindgren
maintainerRe: [PATCH 08/10] ARM: OMAP2/3: Add generic onenand support when connected to GPMC, v2
Quoted 48 lines · Russell King - ARM Linux
Quoted 2 lines · Tony Lindgren
(quoted diff) +2
-0+#if defined(CONFIG_MTD_ONENAND_OMAP2) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)...
Quoted 10 lines
(quoted diff) +6
-0+static void __init board_onenand_init(void) +{ + gpmc_onenand_init(&board_onenand_data); +} + +#endif void __init rx51_peripherals_init(void) {Review void __init rx51_peripherals_init(void) · line 469
Quoted 4 lines
(quoted diff) +1
-0@@ -415,5 +466,6 @@ void __init rx51_peripherals_init(void) ARRAY_SIZE(rx51_peripherals_devices)); rx51_i2c_init(); rx51_init_smc91x(); + board_onenand_init();This breaks without onenand support.
Quoted 14 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +8
-0@@ -0,0 +1,340 @@ +/* +* linux/arch/arm/mach-omap2/gpmc-onenand.c +* +* Copyright (C) 2006 - 2009 Nokia Corporation +* Contacts: Juha Yrjola +* Tony Lindgren +* +* This program is free software; you can redistribute it and/or modify arch/arm/mach-omap2/gpmc-onenand.c line 18
Quoted 10 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +10
-0+* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +*/ + +#include <linux/kernel.h> +#include <linux/platform_device.h> +#include <asm/mach/flash.h> +#include <linux/mtd/onenand_regs.h> + +#include <linux/io.h> linux/ includes together please (without asm/ includes mixed in).
Quoted 11 lines
arch/arm/mach-omap2/gpmc-onenand.c line 27
Quoted 9 lines
arch/arm/mach-omap2/gpmc-onenand.c new file +9
-0+static unsigned short omap2_onenand_readw (void __iomem *addr) +{ +return readw (addr); +} + +static void omap2_onenand_writew (unsigned short value,void __iomem *addr) +{ +writew (value, addr); +}These two are pointless. Just use readw/writew directly.
Updated.
Quoted 8 lines
Quoted 8 lines
arch/arm/plat-omap/include/mach/onenand.h +0
-0@@ -9,8 +9,14 @@* published by the Free Software Foundation. */
Quoted 7 lines
arch/arm/plat-omap/include/mach/onenand.h line 15
Quoted 4 lines
arch/arm/plat-omap/include/mach/onenand.h +2
-0+#include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> +#ifndef __ASM_ARCH_OMAP_ONENAND_H__This provides no protection against multiple includes on its own. You're missing a #define of this symbol.
Removed, it should not be needed here.
Quoted 34 lines
Quoted 20 lines
arch/arm/plat-omap/include/mach/onenand.h +8
-2+ +#define ONENAND_SYNC_READ (1 << 0) +#define ONENAND_SYNC_READWRITE (1 << 1) +struct omap_onenand_platform_data {int cs;int gpio_irq;@@ -18,8 +24,27 @@ struct omap_onenand_platform_data {int nr_parts;int (*onenand_setup)(void __iomem *,int freq);int dma_channel; +u8 flags; }; -int omap2_onenand_rephase (void ); -#define ONENAND_MAX_PARTITIONS 8 + +#if defined(CONFIG_MTD_ONENAND_OMAP2 ) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE )arch/arm/plat-omap/include/mach/onenand.h struct omap_onenand_platform_data { · line 43
Quoted 10 lines
arch/arm/plat-omap/include/mach/onenand.h +10
-0+ +extern void gpmc_onenand_init (struct omap_onenand_platform_data *d); + +#else + +#define board_onenand_data NULL + +static inline void board_onenand_init (void ) +{ +}Eww, you put it in a different file. Disgusting. Please put it in the _same_ file as the place it's used.
Quoted 7 lines
arch/arm/plat-omap/include/mach/onenand.h struct omap_onenand_platform_data { · line 50
Quoted 7 lines
arch/arm/plat-omap/include/mach/onenand.h +7
-0+ +static inline void gpmc_onenand_init (struct omap_onenand_platform_data *d) +{ +} + +#endif +#endif
Moved so it's local to each board-*.c file.
Updated patch below.
Regards,
Tony
Quoted 1 line
From
1cea2b823fffd69d4e1d7d9686e489bc5410ae0eMon Sep 17 00:00:00 2001
From: Juha Yrjola <[email protected]>
Date: Thu, 21 May 2009 09:11:32 -0700
Subject: [PATCH] ARM: OMAP2/3: Add generic onenand support when connected to GPMC
Add generic onenand support when connected to GPMC and make the boards to use it.
The patch has been modified to make it more generic to support all the boards with GPMC. The patch also remove unused prototype for omap2_onenand_rephase(void).
Note that board-apollon.c is currently using the MTD_ONENAND_GENERIC and setting the GPMC timings in the bootloader. Setting the GPMC timings in the bootloader will not allow supporting frequency scaling for the onenand source clock.
arch/arm/configs/rx51_defconfig +1 -1
@@ -282,7 +282,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs rw console=ttyMTD5" +CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0" # CONFIG_XIP_KERNEL is not set # CONFIG_KEXEC is not set
arch/arm/mach-omap2/Makefile +3 -0
@@ -58,3 +58,6 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ ifeq ($(CONFIG_USB_MUSB_SOC),y) obj-y += usb-musb.o endif + +onenand-$(CONFIG_MTD_ONENAND_OMAP2) := gpmc-onenand.o +obj-y += $(onenand-m) $(onenand-y)
arch/arm/mach-omap2/board-rx51-peripherals.c +58 -0
75 lines not on this page · raw message
arch/arm/mach-omap2/gpmc-onenand.c new file +330 -0
330 lines not on this page · raw message
arch/arm/plat-omap/include/mach/onenand.h +20 -2
@@ -9,8 +9,12 @@* published by the Free Software Foundation. */ +#include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> +#define ONENAND_SYNC_READ (1 << 0) +#define ONENAND_SYNC_READWRITE (1 << 1) +struct omap_onenand_platform_data {int cs;int gpio_irq;
@@ -18,8 +22,22 @@ struct omap_onenand_platform_data {int nr_parts;int (*onenand_setup)(void __iomem *,int freq);int dma_channel; +u8 flags; }; -int omap2_onenand_rephase (void ); -#define ONENAND_MAX_PARTITIONS 8 + +#if defined(CONFIG_MTD_ONENAND_OMAP2 ) || \ + defined(CONFIG_MTD_ONENAND_OMAP2_MODULE ) + +extern void gpmc_onenand_init (struct omap_onenand_platform_data *d); + +#else + +#define board_onenand_data NULL + +static inline void gpmc_onenand_init (struct omap_onenand_platform_data *d) +{ +} + +#endif
Tony Lindgren
maintainerPATCH 9/10 ARM: OMAP2/3: Add generic smc91x support when connected to GPMC
In reply to Tony LindgrenConvert the board-rx51 smc91x code to be generic and make the boards to use it. This allows future recalculation of the timings when the source clock gets scaled.
Also correct the rx51 interrupt to be IORESOURCE_IRQ_HIGHLEVEL.
Thanks to Paul Walmsley <[email protected]> for better GPMC timing calculations.
--- arch/arm/mach-omap2/Makefile | 3 arch/arm/mach-omap2/board-2430sdp.c | 101 ++----------- arch/arm/mach-omap2/board-3430sdp.c | 78 +++------- arch/arm/mach-omap2/board-rx51-peripherals.c | 140 +++---------------- arch/arm/mach-omap2/gpmc-smc91x.c | 189 +++++++++++++++++++++++++ arch/arm/plat-omap/include/mach/gpmc-smc91x.h | 46 ++++++ 6 files changed, 301 insertions(+), 256 deletions(-) create mode 100644 arch/arm/mach-omap2/gpmc-smc91x.c create mode 100644 arch/arm/plat-omap/include/mach/gpmc-smc91x.h
arch/arm/mach-omap2/Makefile +3 -0
@@ -61,3 +61,6 @@ endif onenand-$(CONFIG_MTD_ONENAND_OMAP2) := gpmc-onenand.o obj-y += $(onenand-m) $(onenand-y) + +smc91x-$(CONFIG_SMC91X) := gpmc-smc91x.o +obj-y += $(smc91x-m) $(smc91x-y)
arch/arm/mach-omap2/board-2430sdp.c +18 -83
138 lines not on this page · raw message
arch/arm/mach-omap2/board-3430sdp.c +22 -56
121 lines not on this page · raw message
arch/arm/mach-omap2/board-rx51-peripherals.c +23 -117
164 lines not on this page · raw message
arch/arm/mach-omap2/gpmc-smc91x.c new file +189 -0
189 lines not on this page · raw message
arch/arm/plat-omap/include/mach/gpmc-smc91x.h new file +46 -0
46 lines not on this page · raw message
Re: [PATCH 09/10] ARM: OMAP2/3: Add generic smc91x support when connected to GPMC
Quoted 3 lines · Tony Lindgren
Convert the board-rx51 smc91x code to be generic and make the boards to use it. This allows future recalculation of the timings when the source clock gets scaled.
Same complaint about splitting the stub function from where it's used - it's worse than wrapping the call in an ifdef itself.
Tony Lindgren
maintainerRe: [PATCH 09/10] ARM: OMAP2/3: Add generic smc91x support when connected to GPMC, v2
Quoted 7 lines · Russell King - ARM Linux
Quoted 3 lines · Tony Lindgren
Convert the board-rx51 smc91x code to be generic and make the boards to use it. This allows future recalculation of the timings when the source clock gets scaled.
Same complaint about splitting the stub function from where it's used - it's worse than wrapping the call in an ifdef itself.
Here's this one updated to make it local for each board-*.c.
Tony
Quoted 1 line
From
a9bf1f89964eb53ef47e64a67d090594e5202e58Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Mon, 25 May 2009 09:54:42 -0700
Subject: [PATCH] ARM: OMAP2/3: Add generic smc91x support when connected to GPMC
Convert the board-rx51 smc91x code to be generic and make the boards to use it. This allows future recalculation of the timings when the source clock gets scaled.
Also correct the rx51 interrupt to be IORESOURCE_IRQ_HIGHLEVEL.
Thanks to Paul Walmsley <[email protected]> for better GPMC timing calculations.
arch/arm/mach-omap2/Makefile +3 -0
@@ -61,3 +61,6 @@ endif onenand-$(CONFIG_MTD_ONENAND_OMAP2) := gpmc-onenand.o obj-y += $(onenand-m) $(onenand-y) + +smc91x-$(CONFIG_SMC91X) := gpmc-smc91x.o +obj-y += $(smc91x-m) $(smc91x-y)
arch/arm/mach-omap2/board-2430sdp.c +22 -81
142 lines not on this page · raw message
arch/arm/mach-omap2/board-3430sdp.c +28 -56
127 lines not on this page · raw message
arch/arm/mach-omap2/board-rx51-peripherals.c +29 -117
170 lines not on this page · raw message
arch/arm/mach-omap2/gpmc-smc91x.c new file +189 -0
189 lines not on this page · raw message
arch/arm/plat-omap/include/mach/gpmc-smc91x.h new file +42 -0
42 lines not on this page · raw message
Tony Lindgren
maintainerPATCH 10/10 ARM: OMAP2: 2430SDP: Add FB support to board file
In reply to Tony LindgrenFrom: Imre Deak <[email protected]>
Based on an earlier patch by Hunyue Yau <[email protected]> with board-*.c changes split to avoid conflicts with other device updates.
--- arch/arm/mach-omap2/board-2430sdp.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-2430sdp.c +19 -0
@@ -41,6 +41,7 @@#include "mmc-twl4030.h" #define SDP2430_CS0_BASE 0x04000000 +#define SECONDARY_LCD_GPIO 147static struct mtd_partition sdp2430_partitions[] = {/* bootloader (U-Boot, etc) in first sector */
@@ -96,8 +97,18 @@ static struct platform_device sdp2430_flash_device = { .resource = &sdp2430_flash_resource, }; +static struct platform_device sdp2430_lcd_device = { + .name ="sdp2430_lcd" , + .id =-1 , +}; +static struct platform_device *sdp2430_devices[]__initdata = { &sdp2430_flash_device, + &sdp2430_lcd_device, +}; + +static struct omap_lcd_config sdp2430_lcd_config__initdata = { + .ctrl_name ="internal" , };#if defined(CONFIG_SMC91X ) || defined(CONFIG_SMC91x_MODULE)
@@ -135,6 +146,7 @@ static struct omap_uart_config sdp2430_uart_config __initdata = {static struct omap_board_config_kernel sdp2430_config[] = { {OMAP_TAG_UART , &sdp2430_uart_config}, + {OMAP_TAG_LCD , &sdp2430_lcd_config}, };
@@ -182,6 +194,8 @@ static struct twl4030_hsmmc_info mmc[] __initdata = {static void __init omap_2430sdp_init (void ) { +int ret; +omap2430_i2c_init ();platform_add_devices (sdp2430_devices,ARRAY_SIZE (sdp2430_devices));
@@ -191,6 +205,11 @@ static void __init omap_2430sdp_init(void)twl4030_mmc_init (mmc);usb_musb_init ();board_smc91x_init (); + +/* Turn off secondary LCD backlight */ + ret =gpio_request (SECONDARY_LCD_GPIO ,"Secondary LCD backlight" ); +if (ret ==0 ) +gpio_direction_output (SECONDARY_LCD_GPIO ,0 ); }static void __init omap_2430sdp_map_io (void )
Tony Lindgren
maintainer[PATCH 11/10] ARM: OMAP: Add some entries to MAINTAINERS
Hi all,
Here are few omap entries to MAINTAINERS as discussed several times before.
Regards,
Tony
From 7b0476d90c713d7315161bbbfe7bdcd98f3f9853 Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Mon, 25 May 2009 10:04:16 -0700
Subject: [PATCH] ARM: OMAP: Add some entries to MAINTAINERS
Add some entries to MAINTAINERS.
Also regroup all omap entries together, and remove an inactive MMC maintainers entry, and Jarkko Lavinen instead.
MAINTAINERS +63 -14
@@ -4119,6 +4119,69 @@ S: Maintained F: drivers/video/riva/ F: drivers/video/nvidia/ +OMAP SUPPORT +P: Tony Lindgren <[email protected]> +M: [email protected] +L: [email protected] +W: http://www.muru.com/linux/omap/ +W: http://linux.omap.com/ +T: git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git +S: Maintained +F: arch/arm/*omap* + +OMAP CLOCK FRAMEWORK SUPPORT +P: Paul Walmsley +M: [email protected] +L: [email protected] +S: Maintained +F: arch/arm/*omap*/*clock* + +OMAP POWER MANAGEMENT SUPPORT +P: Kevin Hilman +M: [email protected] +L: [email protected] +S: Maintained +F: arch/arm/*omap*/*pm* + +OMAP AUDIO SUPPORT +P: Jarkko Nikula +M: [email protected] +L: [email protected] (subscribers-only) +L: [email protected] +S: Maintained +F: sound/soc/omap/ + +OMAP FRAMEBUFFER SUPPORT +P: Imre Deak +M: [email protected] +L: [email protected] (moderated for non-subscribers) +L: [email protected] +S: Maintained +F: drivers/video/omap/ + +OMAP MMC SUPPORT +P: Jarkko Lavinen +M: [email protected] +L: [email protected] +L: [email protected] +S: Maintained +F: drivers/mmc/host/*omap* + +OMAP RANDOM NUMBER GENERATOR SUPPORT +P: Deepak Saxena +M: [email protected] +S: Maintained +F: drivers/char/hw_random/omap-rng.c + +OMAP USB SUPPORT +P: Felipe Balbi +M: [email protected] +P: David Brownell +M: [email protected] +L: [email protected] +L: [email protected] +S: Maintained + OMFS FILESYSTEM P: Bob Copeland M: [email protected]
@@ -5507,20 +5570,6 @@ F: drivers/misc/tifm* F: drivers/mmc/host/tifm_sd.c F: include/linux/tifm.h -TI OMAP MMC INTERFACE DRIVER -P: Carlos Aguiar, Anderson Briglia and Syed Khasim -M: [email protected] -W: http://linux.omap.com -W: http://www.muru.com/linux/omap/ -S: Maintained -F: drivers/mmc/host/omap.c - -TI OMAP RANDOM NUMBER GENERATOR SUPPORT -P: Deepak Saxena -M: [email protected] -S: Maintained -F: drivers/char/hw_random/omap-rng.c - TIPC NETWORK LAYER P: Per Liden M: [email protected]
Quoted 4 lines · Tony Lindgren
Hi all,
This series contains omap updates for review. There will be one more series after this for omap3 specific patches.
I've merged these into omap for-next branch.
Quoted 64 lines
Regards,
Tony
---
Eero Nurkkala (1):
ARM: OMAP: McBSP: Fix legacy interrupts to clear their statusImre Deak (1):
ARM: OMAP2: 2430SDP: Add FB support to board fileJarkko Nikula (1):
ARM: OMAP: Update contact address of I2C registration helperJuha Yrjola (1):
ARM: OMAP2/3: Add generic onenand support when connected to GPMCMans Rullgard (1):
ARM: OMAP: IncreaseVMALLOC_ENDto allow 256MB RAMSantosh Shilimkar (1):
ARM: OMAP2/3: sDMA: Correctomap_request_dma_chain()Tomi Valkeinen (1):
ARM: OMAP2/3: DMA: implement trans copy and const fillTony Lindgren (3):
ARM: OMAP2/3: Add generic smc91x support when connected to GPMC
ARM: OMAP1: Make 770 LCD work
ARM: OMAP1: Misc clean-uparch/arm/configs/rx51_defconfig | 2 arch/arm/mach-omap1/Kconfig | 1 arch/arm/mach-omap1/Makefile | 4 arch/arm/mach-omap1/board-nokia770.c | 17 + arch/arm/mach-omap2/Makefile | 6 arch/arm/mach-omap2/board-2430sdp.c | 112 ++------ arch/arm/mach-omap2/board-3430sdp.c | 78 ++---- arch/arm/mach-omap2/board-rx51-peripherals.c | 192 ++++++-------- arch/arm/mach-omap2/gpmc-onenand.c | 340 +++++++++++++++++++++++++ arch/arm/mach-omap2/gpmc-smc91x.c | 189 ++++++++++++++ arch/arm/plat-omap/dma.c | 79 ++++-- arch/arm/plat-omap/i2c.c | 2 arch/arm/plat-omap/include/mach/dma.h | 3 arch/arm/plat-omap/include/mach/gpmc-smc91x.h | 46 +++ arch/arm/plat-omap/include/mach/hwa742.h | 5 arch/arm/plat-omap/include/mach/onenand.h | 29 ++ arch/arm/plat-omap/include/mach/vmalloc.h | 2 arch/arm/plat-omap/mcbsp.c | 30 ++ arch/arm/plat-omap/sram.c | 4 drivers/video/omap/hwa742.c | 26 +- 20 files changed, 851 insertions(+), 316 deletions(-) create mode 100644 arch/arm/mach-omap2/gpmc-onenand.c create mode 100644 arch/arm/mach-omap2/gpmc-smc91x.c create mode 100644 arch/arm/plat-omap/include/mach/gpmc-smc91x.hSignature · 5 lines
Signature -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html