Re: [PATCH/RFC 0/4] convert HS-MMC driver to hwmod + runtime PM
Kevin Hilman wrote: Madhusudhan madhu...@ti.com writes: -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Kevin Hilman Sent: Tuesday, February 23, 2010 6:51 PM To: linux-omap@vger.kernel.org Subject: Re: [PATCH/RFC 0/4] convert HS-MMC driver to hwmod + runtime PM Kevin Hilman khil...@deeprootsystems.com writes: This series converts the OMAP HS-MMC driver to use omap_hwmod + runtime PM API. Depends on MMC hwmods available in 'pm-wip/hwmods' branch of my git tree[1] as well as previously posted runtime PM series: [PATCH/RFC 0/2] initial runtime PM layer for OMAP The easies way to experiment/test is to use my 'pm-wip/mmc' branch which has all the dependencies, and is based on omap/for-next'. It has been tested by merging with current PM branch. [1] http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm.git A question for those of you who actually understand the MMC driver... I'm having problems getting my head around the current PM stuff in the MMC driver. My primary question is: Why does the suspend hook need to re-enable the device before suspending? In the scenario where there is no activity on the bus the MMC clocks are kept disabled. Now in the suspend path the MMC core will issue certain CMDs like CMD7(to end the suspend path) to deselect the card(more of a protocol stuff). Hence the host need to be in enabled state before letting the core know that there is a suspend request. I guess what I'm wondering is whether we can (should) have the exact same path for runtime PM (idle) and static PM (suspend/resume.) My current approach is that the suspend is a NOP if the device is already runtime suspended. One difference is that the card-detect irq is disabled during suspend. That means that removeable cards must have their block devices removed too (or not if unsafe-resume is configured). The advantage of OFF-mode is that it will wake-up if someone opens the cover, whereas suspend will not. A similar issue may develop with SDIO which may want to wake-up the device from OFF-mode (e.g. wireless card connected via SDIO) So is the difference that OFF-mode has wakeups but suspend does not? When using runtime PM, the MMC device is disabled including clocks off and regulator off (if power_savings == true) when there is no activity. Then, in the static suspend hook, it's re-enabled (including taking it out of off, re-enabling regulators etc) only to be quickly disabled again. This seems horribly inefficient. This is exactly for the reason I mentioned above. I admit to not understanding the MMC layer terribly well, so can someone enlighten me as to what is going on here? What I am testing here is a patch on top of this series (below) that adds a check to the static suspend hook. If the device is already runtime suspended, then the suspend and resume hooks should be noop. This appears to work just fine while testing on omap3evm just doing simple read/write tests before an after suspend resume. I did some basic testing with your previously posted patches. But my testing was incomplete because on Zoom2 because for some reason the OFF mode was not working even without your patches. OK, I will try on Zoom2. I've only tested this so far on OMAP3EVM. My concern was more with respect to OFF mode in idle path since your patches removed context restore calls if I recall correctly. No, I didn't remove restore. I just moved it into the runtime PM resume callback. Are you able to hit CORE OFF and then come back and do the read/write transfers in idle as well as suspend/resume path? Yes. Kevin Note that if you want to test this patch, it also depends on this patch to runtime PM from the linux-pm list: https://lists.linux-foundation.org/pipermail/linux-pm/2010- February/024275.html These are all included in an updated version of my pm-wip/mmc branch for ease of testing. Merge it with the current PM branch, enable CONFIG_PM_RUNTIME and test away. Kevin commit 166cba7679fa267ee6e6eb39fd1e871ede5ded16 Author: Kevin Hilman khil...@deeprootsystems.com Date: Tue Feb 23 16:21:56 2010 -0800 MMC: omap_hsmmc: check for runtime-suspend in static suspend diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 16d66b9..dd027bb 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -,6 +,9 @@ static int omap_hsmmc_suspend(struct device *dev) if (host host-suspended) return 0; + if (pm_is_runtime_suspended(host-dev)) + return 0; + if (host) { host-suspended = 1; if (host-pdata-suspend) { @@ -2260,12 +2263,6 @@ static int omap_hsmmc_suspend(struct device *dev) } mmc_host_disable(host-mmc); } - - /* -* HACK: extra put to compensate for DPM core keeping -
Re: [PATCHv4 7/7] ASoC: TWL6030: Detect power-up sequence completion
On 25 Feb 2010, at 00:24, Olaya, Margarita magi.ol...@ti.com wrote: -Original Message- From: Mark Brown [mailto:broo...@opensource.wolfsonmicro.com] Sent: Wednesday, February 24, 2010 7:59 AM To: Olaya, Margarita Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; l...@slimlogic.co.uk Subject: Re: [PATCHv4 7/7] ASoC: TWL6030: Detect power-up sequence completion On Tue, Feb 23, 2010 at 06:10:54PM -0600, Olaya, Margarita wrote: +if (naudint) { +/* wait for ready interrupt with 48 ms timeout */ +time_left = wait_for_completion_timeout(priv-ready, +msecs_to_jiffies(48)); +} else { +/* retry 3 times only */ +for (time_left = 3; time_left 0; time_left--) { +mdelay(16); +twl_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, intid, +TWL6030_REG_INTID); +if (intid TWL6030_READYINT) +break; +} +} It strikes me that you could combine these two cases - the wait_for_completion_timeout() will function just as well as a delay. I'd also expect to see an error reported if the device doesn't report as ready one way or another. It is split to prevent the case of none valid irq line connected, in such case, wait_for_completion won't work It will - you can specify a timeout so if the interrupt doesn't happen all that happens is that you delay for the specified timeout. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCHv5] OMAP3: Serial: Improved sleep logic
-Original Message- From: ext Kevin Hilman [mailto:khil...@deeprootsystems.com] Sent: 24 February, 2010 18:05 To: Kristo Tero (Nokia-D/Tampere) Cc: linux-omap@vger.kernel.org Subject: Re: [PATCHv5] OMAP3: Serial: Improved sleep logic Tero Kristo tero.kri...@nokia.com writes: From: Tero Kristo tero.kri...@nokia.com This patch contains following improvements: - Only RX interrupt will now kick the sleep prevent timer - TX fifo status is checked before disabling clocks, this will prevent on-going transmission to be cut - Smartidle is now enabled/disabled only while switching clocks, as having smartidle enabled while RX/TX prevents any interrupts from being received from UART module - Sleep prevent timer is changed to use timespec instead of a jiffy timer as jiffy timers are not valid within idle loop (tick scheduler is stopped) Could also probably use hrtimers for this. Maybe, I didn't try this out though. It is possible that there are some issues as hrtimers use ktime() as far as I understand and it is not accessible during suspend. There is a separate issue with this patch and suspend though, I am currently working on a fix for that. Suspend skewes the timebase even more, and we get expire timers that point far into the future after suspend. That being said, I'm not sure what is the problem you're trying to solve with this change. I don't see any timings that are timing events inside the idle loop. Here is the call-chain that currently accesses jiffies count incorrectly: cpu_idle: tick_nohz_stop_sched_tick(1); /* jiffy timer stops here */ omap_sram_idle(); omap_uart_prepare_idle(); asm(wfi); /* sleep here for N seconds */ omap_uart_resume_idle(); /* This call uses incorrect jiffy timer now */ tick_nohz_restart_sched_tick(); /* jiffy timer restarted here, and jiffy timer is refreshed also to correct value */ - Added RX ignore timer for ignoring the first character received during first millisecond of wakeup, this prevents garbage character to be receive in low sleep states Signed-off-by: Tero Kristo tero.kri...@nokia.com Something is still not quite right here. This doesn't work on my n900 here when testing this patch on top of the PM branch. The default is now a default timeout of zero. When I enable a 5 sec. timeout for UART2 on RX-51, when the timer expires, I no longer have response on the console. To test, I booted my n900 with init=/bin/sh to avoid all the setup done by /sbin/preinit. Then I enabled a timeout for UART2 only, and then the console hangs. Here's my hunch as to what's happening: I think the problem is a deadlock in getrawmonotonic(). Nested calls here will deadlock due to the xtime_lock being held. Looking at the seqlock code, I think a seqlock reader can hang only in a case where someone is constantly writing the seqlock. And, as we are inside interrupt, this should not be possible. When updading the timeout, sleep_timeout_store() does a getrawmonotonic() to update the expiry time. While this happening, the UART interrupt could fire, causing an omap_uart_block_sleep() which would also getrawmonotonic() and deadlock in interrupt mode. It does not really explain why it hangs after the 5 second period though, as the device has called getrawmonotonic several times by this already. I have not seen this kind of behavior in my testing, even while fiddling with the sleep_timeout_store(). Anyway, I'll attempt to re-run my test on the latest PM / master branches and see what happens. Kevin --- arch/arm/mach-omap2/serial.c | 98 + 1 files changed, 69 insertions(+), 29 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 5f3035e..f49c465 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -29,6 +29,8 @@ #include plat/clock.h #include plat/control.h +#include asm/div64.h + #include prm.h #include pm.h #include prm-regbits-34xx.h @@ -42,13 +44,14 @@ * disabled via sysfs. This also causes that any deeper omap sleep states are * blocked. */ -#define DEFAULT_TIMEOUT 0 +#define DEFAULT_TIMEOUT (0LL * NSEC_PER_SEC) struct omap_uart_state { int num; int can_sleep; -struct timer_list timer; -u32 timeout; +struct timespec expire_time; +struct timespec garbage_time; +u64 timeout; void __iomem *wk_st; void __iomem *wk_en; @@ -243,6 +246,9 @@ static inline void omap_uart_save_context(struct omap_uart_state *uart) {} static inline void omap_uart_restore_context(struct omap_uart_state *uart) {} #endif /* CONFIG_PM CONFIG_ARCH_OMAP3 */ +static void omap_uart_smart_idle_enable(struct omap_uart_state *uart, +int enable); + static inline void omap_uart_enable_clocks(struct omap_uart_state *uart) { if (uart-clocked) @@ -250,8 +256,13 @@ static inline void
Re: [alsa-devel] [PATCHv4 2/7] ASoC: TWL6030: Add twl6030 codec driver
On Wed, 2010-02-24 at 17:37 -0600, Olaya, Margarita wrote: -Original Message- From: Liam Girdwood [mailto:l...@slimlogic.co.uk] Sent: Wednesday, February 24, 2010 4:38 AM To: Olaya, Margarita Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; broo...@opensource.wolfsonmicro.com Subject: Re: [PATCHv4 2/7] ASoC: TWL6030: Add twl6030 codec driver On Tue, 2010-02-23 at 18:10 -0600, Olaya, Margarita wrote: From: Misael Lopez Cruz x0052...@ti.com Initial version of TWL6030 codec driver. The TWL6030 codec uses a propietary PDM-based digital audio interface. Audio paths supported are: - Input: Main Mic, Sub Mic, Headset Mic, Auxiliary-FM Left/Right - Output: Headset Left/Right, Handsfree Left/Right + +/* + * read from twl6030 hardware register + */ +static int twl6030_read(struct snd_soc_codec *codec, + unsigned int reg) +{ + u8 value; + + if (reg = TWL6030_CACHEREGNUM) + return -EIO; + + twl_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg); + twl6030_write_reg_cache(codec, reg, value); You probably want to read from the cache if the register is not volatile. This saves a slow I2C read. This function is called for volatile registers; if the register is not volatile we call twl6030_read_reg_cache. I could merge those two functions with a case for those. Ok, could amend the name or comment so it's obvious this is for volatiles. Thanks Liam -- Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [alsa-devel] [PATCHv4 0/7] TWL6030 audio codec initial support
On Wed, 2010-02-24 at 18:17 -0600, Olaya, Margarita wrote: -Original Message- From: Liam Girdwood [mailto:l...@slimlogic.co.uk] Sent: Wednesday, February 24, 2010 5:40 AM To: Olaya, Margarita Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; broo...@opensource.wolfsonmicro.com Subject: Re: [PATCHv4 0/7] TWL6030 audio codec initial support On Tue, 2010-02-23 at 18:10 -0600, Olaya, Margarita wrote: Following patch series add initial support for TWL6030 codec driver. The patch set is based on the series sent from Misael Lopez in October 2009. Changes from v3: - Remove snd_soc_init_card function - Adapt to latest twl core changes based on Balaji's comment Regards, Margarita --- Misael Lopez Cruz (7): OMAP4: PMIC: Add support for twl6030 codec ASoC: TWL6030: Add twl6030 codec driver ASoC: TWL6030: Manual power-up/down sequences ASoC: TWL6030: Add support for low-power PLL ASoC: TWL6030: Add restrictions for low-power playback mode ASoC: TWL6030: Enable audio interrupt ASoC: TWL6030: Detect power-up sequence completion Btw, since this is a new driver can you rebase the 6 codec patches into a single patch. The second patch adds the basic support for the codec and the others add features, that way it could be easier to review. Some of the subsequent patches are actually removing chunks of code rather than just adding new features. In this case it's actually easier to review the complete codec driver as one patch rather than a series of changes (showing your internal development history). Thanks Liam -- Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[no subject]
Subject: [PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. Signed-off-by: Thomas Weber we...@corscience.de --- arch/arm/mach-omap2/serial.c | 15 ++- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index b79bc89..da77930 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value) } void __init omap_serial_early_init(void) { - int i; + int i, nr_ports; char name[16]; + if (!(cpu_is_omap3630() || cpu_is_omap4430())) + nr_ports = 3; + else + nr_ports = ARRAY_SIZE(omap_uart); + /* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on * if not needed. */ - for (i = 0; i ARRAY_SIZE(omap_uart); i++) { + for (i = 0; i nr_ports; i++) { struct omap_uart_state *uart = omap_uart[i]; struct platform_device *pdev = uart-pdev; struct device *dev = pdev-dev; @@ -669,17 +674,17 @@ void __init omap_serial_early_init(void) continue; } - sprintf(name, uart%d_ick, i+1); + sprintf(name, uart%d_ick, i + 1); uart-ick = clk_get(NULL, name); if (IS_ERR(uart-ick)) { - printk(KERN_ERR Could not get uart%d_ick\n, i+1); + printk(KERN_ERR Could not get uart%d_ick\n, i + 1); uart-ick = NULL; } sprintf(name, uart%d_fck, i+1); uart-fck = clk_get(NULL, name); if (IS_ERR(uart-fck)) { - printk(KERN_ERR Could not get uart%d_fck\n, i+1); + printk(KERN_ERR Could not get uart%d_fck\n, i + 1); uart-fck = NULL; } -- 1.6.4.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init
The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. Signed-off-by: Thomas Weber we...@corscience.de --- arch/arm/mach-omap2/serial.c | 15 ++- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index b79bc89..da77930 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value) } void __init omap_serial_early_init(void) { - int i; + int i, nr_ports; char name[16]; + if (!(cpu_is_omap3630() || cpu_is_omap4430())) + nr_ports = 3; + else + nr_ports = ARRAY_SIZE(omap_uart); + /* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on * if not needed. */ - for (i = 0; i ARRAY_SIZE(omap_uart); i++) { + for (i = 0; i nr_ports; i++) { struct omap_uart_state *uart = omap_uart[i]; struct platform_device *pdev = uart-pdev; struct device *dev = pdev-dev; @@ -669,17 +674,17 @@ void __init omap_serial_early_init(void) continue; } - sprintf(name, uart%d_ick, i+1); + sprintf(name, uart%d_ick, i + 1); uart-ick = clk_get(NULL, name); if (IS_ERR(uart-ick)) { - printk(KERN_ERR Could not get uart%d_ick\n, i+1); + printk(KERN_ERR Could not get uart%d_ick\n, i + 1); uart-ick = NULL; } sprintf(name, uart%d_fck, i+1); uart-fck = clk_get(NULL, name); if (IS_ERR(uart-fck)) { - printk(KERN_ERR Could not get uart%d_fck\n, i+1); + printk(KERN_ERR Could not get uart%d_fck\n, i + 1); uart-fck = NULL; } -- 1.6.4.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2] Input: ads7846: add regulator support
On Sat, Feb 13, 2010 at 06:49:11PM +, Mark Brown wrote: On Sat, Feb 13, 2010 at 06:31:54PM +0200, Grazvydas Ignotas wrote: The ADS7846/TSC2046 touchscreen controllers can (and usually are) connected to various regulators for power, so add regulator support. Valid regulator will now be required, so boards without complete regulator setup should either disable regulator framework or enable CONFIG_REGULATOR_DUMMY. Signed-off-by: Grazvydas Ignotas nota...@gmail.com Looks good from a regulator API point of view: Acked-by: Mark Brown broo...@opensource.wolfsonmicro.com Will apply to next, thank you Grazvydas. -- Dmitry -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCHv4 1/7] OMAP4: PMIC: Add support for twl6030 codec
On Wed, Feb 24, 2010 at 03:43:14PM -0600, Olaya, Margarita wrote: [Reflowed into 80 columns] I'll re-submit the patch series using twl6040_codec instead of twl6030_codec, twl6030 is the power companion chip and twl4030 is the audio chip, so in the case of this patch should I send an incremental patch to rename it? Incremental patch, please. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCHv4 2/7] ASoC: TWL6030: Add twl6030 codec driver
On Wed, Feb 24, 2010 at 05:37:44PM -0600, Olaya, Margarita wrote: -Original Message- From: Liam Girdwood [mailto:l...@slimlogic.co.uk] Are these two functions writing the default codec register values to the CODEC or are these non default (i.e. reset) values. If they are reset values is it not better to just issue the reset (and save the slow I2C writes) ? Yeap, but they write non default values to most of the registers. Why are these non-default values being set? The general style with things like this is that the register defaults listed in the driver are the physical defaults, and any explicit configuration is done with register writes. This makes it clearer what's being changed and means that the actual register defaults are there for use if required. Normally only things that should be changed for all systems would be configured in this manner, things like audio paths which might change per system would be left for userspace to configure. BTW, please remember to delete unneeded context from your mails when replying - it makes them much easier to read since the new text isn't buried in many page of quotations (especially so when reading mail on a mobile device). +/* + * MICATT volume control: + * from -6 to 0 dB in 6 dB steps + */ +static DECLARE_TLV_DB_SCALE(mic_preamp_tlv, -600, 600, 0); + +/* + * MICGAIN volume control: + * from 6 to 30 dB in 6 dB steps + */ +static DECLARE_TLV_DB_SCALE(mic_amp_tlv, 600, 600, 0); + +/* + * HSGAIN volume control: + * from -30 to 0 dB in 2 dB steps + */ +static DECLARE_TLV_DB_SCALE(hs_tlv, -3000, 200, 0); + +/* + * HFGAIN volume control: + * from -52 to 6 dB in 2 dB steps + */ +static DECLARE_TLV_DB_SCALE(hf_tlv, -5200, 200, 0); + +/* Left analog microphone selection */ +static const char *twl6030_amicl_texts[] = + {Headset Mic, Main Mic, Aux/FM Left, Off}; + +/* Right analog microphone selection */ +static const char *twl6030_amicr_texts[] = + {Headset Mic, Sub Mic, Aux/FM Right, Off}; + +static const struct soc_enum twl6030_enum[] = { + SOC_ENUM_SINGLE(TWL6030_REG_MICLCTL, 3, 3, twl6030_amicl_texts), + SOC_ENUM_SINGLE(TWL6030_REG_MICRCTL, 3, 3, twl6030_amicr_texts), +}; + +static const struct snd_kcontrol_new amicl_control = + SOC_DAPM_ENUM(Route, twl6030_enum[0]); + +static const struct snd_kcontrol_new amicr_control = + SOC_DAPM_ENUM(Route, twl6030_enum[1]); + +/* Headset DAC playback switches */ +static const struct snd_kcontrol_new hsdacl_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HSLCTL, 5, 1, 0); + +static const struct snd_kcontrol_new hsdacr_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HSRCTL, 5, 1, 0); + +/* Handsfree DAC playback switches */ +static const struct snd_kcontrol_new hfdacl_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HFLCTL, 2, 1, 0); + +static const struct snd_kcontrol_new hfdacr_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HFRCTL, 2, 1, 0); + +/* Headset driver switches */ +static const struct snd_kcontrol_new hsl_driver_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HSLCTL, 2, 1, 0); + +static const struct snd_kcontrol_new hsr_driver_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HSRCTL, 2, 1, 0); + +/* Handsfree driver switches */ +static const struct snd_kcontrol_new hfl_driver_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HFLCTL, 4, 1, 0); + +static const struct snd_kcontrol_new hfr_driver_switch_controls = + SOC_DAPM_SINGLE(Switch, TWL6030_REG_HFRCTL, 4, 1, 0); + +static const struct snd_kcontrol_new twl6030_snd_controls[] = { + /* Capture gains */ + SOC_DOUBLE_TLV(Capture Preamplifier Volume, + TWL6030_REG_MICGAIN, 6, 7, 1, 1, mic_preamp_tlv), + SOC_DOUBLE_TLV(Capture Volume, + TWL6030_REG_MICGAIN, 0, 3, 4, 0, mic_amp_tlv), + + /* Playback gains */ + SOC_DOUBLE_TLV(Headset Playback Volume, + TWL6030_REG_HSGAIN, 0, 4, 0xF, 1, hs_tlv), + SOC_DOUBLE_R_TLV(Handsfree Playback Volume, + TWL6030_REG_HFLGAIN, TWL6030_REG_HFRGAIN, 0, 0x1D, 1, hf_tlv), + +}; + +static const struct snd_soc_dapm_widget twl6030_dapm_widgets[] = { + /* Inputs */ + SND_SOC_DAPM_INPUT(MAINMIC), + SND_SOC_DAPM_INPUT(HSMIC), + SND_SOC_DAPM_INPUT(SUBMIC), + SND_SOC_DAPM_INPUT(AFML), + SND_SOC_DAPM_INPUT(AFMR), + + /* Outputs */ + SND_SOC_DAPM_OUTPUT(HSOL), + SND_SOC_DAPM_OUTPUT(HSOR), + SND_SOC_DAPM_OUTPUT(HFL), + SND_SOC_DAPM_OUTPUT(HFR), + + /* Analog input muxes for the capture amplifiers */ +
Re: [alsa-devel] [PATCHv4 2/7] ASoC: TWL6030: Add twl6030 codec driver
On Wed, Feb 24, 2010 at 05:57:25PM -0600, Olaya, Margarita wrote: A switch statement would be nicer here. You mean something like this? switch (reg) { case TWL6030_REG_ASICID: case TWL6030_REG_ASICREV: case TWL6030_REG_STATUS: continue; default: break: } Yes. -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/4] USB: MUSB: Add OMAP4 support in MUSB driver
Hello. Maulik Mankad wrote: This patch adds CONFIG_ARCH_OMAP4 macro within MUSB driver code and builds the MUSB driver for OMAP4. Signed-off-by: Maulik Mankad x0082...@ti.com Cc: Felipe Balbi felipe.ba...@nokia.com Cc: Greg Kroah-Hartman gre...@suse.de Cc: David Brownell davi...@pacbell.net --- Index: mainline/drivers/usb/musb/Makefile === --- mainline.orig/drivers/usb/musb/Makefile +++ mainline/drivers/usb/musb/Makefile @@ -22,6 +22,10 @@ ifeq ($(CONFIG_ARCH_OMAP3430),y) musb_hdrc-objs += omap2430.o endif +ifeq ($(CONFIG_ARCH_OMAP4),y) + musb_hdrc-objs += omap2430.o +endif + ifeq ($(CONFIG_BF54x),y) musb_hdrc-objs += blackfin.o endif I think this should be combined with patch 2/4 which doesn't make much sense otherwise... WBR, Sergei -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] AM3517 EVM: Enable I2C support.
There are multiple devices connected to I2C bus on AM3517EVM (for instance audio codec, IO expander etc). Enable I2C support in the default kernel configuration for AM3517 EVM. Signed-off-by: Sriramakrishnan s...@ti.com --- arch/arm/configs/am3517_evm_defconfig | 41 - 1 files changed, 40 insertions(+), 1 deletions(-) diff --git a/arch/arm/configs/am3517_evm_defconfig b/arch/arm/configs/am3517_evm_defconfig index abe9966..04a804b 100644 --- a/arch/arm/configs/am3517_evm_defconfig +++ b/arch/arm/configs/am3517_evm_defconfig @@ -590,7 +590,46 @@ CONFIG_HW_RANDOM=y # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -# CONFIG_I2C is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=y +# CONFIG_I2C_SIMTEC is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_STUB is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] AM3517EVM : correct typo - tca6416 mispelt as tca6516.
Correct instances where tca6416 is misspelt as tca6516 in the board-am3517evm file. Signed-off-by: Sriramakrishnan s...@ti.com --- arch/arm/mach-omap2/board-am3517evm.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index e6b8967..b336adc 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -80,7 +80,7 @@ static void __init am3517_evm_rtc_init(void) static struct pca953x_platform_data am3517evm_gpio_expander_info_0 = { .gpio_base = OMAP_MAX_GPIO_LINES, }; -static struct i2c_board_info __initdata am3517evm_tca6516_info_0[] = { +static struct i2c_board_info __initdata am3517evm_tca6416_info_0[] = { { I2C_BOARD_INFO(tca6416, 0x21), .platform_data = am3517evm_gpio_expander_info_0, @@ -94,7 +94,7 @@ static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_1 = { static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_2 = { .gpio_base = OMAP_MAX_GPIO_LINES + 32, }; -static struct i2c_board_info __initdata am3517evm_ui_tca6516_info[] = { +static struct i2c_board_info __initdata am3517evm_ui_tca6416_info[] = { { I2C_BOARD_INFO(tca6416, 0x20), .platform_data = am3517evm_ui_gpio_expander_info_1, @@ -108,10 +108,10 @@ static struct i2c_board_info __initdata am3517evm_ui_tca6516_info[] = { static int __init am3517_evm_i2c_init(void) { omap_register_i2c_bus(1, 400, NULL, 0); - omap_register_i2c_bus(2, 400, am3517evm_tca6516_info_0, - ARRAY_SIZE(am3517evm_tca6516_info_0)); - omap_register_i2c_bus(3, 400, am3517evm_ui_tca6516_info, - ARRAY_SIZE(am3517evm_ui_tca6516_info)); + omap_register_i2c_bus(2, 400, am3517evm_tca6416_info_0, + ARRAY_SIZE(am3517evm_tca6416_info_0)); + omap_register_i2c_bus(3, 400, am3517evm_ui_tca6416_info, + ARRAY_SIZE(am3517evm_ui_tca6416_info)); return 0; } -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/3] Add support for TCA6416 based Keypad driver.
AM3517 EVM with APPS board includes keys interfaced to TCA6416 IO expander. User keys are connected as GPIO lines to TCA6416 IO expander. Unlike the case with generic gpio-keypad driver individual keys do not generate an interrupt event. Hence we implement a simple keypad driver(based on gpio-keys) that registers as direct I2C client. The implementation has been tested on AM3517 EVM with the driver tested in polling mode. Sriramakrishnan (3): TCA6416 keypad : Implement keypad driver for keys interfaced to TCA6416 AM3517 EVM : Enable TCA6416 keypad AM3517: Board hookup for TCA6416 keypad driver. arch/arm/configs/am3517_evm_defconfig | 15 ++- arch/arm/mach-omap2/board-am3517evm.c | 48 - drivers/input/keyboard/Kconfig | 17 ++ drivers/input/keyboard/Makefile |1 + drivers/input/keyboard/tca6416-keypad.c | 355 +++ include/linux/tca6416_keypad.h | 30 +++ 6 files changed, 460 insertions(+), 6 deletions(-) create mode 100755 drivers/input/keyboard/tca6416-keypad.c create mode 100755 include/linux/tca6416_keypad.h -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/3] AM3517: Board hookup for TCA6416 keypad driver.
Add board specific hookup for TCA6416 keypad driver. Signed-off-by: Sriramakrishnan s...@ti.com --- This patch depends on AM3517EVM : correct typo - tca6416 mispelt as tca6516 patch submitted earlier. [1] http://marc.info/?l=linux-omapm=126709475619102w=2 arch/arm/mach-omap2/board-am3517evm.c | 48 +--- 1 files changed, 43 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index b336adc..a8228b7 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -20,7 +20,10 @@ #include linux/init.h #include linux/platform_device.h #include linux/gpio.h +#include linux/i2c.h #include linux/i2c/pca953x.h +#include linux/input.h +#include linux/tca6416_keypad.h #include mach/hardware.h #include mach/am35xx.h @@ -88,16 +91,51 @@ static struct i2c_board_info __initdata am3517evm_tca6416_info_0[] = { }; /* Mounted on UI Card */ -static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_1 = { +/* IO expander at address 0x20 on UI card will be managed by Keypad driver */ + +static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_2 = { .gpio_base = OMAP_MAX_GPIO_LINES + 16, }; -static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_2 = { - .gpio_base = OMAP_MAX_GPIO_LINES + 32, + +/*Keypad Initialization */ +#define KEYPAD_PIN_MASK0xFFC0 + +#define KEYPAD_BUTTON(ev_type, ev_code, act_low, descr) \ +{ \ + .type = ev_type, \ + .code = ev_code, \ + .active_low = act_low, \ + .desc = btn descr, \ +} + +#define KEYPAD_BUTTON_LOW(event_code, description) \ + KEYPAD_BUTTON(EV_KEY, event_code, 1, description) + +static struct gpio_keys_button am3517_gpio_keys[] = { + KEYPAD_BUTTON_LOW(KEY_DOWN, down), + KEYPAD_BUTTON_LOW(KEY_UP, up), + KEYPAD_BUTTON_LOW(KEY_MENU, menu), + KEYPAD_BUTTON_LOW(KEY_MODE, mode), + KEYPAD_BUTTON_LOW(KEY_LEFTSHIFT, shift), + KEYPAD_BUTTON_LOW(KEY_REWIND, rewind), + KEYPAD_BUTTON_LOW(KEY_FORWARD, forward), + KEYPAD_BUTTON_LOW(KEY_STOP, stop), + KEYPAD_BUTTON_LOW(KEY_PLAY, play), + KEYPAD_BUTTON_LOW(KEY_RECORD, rec), }; + +static struct tca6416_keys_platform_data am3517evm_tca6416_keys_info = { + .buttons= am3517_gpio_keys, + .nbuttons = ARRAY_SIZE(am3517_gpio_keys), + .rep= 0, + .use_polling= 1, + .pinmask= KEYPAD_PIN_MASK, +}; + static struct i2c_board_info __initdata am3517evm_ui_tca6416_info[] = { { - I2C_BOARD_INFO(tca6416, 0x20), - .platform_data = am3517evm_ui_gpio_expander_info_1, + I2C_BOARD_INFO(tca6416-keys, 0x20), + .platform_data = am3517evm_tca6416_keys_info, }, { I2C_BOARD_INFO(tca6416, 0x21), -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/3] AM3517 EVM : Enable TCA6416 keypad
Update kernel configuration for AM3517EVM to include support for TCA6416 keypad. Signed-off-by: Sriramakrishnan s...@ti.com --- arch/arm/configs/am3517_evm_defconfig | 15 ++- 1 files changed, 14 insertions(+), 1 deletions(-) diff --git a/arch/arm/configs/am3517_evm_defconfig b/arch/arm/configs/am3517_evm_defconfig index 04a804b..439ba7f 100644 --- a/arch/arm/configs/am3517_evm_defconfig +++ b/arch/arm/configs/am3517_evm_defconfig @@ -539,7 +539,20 @@ CONFIG_INPUT_EVDEV=y # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_GPIO is not set +CONFIG_KEYBOARD_TCA6416=y +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/3] TCA6416 keypad : Implement keypad driver for keys interfaced to TCA6416
This patch implements a simple Keypad driver that functions as an I2C client. It handles key press events for keys connected to TCA6416 I2C based IO expander. Signed-off-by: Sriramakrishnan s...@ti.com --- drivers/input/keyboard/Kconfig | 17 ++ drivers/input/keyboard/Makefile |1 + drivers/input/keyboard/tca6416-keypad.c | 355 +++ include/linux/tca6416_keypad.h | 30 +++ 4 files changed, 403 insertions(+), 0 deletions(-) create mode 100755 drivers/input/keyboard/tca6416-keypad.c create mode 100755 include/linux/tca6416_keypad.h diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index 02c836e..c2cd31b 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig @@ -190,6 +190,23 @@ config KEYBOARD_GPIO To compile this driver as a module, choose M here: the module will be called gpio_keys. +config KEYBOARD_TCA6416 + tristate TCA6416 Keypad Support + depends on I2C + help + This driver implements basic keypad functionality + for keys connected through TCA6416 IO expander + + Say Y here if your device has keys connected to + TCA6416 IO expander. Your board-specific setup logic + must also provide pin-mask details(of which TCA6416 pins + are used for keypad). + + If enabled the complete TCA6416 device will be managed through + this driver(precludes gpio interface for remaining pins on + TCA6416) + + config KEYBOARD_MATRIX tristate GPIO driven matrix keypad support depends on GENERIC_GPIO diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile index 78654ef..0f1ad54 100644 --- a/drivers/input/keyboard/Makefile +++ b/drivers/input/keyboard/Makefile @@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o obj-$(CONFIG_KEYBOARD_DAVINCI) += davinci_keyscan.o obj-$(CONFIG_KEYBOARD_EP93XX) += ep93xx_keypad.o obj-$(CONFIG_KEYBOARD_GPIO)+= gpio_keys.o +obj-$(CONFIG_KEYBOARD_TCA6416) += tca6416-keypad.o obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o obj-$(CONFIG_KEYBOARD_HP6XX) += jornada680_kbd.o diff --git a/drivers/input/keyboard/tca6416-keypad.c b/drivers/input/keyboard/tca6416-keypad.c new file mode 100755 index 000..4c1ba1e --- /dev/null +++ b/drivers/input/keyboard/tca6416-keypad.c @@ -0,0 +1,355 @@ +/* + * Driver for keys on TCA6416 I2C IO expander + * + * Implementation based on drivers/input/keyboard/gpio_keys.c + * + * Copyright (C) 2010 Texas Instruments + * + * Author : Sriramakrishnan.A.G. s...@ti.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include linux/module.h +#include linux/init.h +#include linux/gpio.h +#include linux/i2c.h +#include linux/input.h +#include linux/tca6416_keypad.h +#include linux/workqueue.h +#include linux/types.h +#include linux/interrupt.h +#include linux/delay.h + +#define TCA6416_INPUT 0 +#define TCA6416_OUTPUT 1 +#define TCA6416_INVERT 2 +#define TCA6416_DIRECTION 3 + +static const struct i2c_device_id tca6416_id[] = { + { tca6416-keys, 16, }, + { } +}; +MODULE_DEVICE_TABLE(i2c, tca6416_id); + +struct tca6416_button_data { + struct gpio_keys_button *button; + struct input_dev *input; +}; + +struct tca6416_drv_data { + struct input_dev *input; + struct tca6416_button_data data[0]; +}; + +struct tca6416_keypad_chip { + uint16_t reg_output; + uint16_t reg_direction; + uint16_t reg_input; + + struct i2c_client *client; + struct tca6416_drv_data *drv_data; + struct delayed_work dwork; + uint16_t pinmask; + int irqnum; + int use_polling; +}; + +static int tca6416_write_reg(struct tca6416_keypad_chip *chip, int reg, + uint16_t val) +{ + int ret; + + ret = i2c_smbus_write_word_data(chip-client, reg 1, val); + + if (ret 0) { + dev_err(chip-client-dev, failed writing register\n); + return ret; + } + + return 0; +} + +static int tca6416_read_reg(struct tca6416_keypad_chip *chip, int reg, + uint16_t *val) +{ + int ret; + + ret = i2c_smbus_read_word_data(chip-client, reg 1); + + if (ret 0) { + dev_err(chip-client-dev, failed reading register\n); + return ret; + } + + *val = (uint16_t)ret; + return 0; +} + +static irqreturn_t tca6416_keys_isr(int irq, void *dev_id) +{ + struct tca6416_keypad_chip *chip = + (struct tca6416_keypad_chip *) dev_id; + + disable_irq(irq); + schedule_delayed_work(chip-dwork, 0); +
[PATCH] PCA953x : Fix compilation warning.
The platform data structure defined in pca953x header file includes references to i2c data structures. Unless the i2c.h file is included ahead of pca953x.h, compiler warning would be generated wherever pca953x header file is included. Added i2c.h to the pca953x.h itself to remove this dependency. Also included conditional compile macros to guard against multiple inclusion. Signed-off-by: Sriramakrishnan s...@ti.com --- include/linux/i2c/pca953x.h |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/include/linux/i2c/pca953x.h b/include/linux/i2c/pca953x.h index 81736d6..1284a2d 100644 --- a/include/linux/i2c/pca953x.h +++ b/include/linux/i2c/pca953x.h @@ -1,3 +1,8 @@ +#ifndef __LINUX_PCA953X_H +#define __LINUX_PCA953X_H + +#include linux/i2c.h + /* platform data for the PCA9539 16-bit I/O expander driver */ struct pca953x_platform_data { @@ -17,3 +22,4 @@ struct pca953x_platform_data { void *context); char**names; }; +#endif -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: About multicore OMAP
On Wed, Feb 24, 2010 at 10:24 AM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Wednesday, February 24, 2010 10:16 AM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Tue, Feb 23, 2010 at 10:20 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: John, -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Shilimkar, Santosh Sent: Tuesday, February 23, 2010 8:01 PM To: Jacob john Cc: linux-omap@vger.kernel.org Subject: RE: About multicore OMAP -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Tuesday, February 23, 2010 7:51 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP It's Blaze with two lcd's and pico, looks great. Can I have this linux-omap kernel running on OMAP4?, plus I'm looking for SMP benchmark results etc. Linux-omap kernel with omap_4430sdp_defconfig will boot on blaze with SMP. This won't have lot of driver support as such currently. Also L2 cache support is in on the way to make it to mainline as well. You should be able to play with this with some basic benchmark test related to CPU. Display , Audio, Pico, keypad, touchscreeen etc drivers are available with the release and you should be able get more details from the TI contact person who gave you the blaze. You can also get the performance numbers from same source If you need the full kernel with all the drivers I mentioned above, you can use below git. http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=shortlog;h=refs/heads/L24.4 Good help so far.., wondering why two trees for OMAP4, tell me the diff b/n this list and the zoom. is there a different mailing list for zoom? confusing... and I am sorrythanks for the pointers The mailing list is only one (Linux-omap). There is no difference. Linux-omap tree is almost mainline equivalent from omap4 point of view. The features are developed on the tree I mentioned above. The tested features will be up-streamed after rebasing one by one. You will find only upstreamed/lined-up features in linux-omap tree. Thanks Sentosh for your help, what do you advise? you always wanted me to go to zoom, so I don't have to pull from Linux-omap. When I should use zoom and when I should come back to Linux-omap? please clarify. Good way to ask which is latest? :) I am sorry, I am confusedhelp me Regards, Santosh -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: About multicore OMAP
-Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Thursday, February 25, 2010 7:37 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Wed, Feb 24, 2010 at 10:24 AM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Wednesday, February 24, 2010 10:16 AM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Tue, Feb 23, 2010 at 10:20 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: John, -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Shilimkar, Santosh Sent: Tuesday, February 23, 2010 8:01 PM To: Jacob john Cc: linux-omap@vger.kernel.org Subject: RE: About multicore OMAP -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Tuesday, February 23, 2010 7:51 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP It's Blaze with two lcd's and pico, looks great. Can I have this linux-omap kernel running on OMAP4?, plus I'm looking for SMP benchmark results etc. Linux-omap kernel with omap_4430sdp_defconfig will boot on blaze with SMP. This won't have lot of driver support as such currently. Also L2 cache support is in on the way to make it to mainline as well. You should be able to play with this with some basic benchmark test related to CPU. Display , Audio, Pico, keypad, touchscreeen etc drivers are available with the release and you should be able get more details from the TI contact person who gave you the blaze. You can also get the performance numbers from same source If you need the full kernel with all the drivers I mentioned above, you can use below git. http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=shortlog;h=refs/heads/L24.4 Good help so far.., wondering why two trees for OMAP4, tell me the diff b/n this list and the zoom. is there a different mailing list for zoom? confusing... and I am sorrythanks for the pointers The mailing list is only one (Linux-omap). There is no difference. Linux-omap tree is almost mainline equivalent from omap4 point of view. The features are developed on the tree I mentioned above. The tested features will be up-streamed after rebasing one by one. You will find only upstreamed/lined-up features in linux-omap tree. Thanks Sentosh for your help, what do you advise? you always wanted me to go to zoom, so I don't have to pull from Linux-omap. When I should use zoom and when I should come back to Linux-omap? please clarify. Good way to ask which is latest? :) I am sorry, I am confusedhelp me The dev.omapzoom.org trees gets updated regularly with linux-omap/maininle. So basically it is ( Linux-omap-master + Additional drivers including IPC). So you can use the git available on dev.omapzoom.org. This will enable you to have all the drivers in one tree. Regards, Santosh N�r��yb�X��ǧv�^�){.n�+{��f��{ay�ʇڙ�,j��f���h���z��w��� ���j:+v���w�j�mzZ+�ݢj��!�i
Re: [PATCH] PCA953x : Fix compilation warning.
On Thu, 25 Feb 2010 19:02:38 +0530, Sriramakrishnan wrote: The platform data structure defined in pca953x header file includes references to i2c data structures. Unless the i2c.h file is included ahead of pca953x.h, compiler warning would be generated wherever pca953x header file is included. Added i2c.h to the pca953x.h itself to remove this dependency. Also included conditional compile macros to guard against multiple inclusion. Signed-off-by: Sriramakrishnan s...@ti.com --- include/linux/i2c/pca953x.h |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/include/linux/i2c/pca953x.h b/include/linux/i2c/pca953x.h index 81736d6..1284a2d 100644 --- a/include/linux/i2c/pca953x.h +++ b/include/linux/i2c/pca953x.h @@ -1,3 +1,8 @@ +#ifndef __LINUX_PCA953X_H +#define __LINUX_PCA953X_H + +#include linux/i2c.h + /* platform data for the PCA9539 16-bit I/O expander driver */ struct pca953x_platform_data { @@ -17,3 +22,4 @@ struct pca953x_platform_data { void *context); char**names; }; +#endif Olof Johansson already sent a patch fixing this: http://lkml.org/lkml/2010/1/5/327 Andrew Morton accepted this patch so it should go to Linus during the next merge window (that is, within the next 2 weeks.) -- Jean Delvare -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: About multicore OMAP
On Thu, Feb 25, 2010 at 7:45 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Thursday, February 25, 2010 7:37 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Wed, Feb 24, 2010 at 10:24 AM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Wednesday, February 24, 2010 10:16 AM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Tue, Feb 23, 2010 at 10:20 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: John, -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Shilimkar, Santosh Sent: Tuesday, February 23, 2010 8:01 PM To: Jacob john Cc: linux-omap@vger.kernel.org Subject: RE: About multicore OMAP -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Tuesday, February 23, 2010 7:51 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP It's Blaze with two lcd's and pico, looks great. Can I have this linux-omap kernel running on OMAP4?, plus I'm looking for SMP benchmark results etc. Linux-omap kernel with omap_4430sdp_defconfig will boot on blaze with SMP. This won't have lot of driver support as such currently. Also L2 cache support is in on the way to make it to mainline as well. You should be able to play with this with some basic benchmark test related to CPU. Display , Audio, Pico, keypad, touchscreeen etc drivers are available with the release and you should be able get more details from the TI contact person who gave you the blaze. You can also get the performance numbers from same source If you need the full kernel with all the drivers I mentioned above, you can use below git. http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=shortlog;h=refs/heads/L24.4 Good help so far.., wondering why two trees for OMAP4, tell me the diff b/n this list and the zoom. is there a different mailing list for zoom? confusing... and I am sorrythanks for the pointers The mailing list is only one (Linux-omap). There is no difference. Linux-omap tree is almost mainline equivalent from omap4 point of view. The features are developed on the tree I mentioned above. The tested features will be up-streamed after rebasing one by one. You will find only upstreamed/lined-up features in linux-omap tree. Thanks Sentosh for your help, what do you advise? you always wanted me to go to zoom, so I don't have to pull from Linux-omap. When I should use zoom and when I should come back to Linux-omap? please clarify. Good way to ask which is latest? :) I am sorry, I am confusedhelp me The dev.omapzoom.org trees gets updated regularly with linux-omap/maininle. So basically it is ( Linux-omap-master + Additional drivers including IPC). So you can use the git available on dev.omapzoom.org. This will enable you to have all the drivers in one tree. Sounds great, appreciate this, TI gave Android kernel, so from omapzoom I get Android kernel? please share GIT url path for the same, any readme is there like Linux-omap? thanks for your help Regards, Santosh -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: About multicore OMAP
-Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Thursday, February 25, 2010 7:58 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Thu, Feb 25, 2010 at 7:45 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Thursday, February 25, 2010 7:37 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Wed, Feb 24, 2010 at 10:24 AM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Wednesday, February 24, 2010 10:16 AM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP On Tue, Feb 23, 2010 at 10:20 PM, Shilimkar, Santosh santosh.shilim...@ti.com wrote: John, -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Shilimkar, Santosh Sent: Tuesday, February 23, 2010 8:01 PM To: Jacob john Cc: linux-omap@vger.kernel.org Subject: RE: About multicore OMAP -Original Message- From: Jacob john [mailto:jacob.joh...@gmail.com] Sent: Tuesday, February 23, 2010 7:51 PM To: Shilimkar, Santosh Cc: linux-omap@vger.kernel.org Subject: Re: About multicore OMAP It's Blaze with two lcd's and pico, looks great. Can I have this linux-omap kernel running on OMAP4?, plus I'm looking for SMP benchmark results etc. Linux-omap kernel with omap_4430sdp_defconfig will boot on blaze with SMP. This won't have lot of driver support as such currently. Also L2 cache support is in on the way to make it to mainline as well. You should be able to play with this with some basic benchmark test related to CPU. Display , Audio, Pico, keypad, touchscreeen etc drivers are available with the release and you should be able get more details from the TI contact person who gave you the blaze. You can also get the performance numbers from same source If you need the full kernel with all the drivers I mentioned above, you can use below git. http://dev.omapzoom.org/?p=integration/kernel-omap4.git;a=shortlog;h=refs/heads/L24.4 Good help so far.., wondering why two trees for OMAP4, tell me the diff b/n this list and the zoom. is there a different mailing list for zoom? confusing... and I am sorrythanks for the pointers The mailing list is only one (Linux-omap). There is no difference. Linux-omap tree is almost mainline equivalent from omap4 point of view. The features are developed on the tree I mentioned above. The tested features will be up-streamed after rebasing one by one. You will find only upstreamed/lined-up features in linux-omap tree. Thanks Sentosh for your help, what do you advise? you always wanted me to go to zoom, so I don't have to pull from Linux-omap. When I should use zoom and when I should come back to Linux-omap? please clarify. Good way to ask which is latest? :) I am sorry, I am confusedhelp me The dev.omapzoom.org trees gets updated regularly with linux-omap/maininle. So basically it is ( Linux-omap-master + Additional drivers including IPC). So you can use the git available on dev.omapzoom.org. This will enable you to have all the drivers in one tree. Sounds great, appreciate this, TI gave Android kernel, so from omapzoom I get Android kernel? please share GIT url path for the same, any readme is there like Linux-omap? thanks for your help Here is the link for the android git. http://dev.omapzoom.org/?p=vikram/omap3.git;a=shortlog;h=refs/heads/android-2.6.32-omap4 Regards, Santosh
[RFC][PATCH 1/3] ARM: OMAP3630: PRCM: Add UART4 control bits
This bits are exclusive of omap 36xx family of chips. Signed-off-by: Sergio Aguirre saagui...@ti.com --- arch/arm/mach-omap2/prcm-common.h |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/prcm-common.h b/arch/arm/mach-omap2/prcm-common.h index 90f603d..c4e7bcb 100644 --- a/arch/arm/mach-omap2/prcm-common.h +++ b/arch/arm/mach-omap2/prcm-common.h @@ -390,6 +390,8 @@ #define OMAP3430_EN_MPU_SHIFT 1 /* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER shared bits */ +#define OMAP3630_EN_UART4 (1 18) +#define OMAP3630_EN_UART4_SHIFT18 #define OMAP3430_EN_GPIO6 (1 17) #define OMAP3430_EN_GPIO6_SHIFT17 #define OMAP3430_EN_GPIO5 (1 16) @@ -430,6 +432,8 @@ #define OMAP3430_EN_MCBSP2_SHIFT 0 /* CM_IDLEST_PER, PM_WKST_PER shared bits */ +#define OMAP3630_ST_UART4_SHIFT18 +#define OMAP3630_ST_UART4_MASK (1 18) #define OMAP3430_ST_GPIO6_SHIFT17 #define OMAP3430_ST_GPIO6_MASK (1 17) #define OMAP3430_ST_GPIO5_SHIFT16 -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RFC][PATCH 0/3] OMAP3630: UART4 startup
Hi, This small RFC patchlist is intending to add initial UART4 support for omap36xx chips. VERY IMPORTANT: - This is currently untested. I don't have the HW to test this. - I don't consider myself an omap-serial expert, so please review carefully. Regards, Sergio Detailed changeset: Sergio Aguirre (3): ARM: OMAP3630: PRCM: Add UART4 control bits OMAP clock: Add uart4_ick/fck definitions for 3630 omap3: serial: Add uart4 wakeup handling arch/arm/mach-omap2/clock34xx_data.c | 22 ++ arch/arm/mach-omap2/prcm-common.h|4 arch/arm/mach-omap2/serial.c |4 3 files changed, 30 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RFC][PATCH 2/3] OMAP clock: Add uart4_ick/fck definitions for 3630
This is only valid for omap 36xx family of chips. Signed-off-by: Sergio Aguirre saagui...@ti.com --- arch/arm/mach-omap2/clock34xx_data.c | 22 ++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/clock34xx_data.c b/arch/arm/mach-omap2/clock34xx_data.c index 8728f1f..5d783bd 100644 --- a/arch/arm/mach-omap2/clock34xx_data.c +++ b/arch/arm/mach-omap2/clock34xx_data.c @@ -2381,6 +2381,16 @@ static struct clk uart3_fck = { .recalc = followparent_recalc, }; +static struct clk uart4_fck = { + .name = uart4_fck, + .ops= clkops_omap2_dflt_wait, + .parent = per_48m_fck, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = per_clkdm, + .recalc = followparent_recalc, +}; + static struct clk gpt2_fck = { .name = gpt2_fck, .ops= clkops_omap2_dflt_wait, @@ -2631,6 +2641,16 @@ static struct clk uart3_ick = { .recalc = followparent_recalc, }; +static struct clk uart4_ick = { + .name = uart4_ick, + .ops= clkops_omap2_dflt_wait, + .parent = per_l4_ick, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = per_clkdm, + .recalc = followparent_recalc, +}; + static struct clk gpt9_ick = { .name = gpt9_ick, .ops= clkops_omap2_dflt_wait, @@ -3160,6 +3180,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, per_96m_fck, per_96m_fck, CK_3XXX), CLK(NULL, per_48m_fck, per_48m_fck, CK_3XXX), CLK(NULL, uart3_fck,uart3_fck, CK_3XXX), + CLK(NULL, uart4_fck,uart4_fck, CK_36XX), CLK(NULL, gpt2_fck, gpt2_fck, CK_3XXX), CLK(NULL, gpt3_fck, gpt3_fck, CK_3XXX), CLK(NULL, gpt4_fck, gpt4_fck, CK_3XXX), @@ -3183,6 +3204,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, gpio2_ick,gpio2_ick, CK_3XXX), CLK(NULL, wdt3_ick, wdt3_ick, CK_3XXX), CLK(NULL, uart3_ick,uart3_ick, CK_3XXX), + CLK(NULL, uart4_ick,uart4_ick, CK_36XX), CLK(NULL, gpt9_ick, gpt9_ick, CK_3XXX), CLK(NULL, gpt8_ick, gpt8_ick, CK_3XXX), CLK(NULL, gpt7_ick, gpt7_ick, CK_3XXX), -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RFC][PATCH 3/3] omap3: serial: Add uart4 wakeup handling
Signed-off-by: Sergio Aguirre saagui...@ti.com --- arch/arm/mach-omap2/serial.c |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index c4a810b..1942cc8 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -475,6 +475,10 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) wk_mask = OMAP3430_ST_UART3_MASK; padconf = 0x19e; break; + case 3: + wk_mask = OMAP3630_ST_UART4_MASK; + padconf = 0x0d2; + break; } uart-wk_mask = wk_mask; uart-padconf = padconf; -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCHv5] OMAP3: Serial: Improved sleep logic
tero.kri...@nokia.com writes: [...] Here's my hunch as to what's happening: I think the problem is a deadlock in getrawmonotonic(). Nested calls here will deadlock due to the xtime_lock being held. Looking at the seqlock code, I think a seqlock reader can hang only in a case where someone is constantly writing the seqlock. And, as we are inside interrupt, this should not be possible. When updading the timeout, sleep_timeout_store() does a getrawmonotonic() to update the expiry time. While this happening, the UART interrupt could fire, causing an omap_uart_block_sleep() which would also getrawmonotonic() and deadlock in interrupt mode. It does not really explain why it hangs after the 5 second period though, as the device has called getrawmonotonic several times by this already. I have not seen this kind of behavior in my testing, even while fiddling with the sleep_timeout_store(). minor clarification... For me the hang is not after the 5 second timeout. For me it happens as soon as I write a non-zero value to /sys/devices/.../serial8250.2/sleep_timeout. Kevin -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH V3] OMAP: DSS: Add NEC NL8048HL11-01B display panel
From: Erik Gilling konk...@android.com NEC WVGA LCD NL8048HL11-01B support has been added. Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- Changes from version 2: incorporated cosmetic comments. included reviewer I missed earlier. drivers/video/omap2/displays/Kconfig |6 + drivers/video/omap2/displays/Makefile |1 + .../omap2/displays/panel-nec-nl8048hl11-01b.c | 282 3 files changed, 289 insertions(+), 0 deletions(-) create mode 100644 drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig index dfb57ee..5fb4dfe 100644 --- a/drivers/video/omap2/displays/Kconfig +++ b/drivers/video/omap2/displays/Kconfig @@ -37,4 +37,10 @@ config PANEL_TPO_TD043MTEA1 help LCD Panel used in OMAP3 Pandora +config PANEL_NEC_NL8048HL11_01B +tristate NEC NL8048HL11-01B Panel support +depends on OMAP2_DSS +help + LCD Panel from NEC. + endmenu diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile index e2bb321..03eb9c2 100644 --- a/drivers/video/omap2/displays/Makefile +++ b/drivers/video/omap2/displays/Makefile @@ -5,3 +5,4 @@ obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp-lq043t1dg01.o obj-$(CONFIG_PANEL_TAAL) += panel-taal.o obj-$(CONFIG_PANEL_TOPPOLY_TDO35S) += panel-toppoly-tdo35s.o obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o +obj-$(CONFIG_PANEL_NEC_NL8048HL11_01B) += panel-nec-nl8048hl11-01b.o diff --git a/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c b/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c new file mode 100644 index 000..ce0560f --- /dev/null +++ b/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c @@ -0,0 +1,282 @@ +/* + * NEC panel support + * + * Copyright (C) 2010 Texas Instruments Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see http://www.gnu.org/licenses/. + */ + +#include linux/module.h +#include linux/delay.h +#include linux/spi/spi.h + +#include plat/display.h + +#define LCD_XRES 800 +#define LCD_YRES 480 +/* NEC PIX Clock Ratings + * MIN:21.8MHz TYP:23.8MHz MAX:25.7MHz + */ +#define LCD_PIXEL_CLOCK23800 + +/* NEC NL8048HL11-01B Manual + * defines HFB, HSW, HBP, VFP, VSW, VBP as shown below + */ + +static struct omap_video_timings nec_8048_panel_timings = { + /* 800 x 480 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */ + .x_res = LCD_XRES, + .y_res = LCD_YRES, + .pixel_clock= LCD_PIXEL_CLOCK, + .hfp= 6, + .hsw= 1, + .hbp= 4, + .vfp= 3, + .vsw= 1, + .vbp= 4, +}; + +static int nec_8048_panel_probe(struct omap_dss_device *dssdev) +{ + dssdev-panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS | + OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_RF | + OMAP_DSS_LCD_ONOFF; + dssdev-panel.timings = nec_8048_panel_timings; + dssdev-panel.recommended_bpp = 16; + + return 0; +} + +static void nec_8048_panel_remove(struct omap_dss_device *dssdev) +{ +} + +static int nec_8048_panel_enable(struct omap_dss_device *dssdev) +{ + int r = 0; + + /* Delay recommended by panel DATASHEET */ + mdelay(4); + if (dssdev-platform_enable) + r = dssdev-platform_enable(dssdev); + + return r; +} + +static void nec_8048_panel_disable(struct omap_dss_device *dssdev) +{ + if (dssdev-platform_disable) + dssdev-platform_disable(dssdev); + /* Delay recommended by panel DATASHEET */ + mdelay(4); +} + +static int nec_8048_panel_suspend(struct omap_dss_device *dssdev) +{ + nec_8048_panel_disable(dssdev); + return 0; +} + +static int nec_8048_panel_resume(struct omap_dss_device *dssdev) +{ + return nec_8048_panel_enable(dssdev); +} + +static struct omap_dss_driver nec_8048_driver = { + .probe = nec_8048_panel_probe, + .remove = nec_8048_panel_remove, + .enable = nec_8048_panel_enable, + .disable= nec_8048_panel_disable, + .suspend= nec_8048_panel_suspend, + .resume = nec_8048_panel_resume, + +
RE: [PATCHv5] OMAP3: Serial: Improved sleep logic
-Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of ext Kevin Hilman Sent: 25 February, 2010 17:21 To: Kristo Tero (Nokia-D/Tampere) Cc: linux-omap@vger.kernel.org Subject: Re: [PATCHv5] OMAP3: Serial: Improved sleep logic tero.kri...@nokia.com writes: [...] Here's my hunch as to what's happening: I think the problem is a deadlock in getrawmonotonic(). Nested calls here will deadlock due to the xtime_lock being held. Looking at the seqlock code, I think a seqlock reader can hang only in a case where someone is constantly writing the seqlock. And, as we are inside interrupt, this should not be possible. When updading the timeout, sleep_timeout_store() does a getrawmonotonic() to update the expiry time. While this happening, the UART interrupt could fire, causing an omap_uart_block_sleep() which would also getrawmonotonic() and deadlock in interrupt mode. It does not really explain why it hangs after the 5 second period though, as the device has called getrawmonotonic several times by this already. I have not seen this kind of behavior in my testing, even while fiddling with the sleep_timeout_store(). minor clarification... For me the hang is not after the 5 second timeout. For me it happens as soon as I write a non-zero value to /sys/devices/.../serial8250.2/sleep_timeout. It looks somewhat weird... I did some debugging on this today and I am seeing the same hang here, and it actually seems to be caused by the getrawmonotonic() somehow, as the system did not hang anymore after I removed the calls. Anyway, I figured another way to solve the issues I am seeing. I reverted back to using jiffy timers, but added a workqueue for wakeups; now wakeup timers are kicked into action after the timebase is restored. I'll post the new patch right away. There is still one issue with the UART though; some TX is still lost because PM code does not currently prevent CORE off while PER is active, basically resetting the PER domain when CORE goes off. This would be fixed by the cpuidle set I posted a bit back. Another note, I am seeing really strange behavior for my n900 with current linux-omap tree. PM branch boots up nicely, but it does not go into dynamic idle until I force it to suspend once Also, master branch crashes mid-boot to an ubifs caused DMA failure. -Tero -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCHv6] OMAP3: Serial: Improved sleep logic
From: Tero Kristo tero.kri...@nokia.com This patch contains following improvements: - Only RX interrupt will now kick the sleep prevent timer - TX fifo status is checked before disabling clocks, this will prevent on-going transmission to be cut - Smartidle is now enabled/disabled only while switching clocks, as having smartidle enabled while RX/TX prevents any wakeups from being received from UART module - Added workqueue for wakeup checks, as jiffy timer access within the idle loop results into skewed timers as jiffy timers are stopped - Added garbage_timer for ignoring the first character received during the first tick after clock enable, this prevents garbage characters to be received in low sleep states - omap_uart_enable_irqs() changed to use enable_irq / disable_irq instead of request / free. Using request/free changes the behavior after first suspend due to reversed interrupt handler ordering Signed-off-by: Tero Kristo tero.kri...@nokia.com --- arch/arm/mach-omap2/serial.c | 67 +++--- 1 files changed, 56 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 5f3035e..06d18f5 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -23,6 +23,7 @@ #include linux/serial_reg.h #include linux/clk.h #include linux/io.h +#include linux/workqueue.h #include plat/common.h #include plat/board.h @@ -48,7 +49,10 @@ struct omap_uart_state { int num; int can_sleep; struct timer_list timer; + struct timer_list garbage_timer; + struct work_struct wakeup_work; u32 timeout; + u8 garbage_ignore; void __iomem *wk_st; void __iomem *wk_en; @@ -243,6 +247,11 @@ static inline void omap_uart_save_context(struct omap_uart_state *uart) {} static inline void omap_uart_restore_context(struct omap_uart_state *uart) {} #endif /* CONFIG_PM CONFIG_ARCH_OMAP3 */ +#ifdef CONFIG_PM +static void omap_uart_smart_idle_enable(struct omap_uart_state *uart, + int enable); +#endif + static inline void omap_uart_enable_clocks(struct omap_uart_state *uart) { if (uart-clocked) @@ -252,6 +261,15 @@ static inline void omap_uart_enable_clocks(struct omap_uart_state *uart) clk_enable(uart-fck); uart-clocked = 1; omap_uart_restore_context(uart); +#ifdef CONFIG_PM + omap_uart_smart_idle_enable(uart, 0); +#endif + + /* Set up garbage timer to ignore RX during first jiffy */ + if (uart-timeout) { + mod_timer(uart-garbage_timer, jiffies + 1); + uart-garbage_ignore = 1; + } } #ifdef CONFIG_PM @@ -263,6 +281,7 @@ static inline void omap_uart_disable_clocks(struct omap_uart_state *uart) omap_uart_save_context(uart); uart-clocked = 0; + omap_uart_smart_idle_enable(uart, 1); clk_disable(uart-ick); clk_disable(uart-fck); } @@ -320,7 +339,6 @@ static void omap_uart_block_sleep(struct omap_uart_state *uart) { omap_uart_enable_clocks(uart); - omap_uart_smart_idle_enable(uart, 0); uart-can_sleep = 0; if (uart-timeout) mod_timer(uart-timer, jiffies + uart-timeout); @@ -338,7 +356,6 @@ static void omap_uart_allow_sleep(struct omap_uart_state *uart) if (!uart-clocked) return; - omap_uart_smart_idle_enable(uart, 1); uart-can_sleep = 1; del_timer(uart-timer); } @@ -350,13 +367,30 @@ static void omap_uart_idle_timer(unsigned long data) omap_uart_allow_sleep(uart); } +static void omap_uart_garbage_timer(unsigned long data) +{ + struct omap_uart_state *uart = (struct omap_uart_state *)data; + + uart-garbage_ignore = 0; +} + +static void omap_uart_wakeup_work(struct work_struct *work) +{ + struct omap_uart_state *uart = + container_of(work, struct omap_uart_state, wakeup_work); + + omap_uart_block_sleep(uart); +} + void omap_uart_prepare_idle(int num) { struct omap_uart_state *uart; list_for_each_entry(uart, uart_list, node) { if (num == uart-num uart-can_sleep) { - omap_uart_disable_clocks(uart); + if (serial_read_reg(uart-p, UART_LSR) + UART_LSR_TEMT) + omap_uart_disable_clocks(uart); return; } } @@ -375,12 +409,12 @@ void omap_uart_resume_idle(int num) u16 p = omap_ctrl_readw(uart-padconf); if (p OMAP3_PADCONF_WAKEUPEVENT0) - omap_uart_block_sleep(uart); + schedule_work(uart-wakeup_work); } /* Check for normal UART wakeup */ if (__raw_readl(uart-wk_st)
[PATCH 0/2 V3] Enable DSS on zoom2/3 and 3630 sdp boards
From: Kishore Y kishor...@ti.com This patch series enables DSS and FB in zoom2, zoom3 and 3630sdp. Changes from version 2: - incorporated cosmetic changes OMAP: DSS: Enable display on ZOOM2/3 3630SDP - Included display in boards and enabled in defconfig OMAP: DSS: Add display board file for zoom boards - Display board file added common for all boards arch/arm/configs/omap_3630sdp_defconfig | 60 - arch/arm/configs/omap_zoom2_defconfig | 60 - arch/arm/configs/omap_zoom3_defconfig | 60 - arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-3630sdp.c |1 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/board-zoom2.c |1 + arch/arm/mach-omap2/board-zoom3.c |1 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 10 files changed, 407 insertions(+), 3 deletions(-) Tested on top of LO kernel on dss2 brnach commit id: 98d31bf6566be9e716f6dfdce8eb39d1c1097b7c OMAP: AM3517: Enable DSS2 for AM3517EVM board Regards, Kishore Y -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2 V3] OMAP: DSS: Enable display on ZOOM2/3 3630SDP
From: Kishore Y kishor...@ti.com Enable dss and framebuffer on zoom2, zoom3 and 3630sdp boards. Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/configs/omap_3630sdp_defconfig | 60 ++- arch/arm/configs/omap_zoom2_defconfig | 60 ++- arch/arm/configs/omap_zoom3_defconfig | 60 ++- arch/arm/mach-omap2/board-3630sdp.c |1 + arch/arm/mach-omap2/board-zoom2.c |1 + arch/arm/mach-omap2/board-zoom3.c |1 + 6 files changed, 180 insertions(+), 3 deletions(-) diff --git a/arch/arm/configs/omap_3630sdp_defconfig b/arch/arm/configs/omap_3630sdp_defconfig index d25c3d4..df37108 100644 --- a/arch/arm/configs/omap_3630sdp_defconfig +++ b/arch/arm/configs/omap_3630sdp_defconfig @@ -886,7 +886,57 @@ CONFIG_REGULATOR_TWL4030=y # # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m -# CONFIG_FB is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_VRAM_SIZE=4 +# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set +# CONFIG_OMAP2_DSS_RFBI is not set +CONFIG_OMAP2_DSS_VENC=y +# CONFIG_OMAP2_DSS_SDI is not set +# CONFIG_OMAP2_DSS_DSI is not set +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 +CONFIG_FB_OMAP2=y +# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set +# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set +CONFIG_FB_OMAP2_NUM_FBS=1 + +# +# OMAP2/3 Display Device Drivers +# +# CONFIG_PANEL_GENERIC is not set +# CONFIG_PANEL_SHARP_LS037V7DW01 is not set +CONFIG_PANEL_NEC_NL8048HL11_01B=y # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # @@ -899,6 +949,14 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m # # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=y # CONFIG_SOUND_OSS_CORE is not set CONFIG_SND=y diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig index a82e813..66bde4d 100644 --- a/arch/arm/configs/omap_zoom2_defconfig +++ b/arch/arm/configs/omap_zoom2_defconfig @@ -859,7 +859,57 @@ CONFIG_DAB=y # # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m -# CONFIG_FB is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set +CONFIG_OMAP2_VRAM=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP2_DSS=y +CONFIG_OMAP2_VRAM_SIZE=4 +# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set +# CONFIG_OMAP2_DSS_RFBI is not set +CONFIG_OMAP2_DSS_VENC=y +# CONFIG_OMAP2_DSS_SDI is not set +# CONFIG_OMAP2_DSS_DSI is not set +# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 +CONFIG_FB_OMAP2=y +# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set +# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set +CONFIG_FB_OMAP2_NUM_FBS=1 + +# +# OMAP2/3 Display Device Drivers +# +# CONFIG_PANEL_GENERIC is not set +# CONFIG_PANEL_SHARP_LS037V7DW01 is not set +CONFIG_PANEL_NEC_NL8048HL11_01B=y # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # @@ -872,6 +922,14 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m # #
[PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP)+= board-3630sdp.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach-omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD 96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? + LCD_PANEL_RESET_GPIO_PROD : + LCD_PANEL_RESET_GPIO_PILOT; + + ret = gpio_request(lcd_panel_reset_gpio, lcd reset); + if (ret) { + pr_err(Failed to get LCD reset GPIO (gpio%d)\n, + lcd_panel_reset_gpio); + return; + } + gpio_direction_output(lcd_panel_reset_gpio, 1); + + ret = gpio_request(LCD_PANEL_QVGA_GPIO, lcd qvga); + if (ret) { + pr_err(Failed to get LCD_PANEL_QVGA_GPIO (gpio%d).\n, + LCD_PANEL_QVGA_GPIO); + goto err0; + } + gpio_direction_output(LCD_PANEL_QVGA_GPIO, 1); + + ret = gpio_request(TV_PANEL_ENABLE_GPIO, tv panel); + if (ret) { + pr_err(Failed to get TV_PANEL_ENABLE_GPIO (gpio%d).\n, + TV_PANEL_ENABLE_GPIO); + goto err1; + } + gpio_direction_output(TV_PANEL_ENABLE_GPIO, 0); + + return; + +err1: + gpio_free(LCD_PANEL_QVGA_GPIO); +err0: + gpio_free(lcd_panel_reset_gpio); +} + +static int zoom_panel_enable_lcd(struct omap_dss_device *dssdev) +{ + int ret; + struct zoom_dss_board_info *pdata; + + pdata = dssdev-dev.platform_data; + if (pdata-gpio_flag == 0) { + ret = gpio_request(LCD_PANEL_ENABLE_GPIO, lcd enable); + if (ret) { + pr_err(Failed to get +LCD_PANEL_ENABLE_GPIO (gpio%d).\n, + LCD_PANEL_ENABLE_GPIO); + return ret; + } + gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1); + pdata-gpio_flag = 1; + } else { +
[PATCH] arm: Fix .gitignore for boot/compressed folder
This should complements changes done in: commit e7db7b4270ed2a606b8c0b5f944a5f92ade0e84c Author: Albin Tonnerre albin.tonne...@free-electrons.com Date: Fri Jan 8 14:42:43 2010 -0800 arm: add support for LZO-compressed kernels It missed to do the respective changes in '.gitignore' file. Signed-off-by: Sergio Aguirre saagui...@ti.com --- arch/arm/boot/compressed/.gitignore |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index ab204db..bb984af 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore @@ -1,3 +1,5 @@ font.c -piggy.gz +piggy.gzip +piggy.lzo +lib1funcs.S vmlinux.lds -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH 1/2 V2] OMAP: DSS: Add display board file for zoom boards
Manjunath, From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of G, Manjunath Kondaiah Sent: Thursday, February 11, 2010 5:35 AM From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 11, 2010 3:33 PM snip + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + if (omap_rev() OMAP3430_REV_ES3_0) { + /* Production Zoom2 board: +* GPIO-96 is the LCD_RESET_GPIO +*/ + lcd_panel_reset_gpio = LCD_PANEL_RESET_GPIO_PROD; + } else { + /* Pilot Zoom2 board: +* GPIO-55 is the LCD_RESET_GPIO +*/ + lcd_panel_reset_gpio = LCD_PANEL_RESET_GPIO_PILOT; + } How about: lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? LCD_PANEL_RESET_GPIO_PROD : LCD_PANEL_RESET_GPIO_PILOT; This approach has been discussed many times before, and found incorrect. There is no way to auto-detect valid GPIO for reset as of now. For example: Zoom Pilot + 3630 SOM case will fail here. I'll push again for my thoughts on this one... There MUST be a configurable option in kernel menuconfig to select the board revision (Pilot, pre-production). That is the only clean way I can see this could actually work. Regards, Sergio snip -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH V3] OMAP: DSS: Add NEC NL8048HL11-01B display panel
Few minor comments below - -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:08 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH V3] OMAP: DSS: Add NEC NL8048HL11-01B display panel From: Erik Gilling konk...@android.com NEC WVGA LCD NL8048HL11-01B support has been added. Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- Changes from version 2: incorporated cosmetic comments. included reviewer I missed earlier. drivers/video/omap2/displays/Kconfig |6 + drivers/video/omap2/displays/Makefile |1 + .../omap2/displays/panel-nec-nl8048hl11-01b.c | 282 3 files changed, 289 insertions(+), 0 deletions(-) create mode 100644 drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig index dfb57ee..5fb4dfe 100644 --- a/drivers/video/omap2/displays/Kconfig +++ b/drivers/video/omap2/displays/Kconfig @@ -37,4 +37,10 @@ config PANEL_TPO_TD043MTEA1 help LCD Panel used in OMAP3 Pandora +config PANEL_NEC_NL8048HL11_01B +tristate NEC NL8048HL11-01B Panel support +depends on OMAP2_DSS +help + LCD Panel from NEC. + endmenu diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile index e2bb321..03eb9c2 100644 --- a/drivers/video/omap2/displays/Makefile +++ b/drivers/video/omap2/displays/Makefile @@ -5,3 +5,4 @@ obj-$(CONFIG_PANEL_SHARP_LQ043T1DG01) += panel-sharp- lq043t1dg01.o obj-$(CONFIG_PANEL_TAAL) += panel-taal.o obj-$(CONFIG_PANEL_TOPPOLY_TDO35S) += panel-toppoly-tdo35s.o obj-$(CONFIG_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o +obj-$(CONFIG_PANEL_NEC_NL8048HL11_01B) += panel-nec-nl8048hl11-01b.o diff --git a/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c b/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c new file mode 100644 index 000..ce0560f --- /dev/null +++ b/drivers/video/omap2/displays/panel-nec-nl8048hl11-01b.c @@ -0,0 +1,282 @@ +/* + * NEC panel support + * + * Copyright (C) 2010 Texas Instruments Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see http://www.gnu.org/licenses/. + */ + +#include linux/module.h +#include linux/delay.h +#include linux/spi/spi.h + +#include plat/display.h + +#define LCD_XRES 800 +#define LCD_YRES 480 +/* NEC PIX Clock Ratings + * MIN:21.8MHz TYP:23.8MHz MAX:25.7MHz + */ +#define LCD_PIXEL_CLOCK 23800 + +/* NEC NL8048HL11-01B Manual + * defines HFB, HSW, HBP, VFP, VSW, VBP as shown below + */ + +static struct omap_video_timings nec_8048_panel_timings = { + /* 800 x 480 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */ + .x_res = LCD_XRES, + .y_res = LCD_YRES, + .pixel_clock= LCD_PIXEL_CLOCK, + .hfp= 6, + .hsw= 1, + .hbp= 4, + .vfp= 3, + .vsw= 1, + .vbp= 4, +}; + +static int nec_8048_panel_probe(struct omap_dss_device *dssdev) +{ + dssdev-panel.config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS | + OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_RF | + OMAP_DSS_LCD_ONOFF; + dssdev-panel.timings = nec_8048_panel_timings; + dssdev-panel.recommended_bpp = 16; + + return 0; +} + +static void nec_8048_panel_remove(struct omap_dss_device *dssdev) +{ +} + +static int nec_8048_panel_enable(struct omap_dss_device *dssdev) +{ + int r = 0; + + /* Delay recommended by panel DATASHEET */ + mdelay(4); + if (dssdev-platform_enable) + r = dssdev-platform_enable(dssdev); + + return r; +} + +static void nec_8048_panel_disable(struct omap_dss_device *dssdev) +{ + if (dssdev-platform_disable) + dssdev-platform_disable(dssdev); + /* Delay recommended by panel DATASHEET */ + mdelay(4); +} + +static int nec_8048_panel_suspend(struct omap_dss_device *dssdev) +{ + nec_8048_panel_disable(dssdev); + return 0; +} + +static int nec_8048_panel_resume(struct omap_dss_device *dssdev)
RE: [alsa-devel] [PATCHv4 0/7] TWL6030 audio codec initial support
-Original Message- From: Liam Girdwood [mailto:l...@slimlogic.co.uk] Sent: Thursday, February 25, 2010 3:13 AM To: Olaya, Margarita Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; broo...@opensource.wolfsonmicro.com Subject: Re: [alsa-devel] [PATCHv4 0/7] TWL6030 audio codec initial support On Wed, 2010-02-24 at 18:17 -0600, Olaya, Margarita wrote: -Original Message- From: Liam Girdwood [mailto:l...@slimlogic.co.uk] Sent: Wednesday, February 24, 2010 5:40 AM To: Olaya, Margarita Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org; broo...@opensource.wolfsonmicro.com Subject: Re: [PATCHv4 0/7] TWL6030 audio codec initial support On Tue, 2010-02-23 at 18:10 -0600, Olaya, Margarita wrote: Following patch series add initial support for TWL6030 codec driver. The patch set is based on the series sent from Misael Lopez in October 2009. Changes from v3: - Remove snd_soc_init_card function - Adapt to latest twl core changes based on Balaji's comment Regards, Margarita --- Misael Lopez Cruz (7): OMAP4: PMIC: Add support for twl6030 codec ASoC: TWL6030: Add twl6030 codec driver ASoC: TWL6030: Manual power-up/down sequences ASoC: TWL6030: Add support for low-power PLL ASoC: TWL6030: Add restrictions for low-power playback mode ASoC: TWL6030: Enable audio interrupt ASoC: TWL6030: Detect power-up sequence completion Btw, since this is a new driver can you rebase the 6 codec patches into a single patch. The second patch adds the basic support for the codec and the others add features, that way it could be easier to review. Some of the subsequent patches are actually removing chunks of code rather than just adding new features. In this case it's actually easier to review the complete codec driver as one patch rather than a series of changes (showing your internal development history). Ok, I'll send a single patch then. Regards, Margarita Thanks Liam -- Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk N�r��yb�X��ǧv�^�){.n�+{��f��{ay�ʇڙ�,j��f���h���z��w��� ���j:+v���w�j�mzZ+�ݢj��!�i
RE: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init
-Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 12:28 AM To: Shilimkar, Santosh Cc: Thomas Weber; Aguirre, Sergio; linux-omap@vger.kernel.org; Russell King; Kevin Hilman; Pandita, Vikram; Syed, Rafiuddin; linux-arm-ker...@lists.infradead.org; linux-ker...@vger.kernel.org; Thomas Weber Subject: Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init * Shilimkar, Santosh santosh.shilim...@ti.com [100225 10:51]: -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 12:14 AM To: Thomas Weber; Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Russell King; Kevin Hilman; Shilimkar, Santosh; Pandita, Vikram; Syed, Rafiuddin; linux-arm-ker...@lists.infradead.org; linux-ker...@vger.kernel.org; Thomas Weber Subject: Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init * Thomas Weber sw...@gmx.li [100225 01:36]: The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. ..and I only patched omap_serial_init and forgot about the omap_serial_early_init.. Looks good to me, Sergio, care to test and Ack this? Also, sounds like we still need to patch omap4 for uart4 for the clocks. Clocks will be take care automatically by nr_ports for omap4 too with this patch. Below clock changes are just cosmetic ones, isn't it ? Am I missing something? Yes sorry, I'm referring to [RFC][PATCH 0/3] OMAP3630: UART4 startup series to fix the uart4 issues for 3630, not omap4. OK Regards, Santosh -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/3] TCA6416 keypad : Implement keypad driver for keys interfaced to TCA6416
Hi, On Thu, Feb 25, 2010 at 06:44:59PM +0530, Sriramakrishnan wrote: This patch implements a simple Keypad driver that functions as an I2C client. It handles key press events for keys connected to TCA6416 I2C based IO expander. what's wrong with gpio-keys ?? + * Implementation based on drivers/input/keyboard/gpio_keys.c I see, shouldn't you instead provide a gpiolib driver for tca6416 and use the generic gpio_keys driver ?? + if (!chip-use_polling) { IMO, you should only use polling if the irq line isn't connected. + if (pdata-irq_is_gpio) + chip-irqnum = gpio_to_irq(pdata-irqnum); you can pass the irq number via i2c_board_info. Use it. + else + chip-irqnum = pdata-irqnum; + + ret = request_irq(chip-irqnum, tca6416_keys_isr, it's an i2c driver!!! this should be request_threaded_irq() -- balbi -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init
* Thomas Weber sw...@gmx.li [100225 01:36]: The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. ..and I only patched omap_serial_init and forgot about the omap_serial_early_init.. Looks good to me, Sergio, care to test and Ack this? Also, sounds like we still need to patch omap4 for uart4 for the clocks. Regards, Tony Signed-off-by: Thomas Weber we...@corscience.de --- arch/arm/mach-omap2/serial.c | 15 ++- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index b79bc89..da77930 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value) } void __init omap_serial_early_init(void) { - int i; + int i, nr_ports; char name[16]; + if (!(cpu_is_omap3630() || cpu_is_omap4430())) + nr_ports = 3; + else + nr_ports = ARRAY_SIZE(omap_uart); + /* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on * if not needed. */ - for (i = 0; i ARRAY_SIZE(omap_uart); i++) { + for (i = 0; i nr_ports; i++) { struct omap_uart_state *uart = omap_uart[i]; struct platform_device *pdev = uart-pdev; struct device *dev = pdev-dev; @@ -669,17 +674,17 @@ void __init omap_serial_early_init(void) continue; } - sprintf(name, uart%d_ick, i+1); + sprintf(name, uart%d_ick, i + 1); uart-ick = clk_get(NULL, name); if (IS_ERR(uart-ick)) { - printk(KERN_ERR Could not get uart%d_ick\n, i+1); + printk(KERN_ERR Could not get uart%d_ick\n, i + 1); uart-ick = NULL; } sprintf(name, uart%d_fck, i+1); uart-fck = clk_get(NULL, name); if (IS_ERR(uart-fck)) { - printk(KERN_ERR Could not get uart%d_fck\n, i+1); + printk(KERN_ERR Could not get uart%d_fck\n, i + 1); uart-fck = NULL; } -- 1.6.4.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] USB: MUSB: Enable MUSB for OMAP4 in Kconfig
* Maulik Mankad x0082...@ti.com [100224 22:33]: This patch adds the OMAP4 Kconfig options for MUSB. Signed-off-by: Maulik Mankad x0082...@ti.com Cc: Felipe Balbi felipe.ba...@nokia.com Cc: Greg Kroah-Hartman gre...@suse.de Cc: David Brownell davi...@pacbell.net --- Index: mainline/drivers/usb/musb/Kconfig === --- mainline.orig/drivers/usb/musb/Kconfig +++ mainline/drivers/usb/musb/Kconfig @@ -38,6 +38,7 @@ config USB_MUSB_SOC default y if ARCH_DAVINCI default y if ARCH_OMAP2430 default y if ARCH_OMAP34XX + default y if ARCH_OMAP4 default y if (BF54x !BF544) default y if (BF52x !BF522 !BF523) @@ -50,6 +51,9 @@ comment OMAP 243x high speed USB suppor comment OMAP 343x high speed USB support depends on USB_MUSB_HDRC ARCH_OMAP34XX +comment OMAP 44xx high speed USB support + depends on USB_MUSB_HDRC ARCH_OMAP4 + comment Blackfin high speed USB Support depends on USB_MUSB_HDRC ((BF54x !BF544) || (BF52x !BF522 !BF523)) @@ -153,7 +157,7 @@ config MUSB_PIO_ONLY config USB_INVENTRA_DMA bool depends on USB_MUSB_HDRC !MUSB_PIO_ONLY - default ARCH_OMAP2430 || ARCH_OMAP34XX || BLACKFIN + default ARCH_OMAP2430 || ARCH_OMAP34XX || BLACKFIN || ARCH_OMAP4 help Enable DMA transfers using Mentor's engine. FYI, this needs to be updated as I have patches queued up to replace ARCH_OMAP34XX and with ARCH_OMAP3. You might want to check all these patches for that and make sure they build and work with the omap-for-linus branch. Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init
-Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 12:14 AM To: Thomas Weber; Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Russell King; Kevin Hilman; Shilimkar, Santosh; Pandita, Vikram; Syed, Rafiuddin; linux-arm-ker...@lists.infradead.org; linux-ker...@vger.kernel.org; Thomas Weber Subject: Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init * Thomas Weber sw...@gmx.li [100225 01:36]: The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. ..and I only patched omap_serial_init and forgot about the omap_serial_early_init.. Looks good to me, Sergio, care to test and Ack this? Also, sounds like we still need to patch omap4 for uart4 for the clocks. Clocks will be take care automatically by nr_ports for omap4 too with this patch. Below clock changes are just cosmetic ones, isn't it ? Am I missing something? Regards, Tony Signed-off-by: Thomas Weber we...@corscience.de --- arch/arm/mach-omap2/serial.c | 15 ++- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index b79bc89..da77930 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c @@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value) } void __init omap_serial_early_init(void) { - int i; + int i, nr_ports; char name[16]; + if (!(cpu_is_omap3630() || cpu_is_omap4430())) + nr_ports = 3; + else + nr_ports = ARRAY_SIZE(omap_uart); + /* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on * if not needed. */ - for (i = 0; i ARRAY_SIZE(omap_uart); i++) { + for (i = 0; i nr_ports; i++) { struct omap_uart_state *uart = omap_uart[i]; struct platform_device *pdev = uart-pdev; struct device *dev = pdev-dev; @@ -669,17 +674,17 @@ void __init omap_serial_early_init(void) continue; } - sprintf(name, uart%d_ick, i+1); + sprintf(name, uart%d_ick, i + 1); uart-ick = clk_get(NULL, name); if (IS_ERR(uart-ick)) { - printk(KERN_ERR Could not get uart%d_ick\n, i+1); + printk(KERN_ERR Could not get uart%d_ick\n, i + 1); uart-ick = NULL; } sprintf(name, uart%d_fck, i+1); uart-fck = clk_get(NULL, name); if (IS_ERR(uart-fck)) { - printk(KERN_ERR Could not get uart%d_fck\n, i+1); + printk(KERN_ERR Could not get uart%d_fck\n, i + 1); uart-fck = NULL; } -- 1.6.4.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v6] OMAP UART: Add omap-serial driver support.
Tony Lindgren t...@atomide.com writes: * Kevin Hilman khil...@deeprootsystems.com [100224 10:36]: After that and Olof's comments, it should be submitted to linux-serial and LKML. Also, it needs to be posted as a series with the related hwmod patches needed to actually test this driver with the mainline kernel. I think this driver could be submitted upstream for review, even without the platform support, as long as it's stated that the platform support is still missing and will merge via linux-omap. The hwmod stuff is not yet ready for mainline. Kevin -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] omap2/3/4: serial: Half revert multiboot changes
* Aguirre, Sergio saagui...@ti.com [100224 19:04]: -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Wednesday, February 24, 2010 10:21 AM To: Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Sonasath, Moiz; Pandita, Vikram Subject: Re: [PATCH] omap2/3/4: serial: Half revert multiboot changes * Aguirre, Sergio saagui...@ti.com [100223 23:37]: Hmm.. I think I sent this patch too soon... Please ignore it, this is not a proper solution I feel.. But what it is true... is that, patch omap2/3/4: Fix mach- omap2/serial.c for multiboot is definitely breaking Zoom3 boot, and needs to be fixed. Yes sounds like only zoom has the external uart, other 3630 boards may be using the internal uart4. Actually, I don't see any patch to handle uart4 interface/functional clocks, so I assume the addition of uart4 for 3630 chip is incomplete. Shall we apply my 2nd patch, until proper clock handling is in place? I don't have an omap4 to test, but I think my patch shouldn't hurt the initial intention to make multiomap builds possible... agree? See also the recent patch from Thomas. I'd say let's rather fix this properly with your clock related patchset once it's been tested. We already have all these temporary hacks still in place for omap4, let's try not to add more. Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
-Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:49 PM To: Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:15 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP)+= board-3630sdp.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach- omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * [Hiremath, Vaibhav] 2010??? + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD 96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? + LCD_PANEL_RESET_GPIO_PROD : + LCD_PANEL_RESET_GPIO_PILOT; + + ret = gpio_request(lcd_panel_reset_gpio, lcd reset); + if (ret) { + pr_err(Failed to get LCD reset GPIO (gpio%d)\n, + lcd_panel_reset_gpio); + return; + } + gpio_direction_output(lcd_panel_reset_gpio, 1); + + ret = gpio_request(LCD_PANEL_QVGA_GPIO, lcd qvga); + if (ret) { + pr_err(Failed to get LCD_PANEL_QVGA_GPIO (gpio%d).\n, + LCD_PANEL_QVGA_GPIO); + goto err0; + } + gpio_direction_output(LCD_PANEL_QVGA_GPIO, 1); + + ret = gpio_request(TV_PANEL_ENABLE_GPIO, tv panel); + if (ret) { + pr_err(Failed to get TV_PANEL_ENABLE_GPIO (gpio%d).\n, + TV_PANEL_ENABLE_GPIO); + goto err1; + } + gpio_direction_output(TV_PANEL_ENABLE_GPIO, 0); + + return; + +err1: + gpio_free(LCD_PANEL_QVGA_GPIO); +err0: + gpio_free(lcd_panel_reset_gpio); +}
Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init
* Shilimkar, Santosh santosh.shilim...@ti.com [100225 10:51]: -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 12:14 AM To: Thomas Weber; Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Russell King; Kevin Hilman; Shilimkar, Santosh; Pandita, Vikram; Syed, Rafiuddin; linux-arm-ker...@lists.infradead.org; linux-ker...@vger.kernel.org; Thomas Weber Subject: Re: [RESEND][PATCH/RFC] OMAP2: serial.c: Fix number of uarts in early_init * Thomas Weber sw...@gmx.li [100225 01:36]: The omap_serial_early_init prints the following errors: Could not get uart4_ick Could not get uart4_fck because all the uarts available in omap_uart[] will be initialized. Only omap4430 and omap3630 have 4 uarts at the moment. This patch reduces the number of uarts when cpu is not omap4430 or omap3630. ..and I only patched omap_serial_init and forgot about the omap_serial_early_init.. Looks good to me, Sergio, care to test and Ack this? Also, sounds like we still need to patch omap4 for uart4 for the clocks. Clocks will be take care automatically by nr_ports for omap4 too with this patch. Below clock changes are just cosmetic ones, isn't it ? Am I missing something? Yes sorry, I'm referring to [RFC][PATCH 0/3] OMAP3630: UART4 startup series to fix the uart4 issues for 3630, not omap4. Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
-Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:15 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2)+= board-zoom2.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3)+= board-zoom3.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35)+= board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach- omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * [Hiremath, Vaibhav] 2010??? + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO(7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO 56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? + LCD_PANEL_RESET_GPIO_PROD : + LCD_PANEL_RESET_GPIO_PILOT; + + ret = gpio_request(lcd_panel_reset_gpio, lcd reset); + if (ret) { + pr_err(Failed to get LCD reset GPIO (gpio%d)\n, + lcd_panel_reset_gpio); + return; + } + gpio_direction_output(lcd_panel_reset_gpio, 1); + + ret = gpio_request(LCD_PANEL_QVGA_GPIO, lcd qvga); + if (ret) { + pr_err(Failed to get LCD_PANEL_QVGA_GPIO (gpio%d).\n, + LCD_PANEL_QVGA_GPIO); + goto err0; + } + gpio_direction_output(LCD_PANEL_QVGA_GPIO, 1); + + ret = gpio_request(TV_PANEL_ENABLE_GPIO, tv panel); + if (ret) { + pr_err(Failed to get TV_PANEL_ENABLE_GPIO (gpio%d).\n, + TV_PANEL_ENABLE_GPIO); + goto err1; + } + gpio_direction_output(TV_PANEL_ENABLE_GPIO, 0); + + return; + +err1: + gpio_free(LCD_PANEL_QVGA_GPIO); +err0: + gpio_free(lcd_panel_reset_gpio); +} + +static int zoom_panel_enable_lcd(struct omap_dss_device *dssdev) +{ + int ret; + struct zoom_dss_board_info *pdata; + + pdata = dssdev-dev.platform_data; + if (pdata-gpio_flag == 0) { + ret = gpio_request(LCD_PANEL_ENABLE_GPIO, lcd
RE: [PATCH] omap2/3/4: serial: Half revert multiboot changes
Hi, -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Thursday, February 25, 2010 12:56 PM To: Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Sonasath, Moiz; Pandita, Vikram Subject: Re: [PATCH] omap2/3/4: serial: Half revert multiboot changes * Aguirre, Sergio saagui...@ti.com [100224 19:04]: -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Wednesday, February 24, 2010 10:21 AM To: Aguirre, Sergio Cc: linux-omap@vger.kernel.org; Sonasath, Moiz; Pandita, Vikram Subject: Re: [PATCH] omap2/3/4: serial: Half revert multiboot changes * Aguirre, Sergio saagui...@ti.com [100223 23:37]: Hmm.. I think I sent this patch too soon... Please ignore it, this is not a proper solution I feel.. But what it is true... is that, patch omap2/3/4: Fix mach- omap2/serial.c for multiboot is definitely breaking Zoom3 boot, and needs to be fixed. Yes sounds like only zoom has the external uart, other 3630 boards may be using the internal uart4. Actually, I don't see any patch to handle uart4 interface/functional clocks, so I assume the addition of uart4 for 3630 chip is incomplete. Shall we apply my 2nd patch, until proper clock handling is in place? I don't have an omap4 to test, but I think my patch shouldn't hurt the initial intention to make multiomap builds possible... agree? See also the recent patch from Thomas. I'd say let's rather fix this properly with your clock related patchset once it's been tested. We already have all these temporary hacks still in place for omap4, let's try not to add more. Ok, sure. I agree. I'll try to get a 3630SDP, which I believe has physical access to UART4. With just my Zoom3 I can't do much :/ Regards, Sergio Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC][PATCH 1/3] ARM: OMAP3630: PRCM: Add UART4 control bits
On Thu, 25 Feb 2010, Sergio Aguirre wrote: This bits are exclusive of omap 36xx family of chips. Verified against the Rev C TRM. Reviewed-by: Paul Walmsley p...@pwsan.com Signed-off-by: Sergio Aguirre saagui...@ti.com --- arch/arm/mach-omap2/prcm-common.h |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/prcm-common.h b/arch/arm/mach-omap2/prcm-common.h index 90f603d..c4e7bcb 100644 --- a/arch/arm/mach-omap2/prcm-common.h +++ b/arch/arm/mach-omap2/prcm-common.h @@ -390,6 +390,8 @@ #define OMAP3430_EN_MPU_SHIFT1 /* CM_FCLKEN_PER, CM_ICLKEN_PER, PM_WKEN_PER shared bits */ +#define OMAP3630_EN_UART4(1 18) +#define OMAP3630_EN_UART4_SHIFT 18 #define OMAP3430_EN_GPIO6(1 17) #define OMAP3430_EN_GPIO6_SHIFT 17 #define OMAP3430_EN_GPIO5(1 16) @@ -430,6 +432,8 @@ #define OMAP3430_EN_MCBSP2_SHIFT 0 /* CM_IDLEST_PER, PM_WKST_PER shared bits */ +#define OMAP3630_ST_UART4_SHIFT 18 +#define OMAP3630_ST_UART4_MASK (1 18) #define OMAP3430_ST_GPIO6_SHIFT 17 #define OMAP3430_ST_GPIO6_MASK (1 17) #define OMAP3430_ST_GPIO5_SHIFT 16 -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html - Paul -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC][PATCH 2/3] OMAP clock: Add uart4_ick/fck definitions for 3630
On Thu, 25 Feb 2010, Sergio Aguirre wrote: This is only valid for omap 36xx family of chips. Signed-off-by: Sergio Aguirre saagui...@ti.com Reviewed-by: Paul Walmsley p...@pwsan.com Nice work Sergio. --- arch/arm/mach-omap2/clock34xx_data.c | 22 ++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/clock34xx_data.c b/arch/arm/mach-omap2/clock34xx_data.c index 8728f1f..5d783bd 100644 --- a/arch/arm/mach-omap2/clock34xx_data.c +++ b/arch/arm/mach-omap2/clock34xx_data.c @@ -2381,6 +2381,16 @@ static struct clk uart3_fck = { .recalc = followparent_recalc, }; +static struct clk uart4_fck = { + .name = uart4_fck, + .ops= clkops_omap2_dflt_wait, + .parent = per_48m_fck, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_FCLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = per_clkdm, + .recalc = followparent_recalc, +}; + static struct clk gpt2_fck = { .name = gpt2_fck, .ops= clkops_omap2_dflt_wait, @@ -2631,6 +2641,16 @@ static struct clk uart3_ick = { .recalc = followparent_recalc, }; +static struct clk uart4_ick = { + .name = uart4_ick, + .ops= clkops_omap2_dflt_wait, + .parent = per_l4_ick, + .enable_reg = OMAP_CM_REGADDR(OMAP3430_PER_MOD, CM_ICLKEN), + .enable_bit = OMAP3630_EN_UART4_SHIFT, + .clkdm_name = per_clkdm, + .recalc = followparent_recalc, +}; + static struct clk gpt9_ick = { .name = gpt9_ick, .ops= clkops_omap2_dflt_wait, @@ -3160,6 +3180,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, per_96m_fck, per_96m_fck, CK_3XXX), CLK(NULL, per_48m_fck, per_48m_fck, CK_3XXX), CLK(NULL, uart3_fck,uart3_fck, CK_3XXX), + CLK(NULL, uart4_fck,uart4_fck, CK_36XX), CLK(NULL, gpt2_fck, gpt2_fck, CK_3XXX), CLK(NULL, gpt3_fck, gpt3_fck, CK_3XXX), CLK(NULL, gpt4_fck, gpt4_fck, CK_3XXX), @@ -3183,6 +3204,7 @@ static struct omap_clk omap3xxx_clks[] = { CLK(NULL, gpio2_ick,gpio2_ick, CK_3XXX), CLK(NULL, wdt3_ick, wdt3_ick, CK_3XXX), CLK(NULL, uart3_ick,uart3_ick, CK_3XXX), + CLK(NULL, uart4_ick,uart4_ick, CK_36XX), CLK(NULL, gpt9_ick, gpt9_ick, CK_3XXX), CLK(NULL, gpt8_ick, gpt8_ick, CK_3XXX), CLK(NULL, gpt7_ick, gpt7_ick, CK_3XXX), -- 1.6.3.3 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html - Paul -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC][PATCH 0/3] OMAP3630: UART4 startup
Hi, On Thu, 25 Feb 2010, Sergio Aguirre wrote: This small RFC patchlist is intending to add initial UART4 support for omap36xx chips. VERY IMPORTANT: - This is currently untested. I don't have the HW to test this. - I don't consider myself an omap-serial expert, so please review carefully. Tony and I corresponded about this series; we decided that I'll handle this one because most of the changes are clock/PRCM related. Will you get hardware to test this series soon? None of us have OMAP3630 hardware, unfortunately. - Paul -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] omap: i2c: Add i2c support on omap4 platform
* Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]: Ben, Did you happen to look at this ? Santosh, can you please also please clarify which omaps this patch has been tested on? Regards, Tony -Original Message- From: Shilimkar, Santosh Sent: Friday, February 19, 2010 10:03 PM To: ben-li...@fluff.org Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, Santosh; Syed, Rafiuddin; Cory Maccarrone Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform This patch is rebased version of earlier post to add I2C driver support to OMAP4 platform. On OMAP4, all I2C register address offsets are changed from OMAP1/2/3 I2C. In order to not have #ifdef's at various places in code, as well as to support multi-OMAP build, an array is created to hold the register addresses with it's offset. This patch was submitted, reviewed and acked on mailing list already. For more details refer below link http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html This updated verion has a depedancy on Add support for 16-bit registers posted on linux-omap. Below is the patch-works link for the same http://patchwork.kernel.org/patch/72295/ Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com Acked-by: Kevin Hilman khil...@deeprootsystems.com Reviewed-by: Paul Walmsley p...@pwsan.com Reviewed-by: Tony Lindgren t...@atomide.com Cc: Ben Dooks ben-li...@fluff.org Cc: Cory Maccarrone darkstar6...@gmail.com --- drivers/i2c/busses/i2c-omap.c | 146 - 1 files changed, 114 insertions(+), 32 deletions(-) diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 9c3ce4d..7c15496 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -44,29 +44,37 @@ /* I2C controller revisions present on specific hardware */ #define OMAP_I2C_REV_ON_2430 0x36 #define OMAP_I2C_REV_ON_3430 0x3C +#define OMAP_I2C_REV_ON_4430 0x40 /* timeout waiting for the controller to respond */ #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000)) -#define OMAP_I2C_REV_REG 0x00 -#define OMAP_I2C_IE_REG0x01 -#define OMAP_I2C_STAT_REG 0x02 -#define OMAP_I2C_IV_REG0x03 /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */ -#define OMAP_I2C_WE_REG0x03 -#define OMAP_I2C_SYSS_REG 0x04 -#define OMAP_I2C_BUF_REG 0x05 -#define OMAP_I2C_CNT_REG 0x06 -#define OMAP_I2C_DATA_REG 0x07 -#define OMAP_I2C_SYSC_REG 0x08 -#define OMAP_I2C_CON_REG 0x09 -#define OMAP_I2C_OA_REG0x0a -#define OMAP_I2C_SA_REG0x0b -#define OMAP_I2C_PSC_REG 0x0c -#define OMAP_I2C_SCLL_REG 0x0d -#define OMAP_I2C_SCLH_REG 0x0e -#define OMAP_I2C_SYSTEST_REG 0x0f -#define OMAP_I2C_BUFSTAT_REG 0x10 +enum { + OMAP_I2C_REV_REG = 0, + OMAP_I2C_IE_REG, + OMAP_I2C_STAT_REG, + OMAP_I2C_IV_REG, + OMAP_I2C_WE_REG, + OMAP_I2C_SYSS_REG, + OMAP_I2C_BUF_REG, + OMAP_I2C_CNT_REG, + OMAP_I2C_DATA_REG, + OMAP_I2C_SYSC_REG, + OMAP_I2C_CON_REG, + OMAP_I2C_OA_REG, + OMAP_I2C_SA_REG, + OMAP_I2C_PSC_REG, + OMAP_I2C_SCLL_REG, + OMAP_I2C_SCLH_REG, + OMAP_I2C_SYSTEST_REG, + OMAP_I2C_BUFSTAT_REG, + OMAP_I2C_REVNB_LO, + OMAP_I2C_REVNB_HI, + OMAP_I2C_IRQSTATUS_RAW, + OMAP_I2C_IRQENABLE_SET, + OMAP_I2C_IRQENABLE_CLR, +}; /* I2C Interrupt Enable Register (OMAP_I2C_IE): */ #define OMAP_I2C_IE_XDR(1 14) /* TX Buffer drain int enable */ @@ -169,6 +177,7 @@ struct omap_i2c_dev { u32 speed; /* Speed of bus in Khz */ u16 cmd_err; u8 *buf; + u8 *regs; size_t buf_len; struct i2c_adapter adapter; u8 fifo_size; /* use as flag and value @@ -187,15 +196,64 @@ struct omap_i2c_dev { u16 westate; }; +const static u8 reg_map[] = { + [OMAP_I2C_REV_REG] = 0x00, + [OMAP_I2C_IE_REG] = 0x01, + [OMAP_I2C_STAT_REG] = 0x02, + [OMAP_I2C_IV_REG] = 0x03, + [OMAP_I2C_WE_REG] = 0x03, + [OMAP_I2C_SYSS_REG] = 0x04, + [OMAP_I2C_BUF_REG] = 0x05, + [OMAP_I2C_CNT_REG] = 0x06, + [OMAP_I2C_DATA_REG] = 0x07, + [OMAP_I2C_SYSC_REG] = 0x08, + [OMAP_I2C_CON_REG] = 0x09, + [OMAP_I2C_OA_REG] = 0x0a, + [OMAP_I2C_SA_REG] = 0x0b, + [OMAP_I2C_PSC_REG] = 0x0c, + [OMAP_I2C_SCLL_REG] = 0x0d, + [OMAP_I2C_SCLH_REG] = 0x0e, + [OMAP_I2C_SYSTEST_REG] = 0x0f, +
Re: [PATCH-V6 2/2] OMAP2/3: Add V4L2 DSS driver support in device.c
* hvaib...@ti.com hvaib...@ti.com [100223 01:25]: From: Vaibhav Hiremath hvaib...@ti.com Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- arch/arm/plat-omap/devices.c | 29 + 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 30b5db7..64f2a3a 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c @@ -357,6 +357,34 @@ static void omap_init_wdt(void) static inline void omap_init_wdt(void) {} #endif +/*---*/ + +#if defined(CONFIG_VIDEO_OMAP2_VOUT) || \ + defined(CONFIG_VIDEO_OMAP2_VOUT_MODULE) +#if defined (CONFIG_FB_OMAP2) || defined (CONFIG_FB_OMAP2_MODULE) +static struct resource omap_vout_resource[3 - CONFIG_FB_OMAP2_NUM_FBS] = { +}; +#else +static struct resource omap_vout_resource[2] = { +}; +#endif + +static struct platform_device omap_vout_device = { + .name = omap_vout, + .num_resources = ARRAY_SIZE(omap_vout_resource), + .resource = omap_vout_resource[0], + .id = -1, +}; +static void omap_init_vout(void) +{ + (void) platform_device_register(omap_vout_device); +} Allocation can still fail here, please handle the results. +#else +static inline void omap_init_vout(void) {} +#endif + +/*---*/ + /* * This gets called after board-specific INIT_MACHINE, and initializes most * on-chip peripherals accessible on this board (except for few like USB): @@ -387,6 +415,7 @@ static int __init omap_init_devices(void) omap_init_rng(); omap_init_uwire(); omap_init_wdt(); + omap_init_vout(); return 0; } arch_initcall(omap_init_devices); Looks like this should be in mach-omap2/devices.c instead if it's all omap2/3/4 specific. Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] musb: fix power field to hold all possible values
* Felipe Balbi m...@felipebalbi.com [100223 12:30]: Hi, On Tue, Feb 23, 2010 at 08:01:50PM +0530, Gupta, Ajay Kumar wrote: Board files are providing the actual mA and it is getting divided in Arch/arm/mach-omap2/usb-musb.c. See the code snippet below, musb_plat.clock = ick; musb_plat.board_data = board_data; -- musb_plat.power = board_data-power 1; musb_plat.mode = board_data-mode; So we need to either take this patch or fix this logic of dividing the mA supplied from all omap board files. that's true, had missed that. Sorry. Hmm, I believe this value is also divided somewhere else but I forgot where. In any case, when making changes like this please run the standard USB tests for gadgets and OTG. Otherwise things are guaranteed to break for USB certs :) Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/2] can:ti_hecc: board specific hookup on AM3517EVM
* Sriramakrishnan s...@ti.com [100222 22:35]: Add board specific hookup for TI HECC driver on AM3517 EVM Signed-off-by: Sriramakrishnan s...@ti.com Acked-by: Anant Gole anantg...@ti.com --- The driver requires that CAN_STB signal be driven low to enable CAN PHY. Currently this is being managed from U-boot. Will submit a patch for handling this as part of board init sequence. arch/arm/mach-omap2/board-am3517evm.c | 38 + arch/arm/mach-omap2/include/mach/am35xx.h | 10 +++ 2 files changed, 48 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index af99faf..42013b5 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -20,6 +20,7 @@ #include linux/init.h #include linux/platform_device.h #include linux/gpio.h +#include linux/can/platform/ti_hecc.h #include mach/hardware.h #include mach/am35xx.h @@ -223,6 +224,42 @@ static struct omap_board_mux board_mux[] __initdata = { #define board_muxNULL #endif + +static struct resource am3517_hecc_resources[] = { + { + .start = AM35XX_IPSS_HECC_BASE, + .end= AM35XX_IPSS_HECC_BASE + 0x3FFF, + .flags = IORESOURCE_MEM, + }, + { + .start = INT_35XX_HECC0_IRQ, + .end= INT_35XX_HECC0_IRQ, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device am3517_hecc_device = { + .name = ti_hecc, + .id = -1, + .num_resources = ARRAY_SIZE(am3517_hecc_resources), + .resource = am3517_hecc_resources, +}; + +static struct ti_hecc_platform_data am3517_evm_hecc_pdata = { + .scc_hecc_offset= AM35XX_HECC_SCC_HECC_OFFSET, + .scc_ram_offset = AM35XX_HECC_SCC_RAM_OFFSET, + .hecc_ram_offset= AM35XX_HECC_RAM_OFFSET, + .mbx_offset= AM35XX_HECC_MBOX_OFFSET, + .int_line = AM35XX_HECC_INT_LINE, + .version= AM35XX_HECC_VERSION, +}; The formatting above should use tabs instead of spaces. Please check and run checkpatch.pl --strict on this. Also, sounds like the Kconfig changes should be 2/2, not 1/2 to enable this. Tony + +static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata) +{ + am3517_hecc_device.dev.platform_data = pdata; + platform_device_register(am3517_hecc_device); +} + static void __init am3517_evm_init(void) { am3517_evm_i2c_init(); @@ -233,6 +270,7 @@ static void __init am3517_evm_init(void) omap_serial_init(); usb_ehci_init(ehci_pdata); + am3517_evm_hecc_init(am3517_evm_hecc_pdata); /* DSS */ am3517_evm_display_init(); } diff --git a/arch/arm/mach-omap2/include/mach/am35xx.h b/arch/arm/mach-omap2/include/mach/am35xx.h index a705f94..6d5429b 100644 --- a/arch/arm/mach-omap2/include/mach/am35xx.h +++ b/arch/arm/mach-omap2/include/mach/am35xx.h @@ -23,4 +23,14 @@ #define AM35XX_IPSS_HECC_BASE0x5C05 #define AM35XX_IPSS_VPFE_BASE0x5C06 + +/* HECC module specifc offset definitions */ +#define AM35XX_HECC_SCC_HECC_OFFSET (0x0) +#define AM35XX_HECC_SCC_RAM_OFFSET (0x3000) +#define AM35XX_HECC_RAM_OFFSET (0x3000) +#define AM35XX_HECC_MBOX_OFFSET (0x2000) +#define AM35XX_HECC_INT_LINE (0x0) +#define AM35XX_HECC_VERSION (0x1) + + #endif /* __ASM_ARCH_AM35XX_H */ -- 1.6.2.4 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [GIT PULL] Second set of OMAP clock/hwmod patches for 2.6.34
* Paul Walmsley p...@pwsan.com [100224 12:18]: On Wed, 24 Feb 2010, Paul Walmsley wrote: On Wed, 24 Feb 2010, Tony Lindgren wrote: * Paul Walmsley p...@pwsan.com [100224 10:15]: Hi Tony, The following changes since commit 0482e3c6f704d25b6a4e3c940caeeacece4e6d74: Tony Lindgren (1): Merge branch 'omap-fixes-for-linus' into omap-for-linus are available in the git repository at: git://git.pwsan.com/linux-2.6 for_2.6.34_b Hmm this does not seem to merge without conflicts to omap-for-linus, maybe take a look if you can merge/rebase it? I'd assume rebasing or merging your branch with 80c20d543d142ee54ec85259b77aaf0b83c32db5 will do the trick. Looks like 4751227df948582e82f19df30efa662ab71fa980 is the problem. Cool, it turned out to be not too bad to rebase. for_2.6.34_b branch is updated. I'll retest here and resend a pull request after the tests are complete. OK that's merged now. I think we're pretty much done for this merge window. I'll take a look at few more board-*.c patches though. Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/5 v2] omap2/3/4: mailbox: remove compiler warning
* Anna, Suman s-a...@ti.com [100223 07:57]: From 02c45559105c62343e31226fe67117231ea10c35 Mon Sep 17 00:00:00 2001 From: Suman Anna s-a...@ti.com Date: Mon, 25 Jan 2010 18:27:21 -0600 Subject: [PATCH] omap2/3/4: mailbox: remove compiler warning Remove a compiler warning in device-specific mailbox module. Signed-off-by: Suman Anna s-a...@ti.com Hiroshi, do you want me to queue this? If so, please respond with your ack. Tony --- arch/arm/mach-omap2/mailbox.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 2c9fd1c..a732664 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -409,19 +409,19 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev) if (unlikely(!res)) { dev_err(pdev-dev, invalid irq resource\n); ret = -ENODEV; - goto err_iva1; + omap_mbox_unregister(mbox_dsp_info); + goto err_dsp; } mbox_iva_info.irq = res-start; ret = omap_mbox_register(pdev-dev, mbox_iva_info); - if (ret) - goto err_iva1; + if (ret) { + omap_mbox_unregister(mbox_dsp_info); + goto err_dsp; + } } #endif return 0; -err_iva1: - omap_mbox_unregister(mbox_dsp_info); - err_dsp: iounmap(mbox_base); return ret; -- 1.6.6.2 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH] Zoom3: Defconfig update
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): 86b8e1a78668d5039a15e8a4d5813e0286aff479 PatchWorks http://patchwork.kernel.org/patch/80618/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=86b8e1a78668d5039a15e8a4d5813e0286aff479 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH 1/2] AM35x: Add missing GPIO mux config for EHCI port
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): 296981944815e958dc722d5d03aa38c89b750d84 PatchWorks http://patchwork.kernel.org/patch/81116/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=296981944815e958dc722d5d03aa38c89b750d84 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH 2/2] AM35x: Enable OMAP_MUX in defconfig
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): ece75fcbe50a15b830c44e466dc29e2cb7479f2a PatchWorks http://patchwork.kernel.org/patch/81117/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=ece75fcbe50a15b830c44e466dc29e2cb7479f2a -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH] omap: i2c: Fix muxing for command line enabled bus
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): 45a63f52aa3e5c14336805728ef4f3434879434b PatchWorks http://patchwork.kernel.org/patch/81283/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=45a63f52aa3e5c14336805728ef4f3434879434b -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] OMAP: pass the reboot command to the boot loader
* Aaro Koskinen aaro.koski...@nokia.com [100224 05:09]: This patch follows the commit be093beb608edf821b45fe00a8a080fb5c6ed4af by Russell King: OMAP wishes to pass state to the boot loader upon reboot in order to instruct it whether to wait for USB-based reflashing or not. There is already a facility to do this via the reboot() syscall, except we ignore the string passed to machine_restart(). The patch adds the missing parameter to omap1_arch_reset() and omap_prcm_arch_reset(), and modifies the latter to pass the reboot command parameter to the boot loader instead of reboot mode (which is for kernel internal use only and cannot be modified by the userspace). This does not seem to apply, can you please refresh against the current omap-for-linus branch? Regards, Tony Signed-off-by: Aaro Koskinen aaro.koski...@nokia.com --- arch/arm/mach-omap2/prcm.c |4 ++-- arch/arm/plat-omap/include/plat/prcm.h |2 +- arch/arm/plat-omap/include/plat/system.h |6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 338d5f6..0850bb9 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c @@ -131,7 +131,7 @@ u32 omap_prcm_get_reset_sources(void) EXPORT_SYMBOL(omap_prcm_get_reset_sources); /* Resets clock rates and reboots the system. Only called from system.h */ -void omap_prcm_arch_reset(char mode) +void omap_prcm_arch_reset(char mode, const char *cmd) { s16 prcm_offs; @@ -143,7 +143,7 @@ void omap_prcm_arch_reset(char mode) u32 l; prcm_offs = OMAP3430_GR_MOD; - l = ('B' 24) | ('M' 16) | mode; + l = ('B' 24) | ('M' 16) | (cmd ? (u8)*cmd : 0); /* Reserve the first word in scratchpad for communicating * with the boot ROM. A pointer to a data structure * describing the boot process can be stored there, diff --git a/arch/arm/plat-omap/include/plat/prcm.h b/arch/arm/plat-omap/include/plat/prcm.h index 66938a9..2c89542 100644 --- a/arch/arm/plat-omap/include/plat/prcm.h +++ b/arch/arm/plat-omap/include/plat/prcm.h @@ -24,7 +24,7 @@ #define __ASM_ARM_ARCH_OMAP_PRCM_H u32 omap_prcm_get_reset_sources(void); -void omap_prcm_arch_reset(char mode); +void omap_prcm_arch_reset(char mode, const char *cmd); int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, const char *name); #define START_PADCONF_SAVE 0x2 diff --git a/arch/arm/plat-omap/include/plat/system.h b/arch/arm/plat-omap/include/plat/system.h index c58a4ef..d0a119f 100644 --- a/arch/arm/plat-omap/include/plat/system.h +++ b/arch/arm/plat-omap/include/plat/system.h @@ -22,7 +22,7 @@ static inline void arch_idle(void) cpu_do_idle(); } -static inline void omap1_arch_reset(char mode) +static inline void omap1_arch_reset(char mode, const char *cmd) { /* * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 @@ -43,9 +43,9 @@ static inline void omap1_arch_reset(char mode) static inline void arch_reset(char mode, const char *cmd) { if (!cpu_class_is_omap2()) - omap1_arch_reset(mode); + omap1_arch_reset(mode, cmd); else - omap_prcm_arch_reset(mode); + omap_prcm_arch_reset(mode, cmd); } #endif -- 1.5.6.5 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH 1/2] AM3517 EVM: Enable I2C support.
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): f3e7cb6214b6299d1970cc4d032c85cf7cb2a458 PatchWorks http://patchwork.kernel.org/patch/81964/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=f3e7cb6214b6299d1970cc4d032c85cf7cb2a458 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[APPLIED] [PATCH 2/2] AM3517EVM : correct typo - tca6416 mispelt as tca6516.
This patch has been applied to the linux-omap by youw fwiendly patch wobot. Branch in linux-omap: for-next Initial commit ID (Likely to change): ca54e54bd372036deca5268a0f9d05a6a3c89b0b PatchWorks http://patchwork.kernel.org/patch/81963/ Git (Likely to change, and takes a while to get mirrored) http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=ca54e54bd372036deca5268a0f9d05a6a3c89b0b -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/6] omap i2c init fix and trivial board changes for 2.6.34
Hi all, Getting into fixes mode here. Still found few more trivial board related patches that should go into this merge window. Regards, Tony --- Ajay Kumar Gupta (2): AM35x: Add missing GPIO mux config for EHCI port AM35x: Enable OMAP_MUX in defconfig Jarkko Nikula (1): omap: i2c: Fix muxing for command line enabled bus Sriram (2): AM3517 EVM: Enable I2C support AM3517EVM : correct typo - tca6416 mispelt as tca6516 manjugk manjugk (1): Zoom3: Defconfig update arch/arm/configs/am3517_evm_defconfig | 43 +++-- arch/arm/configs/omap_zoom3_defconfig |6 ++--- arch/arm/mach-omap1/i2c.c |6 + arch/arm/mach-omap2/board-am3517evm.c | 15 +++- arch/arm/mach-omap2/i2c.c |6 + arch/arm/plat-omap/i2c.c | 10 ++-- arch/arm/plat-omap/include/plat/i2c.h |5 ++-- 7 files changed, 65 insertions(+), 26 deletions(-) -- Signature -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/6] omap: i2c: Fix muxing for command line enabled bus
From: Jarkko Nikula jhnik...@gmail.com The commit b63128e81214cc2db2995d690438055c26d213a5 broke the pin muxing for I2C busses that are enabled from the kernel command line. Fix this by defining the board registration function omap_register_i2c_bus in common platform code as it was before but keep the muxing in architecture dependent files. Signed-off-by: Jarkko Nikula jhnik...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/mach-omap1/i2c.c |6 +- arch/arm/mach-omap2/i2c.c |6 +- arch/arm/plat-omap/i2c.c | 10 -- arch/arm/plat-omap/include/plat/i2c.h |5 ++--- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/arch/arm/mach-omap1/i2c.c b/arch/arm/mach-omap1/i2c.c index 1bf4735..5446c99 100644 --- a/arch/arm/mach-omap1/i2c.c +++ b/arch/arm/mach-omap1/i2c.c @@ -23,9 +23,7 @@ #include plat/mux.h #include plat/cpu.h -int __init omap_register_i2c_bus(int bus_id, u32 clkrate, - struct i2c_board_info const *info, - unsigned len) +void __init omap1_i2c_mux_pins(int bus_id) { if (cpu_is_omap7xx()) { omap_cfg_reg(I2C_7XX_SDA); @@ -34,6 +32,4 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate, omap_cfg_reg(I2C_SDA); omap_cfg_reg(I2C_SCL); } - - return omap_plat_register_i2c_bus(bus_id, clkrate, info, len); } diff --git a/arch/arm/mach-omap2/i2c.c b/arch/arm/mach-omap2/i2c.c index 789ca8c..7951ae1 100644 --- a/arch/arm/mach-omap2/i2c.c +++ b/arch/arm/mach-omap2/i2c.c @@ -25,9 +25,7 @@ #include mux.h -int __init omap_register_i2c_bus(int bus_id, u32 clkrate, - struct i2c_board_info const *info, - unsigned len) +void __init omap2_i2c_mux_pins(int bus_id) { if (cpu_is_omap24xx()) { const int omap24xx_pins[][2] = { @@ -51,6 +49,4 @@ int __init omap_register_i2c_bus(int bus_id, u32 clkrate, sprintf(mux_name, i2c%i_sda.i2c%i_sda, bus_id, bus_id); omap_mux_init_signal(mux_name, OMAP_PIN_INPUT); } - - return omap_plat_register_i2c_bus(bus_id, clkrate, info, len); } diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c index 96d2781..624e262 100644 --- a/arch/arm/plat-omap/i2c.c +++ b/arch/arm/plat-omap/i2c.c @@ -28,6 +28,7 @@ #include linux/i2c.h #include mach/irqs.h #include plat/mux.h +#include plat/i2c.h #define OMAP_I2C_SIZE 0x3f #define OMAP1_I2C_BASE 0xfffb3800 @@ -117,6 +118,11 @@ static int __init omap_i2c_add_bus(int bus_id) res[1].start = irq; } + if (cpu_class_is_omap1()) + omap1_i2c_mux_pins(bus_id); + if (cpu_class_is_omap2()) + omap2_i2c_mux_pins(bus_id); + return platform_device_register(pdev); } @@ -169,7 +175,7 @@ out: subsys_initcall(omap_register_i2c_bus_cmdline); /** - * omap_plat_register_i2c_bus - register I2C bus with device descriptors + * omap_register_i2c_bus - register I2C bus with device descriptors * @bus_id: bus id counting from number 1 * @clkrate: clock rate of the bus in kHz * @info: pointer into I2C device descriptor table or NULL @@ -177,7 +183,7 @@ subsys_initcall(omap_register_i2c_bus_cmdline); * * Returns 0 on success or an error code. */ -int __init omap_plat_register_i2c_bus(int bus_id, u32 clkrate, +int __init omap_register_i2c_bus(int bus_id, u32 clkrate, struct i2c_board_info const *info, unsigned len) { diff --git a/arch/arm/plat-omap/include/plat/i2c.h b/arch/arm/plat-omap/include/plat/i2c.h index 585d9ca..87f6bf2 100644 --- a/arch/arm/plat-omap/include/plat/i2c.h +++ b/arch/arm/plat-omap/include/plat/i2c.h @@ -34,6 +34,5 @@ static inline int omap_register_i2c_bus(int bus_id, u32 clkrate, } #endif -int omap_plat_register_i2c_bus(int bus_id, u32 clkrate, -struct i2c_board_info const *info, -unsigned len); +void __init omap1_i2c_mux_pins(int bus_id); +void __init omap2_i2c_mux_pins(int bus_id); -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/6] Zoom3: Defconfig update
From: manjugk manjugk manj...@ti.com Some of the features are not enabled by default in zoom3 defconfig. This patch enables: - MMC Resume - TWL4030 RTC driver - Debug File system Build and boot tested on Zoom3 board. Signed-off-by: Manjunatha GK manj...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/configs/omap_zoom3_defconfig |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig index a3e3c82..ff8ac3d 100644 --- a/arch/arm/configs/omap_zoom3_defconfig +++ b/arch/arm/configs/omap_zoom3_defconfig @@ -1136,7 +1136,7 @@ CONFIG_TWL4030_USB=y # CONFIG_NOP_USB_XCEIV is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_UNSAFE_RESUME=y # # MMC/SD/SDIO Card Drivers @@ -1186,7 +1186,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_TWL4030 is not set +CONFIG_RTC_DRV_TWL4030=y # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_RX8581 is not set @@ -1416,7 +1416,7 @@ CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/6] AM35x: Add missing GPIO mux config for EHCI port
From: Ajay Kumar Gupta ajay.gu...@ti.com Adding GPIO mux config used for PHY reset of EHCI port on base board. We get below failure message without this patch, hub 1-0:1.0: unable to enumerate USB device on port 1 Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/mach-omap2/board-am3517evm.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index e6b8967..aee0a02 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -301,6 +301,9 @@ static void __init am3517_evm_init(void) ARRAY_SIZE(am3517_evm_devices)); omap_serial_init(); + + /* Configure GPIO for EHCI port */ + omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); usb_ehci_init(ehci_pdata); /* DSS */ am3517_evm_display_init(); -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 4/6] AM35x: Enable OMAP_MUX in defconfig
From: Ajay Kumar Gupta ajay.gu...@ti.com Enabling OMAP_MUX in defconfig as it is required for EHCI to work. Signed-off-by: Ajay Kumar Gupta ajay.gu...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/configs/am3517_evm_defconfig |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/arm/configs/am3517_evm_defconfig b/arch/arm/configs/am3517_evm_defconfig index abe9966..edae1c2 100644 --- a/arch/arm/configs/am3517_evm_defconfig +++ b/arch/arm/configs/am3517_evm_defconfig @@ -201,7 +201,7 @@ CONFIG_ARCH_OMAP3=y # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set CONFIG_OMAP_RESET_CLOCKS=y -# CONFIG_OMAP_MUX is not set +CONFIG_OMAP_MUX=y # CONFIG_OMAP_MCBSP is not set # CONFIG_OMAP_MBOX_FWK is not set # CONFIG_OMAP_MPU_TIMER is not set -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 5/6] AM3517 EVM: Enable I2C support
From: Sriram s...@ti.com There are multiple devices connected to I2C bus on AM3517EVM (for instance audio codec, IO expander etc). Enable I2C support in the default kernel configuration for AM3517 EVM. Signed-off-by: Sriramakrishnan s...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/configs/am3517_evm_defconfig | 41 - 1 files changed, 40 insertions(+), 1 deletions(-) diff --git a/arch/arm/configs/am3517_evm_defconfig b/arch/arm/configs/am3517_evm_defconfig index edae1c2..66a10b5 100644 --- a/arch/arm/configs/am3517_evm_defconfig +++ b/arch/arm/configs/am3517_evm_defconfig @@ -590,7 +590,46 @@ CONFIG_HW_RANDOM=y # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -# CONFIG_I2C is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +CONFIG_I2C_OMAP=y +# CONFIG_I2C_SIMTEC is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_STUB is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set # -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 6/6] AM3517EVM : correct typo - tca6416 mispelt as tca6516
From: Sriram s...@ti.com Correct instances where tca6416 is misspelt as tca6516 in the board-am3517evm file. Signed-off-by: Sriramakrishnan s...@ti.com Signed-off-by: Tony Lindgren t...@atomide.com --- arch/arm/mach-omap2/board-am3517evm.c | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index aee0a02..70c1861 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c @@ -80,7 +80,7 @@ static void __init am3517_evm_rtc_init(void) static struct pca953x_platform_data am3517evm_gpio_expander_info_0 = { .gpio_base = OMAP_MAX_GPIO_LINES, }; -static struct i2c_board_info __initdata am3517evm_tca6516_info_0[] = { +static struct i2c_board_info __initdata am3517evm_tca6416_info_0[] = { { I2C_BOARD_INFO(tca6416, 0x21), .platform_data = am3517evm_gpio_expander_info_0, @@ -94,7 +94,7 @@ static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_1 = { static struct pca953x_platform_data am3517evm_ui_gpio_expander_info_2 = { .gpio_base = OMAP_MAX_GPIO_LINES + 32, }; -static struct i2c_board_info __initdata am3517evm_ui_tca6516_info[] = { +static struct i2c_board_info __initdata am3517evm_ui_tca6416_info[] = { { I2C_BOARD_INFO(tca6416, 0x20), .platform_data = am3517evm_ui_gpio_expander_info_1, @@ -108,10 +108,10 @@ static struct i2c_board_info __initdata am3517evm_ui_tca6516_info[] = { static int __init am3517_evm_i2c_init(void) { omap_register_i2c_bus(1, 400, NULL, 0); - omap_register_i2c_bus(2, 400, am3517evm_tca6516_info_0, - ARRAY_SIZE(am3517evm_tca6516_info_0)); - omap_register_i2c_bus(3, 400, am3517evm_ui_tca6516_info, - ARRAY_SIZE(am3517evm_ui_tca6516_info)); + omap_register_i2c_bus(2, 400, am3517evm_tca6416_info_0, + ARRAY_SIZE(am3517evm_tca6416_info_0)); + omap_register_i2c_bus(3, 400, am3517evm_ui_tca6416_info, + ARRAY_SIZE(am3517evm_ui_tca6416_info)); return 0; } -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] USB: MUSB: Enable MUSB for OMAP4 in Kconfig
On Thu, Feb 25, 2010 at 10:48:34AM -0800, Tony Lindgren wrote: * Maulik Mankad x0082...@ti.com [100224 22:33]: This patch adds the OMAP4 Kconfig options for MUSB. Signed-off-by: Maulik Mankad x0082...@ti.com Cc: Felipe Balbi felipe.ba...@nokia.com Cc: Greg Kroah-Hartman gre...@suse.de Cc: David Brownell davi...@pacbell.net --- Index: mainline/drivers/usb/musb/Kconfig === --- mainline.orig/drivers/usb/musb/Kconfig +++ mainline/drivers/usb/musb/Kconfig @@ -38,6 +38,7 @@ config USB_MUSB_SOC default y if ARCH_DAVINCI default y if ARCH_OMAP2430 default y if ARCH_OMAP34XX + default y if ARCH_OMAP4 default y if (BF54x !BF544) default y if (BF52x !BF522 !BF523) @@ -50,6 +51,9 @@ comment OMAP 243x high speed USB suppor comment OMAP 343x high speed USB support depends on USB_MUSB_HDRC ARCH_OMAP34XX +comment OMAP 44xx high speed USB support + depends on USB_MUSB_HDRC ARCH_OMAP4 + comment Blackfin high speed USB Support depends on USB_MUSB_HDRC ((BF54x !BF544) || (BF52x !BF522 !BF523)) @@ -153,7 +157,7 @@ config MUSB_PIO_ONLY config USB_INVENTRA_DMA bool depends on USB_MUSB_HDRC !MUSB_PIO_ONLY - default ARCH_OMAP2430 || ARCH_OMAP34XX || BLACKFIN + default ARCH_OMAP2430 || ARCH_OMAP34XX || BLACKFIN || ARCH_OMAP4 help Enable DMA transfers using Mentor's engine. FYI, this needs to be updated as I have patches queued up to replace ARCH_OMAP34XX and with ARCH_OMAP3. You might want to check all these patches for that and make sure they build and work with the omap-for-linus branch. Adding more and more depends also doesn't scale well. It's time for someone to switch the test around, add a ARCH_HAS_MUSB, select it on the platforms that has it and make the config option depend on that, similar to how (some) platforms to EHCI today. (i.e. if there's a janitor out there reading this, feel free to go ahead and do it. :-) -Olof -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH] musb: fix power field to hold all possible values
Hi, -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 3:50 AM To: Felipe Balbi Cc: Gupta, Ajay Kumar; linux-omap@vger.kernel.org Subject: Re: [PATCH] musb: fix power field to hold all possible values * Felipe Balbi m...@felipebalbi.com [100223 12:30]: Hi, On Tue, Feb 23, 2010 at 08:01:50PM +0530, Gupta, Ajay Kumar wrote: Board files are providing the actual mA and it is getting divided in Arch/arm/mach-omap2/usb-musb.c. See the code snippet below, musb_plat.clock = ick; musb_plat.board_data = board_data; -- musb_plat.power = board_data-power 1; musb_plat.mode = board_data-mode; So we need to either take this patch or fix this logic of dividing the mA supplied from all omap board files. that's true, had missed that. Sorry. Hmm, I believe this value is also divided somewhere else but I forgot where. In any case, when making changes like this please run the standard USB tests for gadgets and OTG. Otherwise things are guaranteed to break for USB certs :) Tony, Currently the flow is, 1. Actual mA provided in all omap board files. 2. mA gets divided in usb-musb.c 3. mA multiplied by two in driver/usb/musb/musb_core.c to pass it to hcd-power_budget. So the current patch fixes the logic in step [1] above to fill mA value Above 255. -Ajay Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [PATCH] omap: i2c: Add i2c support on omap4 platform
Tony, -Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 3:17 AM To: Shilimkar, Santosh Cc: ben-li...@fluff.org; linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Syed, Rafiuddin; Cory Maccarrone Subject: Re: [PATCH] omap: i2c: Add i2c support on omap4 platform * Shilimkar, Santosh santosh.shilim...@ti.com [100222 21:58]: Ben, Did you happen to look at this ? Santosh, can you please also please clarify which omaps this patch has been tested on? This patch is tested on OMAP3430 SDP and OMAP4430 SDP with regular defconfig builds and multi-omap build. -Original Message- From: Shilimkar, Santosh Sent: Friday, February 19, 2010 10:03 PM To: ben-li...@fluff.org Cc: linux-omap@vger.kernel.org; linux-...@vger.kernel.org; Shilimkar, Santosh; Syed, Rafiuddin; Cory Maccarrone Subject: [PATCH] omap: i2c: Add i2c support on omap4 platform This patch is rebased version of earlier post to add I2C driver support to OMAP4 platform. On OMAP4, all I2C register address offsets are changed from OMAP1/2/3 I2C. In order to not have #ifdef's at various places in code, as well as to support multi-OMAP build, an array is created to hold the register addresses with it's offset. This patch was submitted, reviewed and acked on mailing list already. For more details refer below link http://www.mail-archive.com/linux-...@vger.kernel.org/msg02281.html This updated verion has a depedancy on Add support for 16-bit registers posted on linux-omap. Below is the patch-works link for the same http://patchwork.kernel.org/patch/72295/ Signed-off-by: Syed Rafiuddin rafiuddin.s...@ti.com Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com Acked-by: Kevin Hilman khil...@deeprootsystems.com Reviewed-by: Paul Walmsley p...@pwsan.com Reviewed-by: Tony Lindgren t...@atomide.com Cc: Ben Dooks ben-li...@fluff.org Cc: Cory Maccarrone darkstar6...@gmail.com --- drivers/i2c/busses/i2c-omap.c | 146 - 1 files changed, 114 insertions(+), 32 deletions(-) diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 9c3ce4d..7c15496 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c @@ -44,29 +44,37 @@ /* I2C controller revisions present on specific hardware */ #define OMAP_I2C_REV_ON_2430 0x36 #define OMAP_I2C_REV_ON_3430 0x3C +#define OMAP_I2C_REV_ON_4430 0x40 /* timeout waiting for the controller to respond */ #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000)) -#define OMAP_I2C_REV_REG 0x00 -#define OMAP_I2C_IE_REG 0x01 -#define OMAP_I2C_STAT_REG0x02 -#define OMAP_I2C_IV_REG 0x03 /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */ -#define OMAP_I2C_WE_REG 0x03 -#define OMAP_I2C_SYSS_REG0x04 -#define OMAP_I2C_BUF_REG 0x05 -#define OMAP_I2C_CNT_REG 0x06 -#define OMAP_I2C_DATA_REG0x07 -#define OMAP_I2C_SYSC_REG0x08 -#define OMAP_I2C_CON_REG 0x09 -#define OMAP_I2C_OA_REG 0x0a -#define OMAP_I2C_SA_REG 0x0b -#define OMAP_I2C_PSC_REG 0x0c -#define OMAP_I2C_SCLL_REG0x0d -#define OMAP_I2C_SCLH_REG0x0e -#define OMAP_I2C_SYSTEST_REG 0x0f -#define OMAP_I2C_BUFSTAT_REG 0x10 +enum { + OMAP_I2C_REV_REG = 0, + OMAP_I2C_IE_REG, + OMAP_I2C_STAT_REG, + OMAP_I2C_IV_REG, + OMAP_I2C_WE_REG, + OMAP_I2C_SYSS_REG, + OMAP_I2C_BUF_REG, + OMAP_I2C_CNT_REG, + OMAP_I2C_DATA_REG, + OMAP_I2C_SYSC_REG, + OMAP_I2C_CON_REG, + OMAP_I2C_OA_REG, + OMAP_I2C_SA_REG, + OMAP_I2C_PSC_REG, + OMAP_I2C_SCLL_REG, + OMAP_I2C_SCLH_REG, + OMAP_I2C_SYSTEST_REG, + OMAP_I2C_BUFSTAT_REG, + OMAP_I2C_REVNB_LO, + OMAP_I2C_REVNB_HI, + OMAP_I2C_IRQSTATUS_RAW, + OMAP_I2C_IRQENABLE_SET, + OMAP_I2C_IRQENABLE_CLR, +}; /* I2C Interrupt Enable Register (OMAP_I2C_IE): */ #define OMAP_I2C_IE_XDR (1 14) /* TX Buffer drain int enable */ @@ -169,6 +177,7 @@ struct omap_i2c_dev { u32 speed; /* Speed of bus in Khz */ u16 cmd_err; u8 *buf; + u8 *regs; size_t buf_len; struct i2c_adapter adapter; u8 fifo_size; /* use as flag and value @@ -187,15 +196,64 @@ struct omap_i2c_dev { u16 westate; }; +const static u8 reg_map[] = { + [OMAP_I2C_REV_REG] = 0x00, + [OMAP_I2C_IE_REG] = 0x01, + [OMAP_I2C_STAT_REG] = 0x02, + [OMAP_I2C_IV_REG]
RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
-Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:53 PM To: Hiremath, Vaibhav; Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:49 PM To: Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:15 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach- omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board- rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2)+= board-zoom2.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3)+= board-zoom3.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35)+= board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach- omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * [Hiremath, Vaibhav] 2010??? My bad. Manjunath pointed out same thing in earlier version. Somehow I missed it again. I will correct this. + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO(7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO 56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? + LCD_PANEL_RESET_GPIO_PROD : + LCD_PANEL_RESET_GPIO_PILOT; + + ret = gpio_request(lcd_panel_reset_gpio, lcd reset); + if (ret) { + pr_err(Failed to get LCD reset GPIO (gpio%d)\n, + lcd_panel_reset_gpio); + return; + } + gpio_direction_output(lcd_panel_reset_gpio, 1); + + ret = gpio_request(LCD_PANEL_QVGA_GPIO, lcd qvga); + if (ret) { + pr_err(Failed to get LCD_PANEL_QVGA_GPIO (gpio%d).\n, + LCD_PANEL_QVGA_GPIO); + goto err0; + } +
RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
-Original Message- From: Y, Kishore Sent: Friday, February 26, 2010 10:59 AM To: Hiremath, Vaibhav; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:53 PM To: Hiremath, Vaibhav; Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:49 PM To: Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:15 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach- omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board- rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP)+= board-3630sdp.o \ + board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach- omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * [Hiremath, Vaibhav] 2010??? My bad. Manjunath pointed out same thing in earlier version. Somehow I missed it again. I will correct this. + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD 96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static void zoom_lcd_tv_panel_init(void) +{ + int ret; + unsigned char lcd_panel_reset_gpio; + + lcd_panel_reset_gpio = (omap_rev() OMAP3430_REV_ES3_0) ? + LCD_PANEL_RESET_GPIO_PROD : + LCD_PANEL_RESET_GPIO_PILOT; + + ret =
RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards
-Original Message- From: Hiremath, Vaibhav Sent: Friday, February 26, 2010 11:37 AM To: Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Y, Kishore Sent: Friday, February 26, 2010 10:59 AM To: Hiremath, Vaibhav; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:53 PM To: Hiremath, Vaibhav; Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: Hiremath, Vaibhav Sent: Thursday, February 25, 2010 11:49 PM To: Y, Kishore; Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: RE: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap- ow...@vger.kernel.org] On Behalf Of Y, Kishore Sent: Thursday, February 25, 2010 9:15 PM To: Tomi Valkeinen Cc: linux-omap@vger.kernel.org Subject: [PATCH 1/2 V3] OMAP: DSS: Add display board file for zoom boards From: Kishore Y kishor...@ti.com board-zoom-display.c added as a common file for display fucntionality on boards zoom2, zoom3 and 3630sdp Signed-off-by: Mukund Mittal mmit...@ti.com Signed-off-by: Kishore Y kishor...@ti.com Reviewed-by: Gadiyar, Anand gadi...@ti.com --- arch/arm/mach-omap2/Makefile |3 + arch/arm/mach-omap2/board-zoom-display.c | 185 + arch/arm/mach-omap2/board-zoom-peripherals.c | 36 + arch/arm/mach-omap2/include/mach/board-zoom.h |3 + 4 files changed, 227 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-omap2/board-zoom-display.c diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach- omap2/Makefile index b32678b..3dbe694 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -91,14 +91,17 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board- rx51.o \ board-rx51-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_OMAP_ZOOM2)+= board-zoom2.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_ZOOM3)+= board-zoom3.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o \ board-zoom-debugboard.o obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ +board-zoom-display.o \ board-zoom-peripherals.o \ mmc-twl4030.o obj-$(CONFIG_MACH_CM_T35)+= board-cm-t35.o \ diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach- omap2/board-zoom-display.c new file mode 100644 index 000..fc5851f --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2009 Texas Instruments Inc. + * [Hiremath, Vaibhav] 2010??? My bad. Manjunath pointed out same thing in earlier version. Somehow I missed it again. I will correct this. + * Modified from mach-omap2/board-zoom-peripherals.c + * + * This program is free software; you can redistribute it and/or modify + * 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/init.h +#include linux/platform_device.h +#include linux/gpio.h +#include linux/i2c/twl.h +#include linux/spi/spi.h +#include plat/common.h +#include plat/control.h +#include plat/mcspi.h +#include plat/display.h + +#define LCD_PANEL_ENABLE_GPIO(7 + OMAP_MAX_GPIO_LINES) +#define LCD_PANEL_RESET_GPIO_PROD96 +#define LCD_PANEL_RESET_GPIO_PILOT 55 +#define LCD_PANEL_QVGA_GPIO 56 +#define TV_PANEL_ENABLE_GPIO 95 + +struct zoom_dss_board_info { + int gpio_flag; +}; + +static
RE: [PATCH-V6 2/2] OMAP2/3: Add V4L2 DSS driver support in device.c
-Original Message- From: Tony Lindgren [mailto:t...@atomide.com] Sent: Friday, February 26, 2010 3:44 AM To: Hiremath, Vaibhav Cc: linux-me...@vger.kernel.org; linux-omap@vger.kernel.org; hverk...@xs4all.nl Subject: Re: [PATCH-V6 2/2] OMAP2/3: Add V4L2 DSS driver support in device.c * hvaib...@ti.com hvaib...@ti.com [100223 01:25]: From: Vaibhav Hiremath hvaib...@ti.com Signed-off-by: Vaibhav Hiremath hvaib...@ti.com --- arch/arm/plat-omap/devices.c | 29 + 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 30b5db7..64f2a3a 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c @@ -357,6 +357,34 @@ static void omap_init_wdt(void) static inline void omap_init_wdt(void) {} #endif +/*--- */ + +#if defined(CONFIG_VIDEO_OMAP2_VOUT) || \ + defined(CONFIG_VIDEO_OMAP2_VOUT_MODULE) +#if defined (CONFIG_FB_OMAP2) || defined (CONFIG_FB_OMAP2_MODULE) +static struct resource omap_vout_resource[3 - CONFIG_FB_OMAP2_NUM_FBS] = { +}; +#else +static struct resource omap_vout_resource[2] = { +}; +#endif + +static struct platform_device omap_vout_device = { + .name = omap_vout, + .num_resources = ARRAY_SIZE(omap_vout_resource), + .resource = omap_vout_resource[0], + .id = -1, +}; +static void omap_init_vout(void) +{ + (void) platform_device_register(omap_vout_device); +} Allocation can still fail here, please handle the results. [Hiremath, Vaibhav] Ok, will do that. +#else +static inline void omap_init_vout(void) {} +#endif + +/*--- */ + /* * This gets called after board-specific INIT_MACHINE, and initializes most * on-chip peripherals accessible on this board (except for few like USB): @@ -387,6 +415,7 @@ static int __init omap_init_devices(void) omap_init_rng(); omap_init_uwire(); omap_init_wdt(); + omap_init_vout(); return 0; } arch_initcall(omap_init_devices); Looks like this should be in mach-omap2/devices.c instead if it's all omap2/3/4 specific. [Hiremath, Vaibhav] For sure it's being used for OMAP2/3 and if I understand correctly OMAP4 also uses it. Thanks, Vaibhav Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html