Re: [PATCH v3 3/4] arm/dts: AM33XX: Configure pinmuxs for D_CAN1 on AM335x-EVM
On 8/25/2012 1:44 AM, Tony Lindgren wrote: * AnilKumar Ch anilku...@ti.com [120816 05:20]: Add D_CAN1 pinctrl node to am3358_pinmux master node to export D_CAN functionality on AM335x EVM according to pinctrl-single driver. Signed-off-by: AnilKumar Ch anilku...@ti.com --- Changes from v2: - Incorporated Vaibhav H's comments on v2 * Added dcan0 instances to am33xx.dtsi file Changes from v1: - These two patches separated from c_can DT support patch series. arch/arm/boot/dts/am335x-evm.dts | 12 1 file changed, 12 insertions(+) diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index 5dd8a6b..a64c30a 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts @@ -18,6 +18,18 @@ reg = 0x8000 0x1000; /* 256 MB */ }; +am3358_pinmux: pinmux@44E10800 { This should be just am3358_pinmux as you already include it. I think it won't work this way, it will result into syntax error. The reason being is, unlike OMAP (and like other platforms, like, imx) here we are again representing device hierarchy starting from root, am335x-evm.dts: / { ocp { ... }; }; Although I am not too familiar with DTS compiler, but below code results in syntax error: am335x-evm.dts: / { ocp { ... am3358_pinmux { ... }; }; }; Thanks, Vaibhav +pinctrl-names = default; +pinctrl-0 = d_can1_pins; + +d_can1_pins: pinmux_d_can_pins { +pinctrl-single,pins = +0x168 0x2 /* uart0_ctsn.d_can1_tx, OUTPUT | MODE2 */ +0x16C 0x32 /* uart0_rtsn.d_can1_rx, INPUT_PULLUP | MODE2 */ +; +}; +}; + It would better to claim these pins in the dcan driver entry rather than set them as pins enabled by the pinctrl driver. The reason is that in case you want to enable runtime PM related stuff, like some more advanced wake-up features, for the rx pin you can do it in the driver. Then one nit.. Please lowercase all hex number in this series as that's the style here. Regards, Tony ___ devicetree-discuss mailing list devicetree-disc...@lists.ozlabs.org https://lists.ozlabs.org/listinfo/devicetree-discuss -- 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] arm/dts: Cleanup regulator naming and remove @0,1..
Hi Tony, * Rajendra Nayakrna...@ti.com [120730 06:17]: regulators do not have a 'reg' property, hence the regulator@0, regulator@1 do not make sense. get rid of it. Looks like this needs to be refreshed to apply. Care to refresh against current devel-dt branch in case other places need the same change? Looks like devel-dt is missing the PATCH 1/2 from this series, which you have already pushed in the -rc for merge. With that applied, this ones applies cleanly too. regards, Rajendra 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
[PATCH RESEND v4 2/3] arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone
Adds GPIO pinctrl nodes to am3358_pinmux master node to control user leds (USR0, USR1, USR2 and USR3) present on BeagleBone. Signed-off-by: AnilKumar Ch anilku...@ti.com --- arch/arm/boot/dts/am335x-bone.dts | 14 ++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index a7906cb..58f5042 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts @@ -18,6 +18,20 @@ reg = 0x8000 0x1000; /* 256 MB */ }; + am3358_pinmux: pinmux@44E10800 { + pinctrl-names = default; + pinctrl-0 = userled_pins; + + userled_pins: pinmux_userled_pins { + pinctrl-single,pins = + 0x54 0x7/* gpmc_a5.gpio1_21, OUTPUT | MODE7 */ + 0x58 0x17 /* gpmc_a6.gpio1_22, OUTPUT_PULLUP | MODE7 */ + 0x5C 0x7/* gpmc_a7.gpio1_23, OUTPUT | MODE7 */ + 0x60 0x17 /* gpmc_a8.gpio1_24, OUTPUT_PULLUP | MODE7 */ + ; + }; + }; + ocp { uart1: serial@44E09000 { status = okay; -- 1.7.9.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
[PATCH v4 0/3] Add device tree data for AM33XX devices
Add pinctrl and d_can device tree data to AM33XX family of devices. First two patches add support for pinctrl DT data and third one adds dcan DT data. Reason behind combining these patches is to apply cleanly on linux-omap tree, because these are sequential patches. These patches were tested on AM335x-Bone and AM335x-EVM apply on linux-omap:master d_can: Changes from v3: - Removed d_can1 node from am335x-evm.dts file. Instance one of CAN (d_can1) is available on AM335x-EVM only under a specific CPLD mode selection. am335x-evm.dts does not support this mode so remove the d_can1 node. - Dropped d_can pinmux settings patch, above comment applies here as well. Changes from v2: - Incorporated Vaibhav H's comments on v2 * Added dcan0 instances to am33xx.dtsi file Changes from v1: - These two patches separated from c_can DT support patch series. pinctrl: Changes from v3: - Updated the reg length based on latest AM335x TRM. Changes from v2: - user led pinmux comments updated according to Tony's comment. Changes from v1: - Rebased the patches based on latest pinctrl-single driver AnilKumar Ch (3): arm/dts: AM33XX: Add basic pinctrl device tree data arm/dts: AM33XX: Configure pinmuxs for user leds control on Bone arm/dts: AM33XX: Add D_CAN device tree data arch/arm/boot/dts/am335x-bone.dts | 14 ++ arch/arm/boot/dts/am33xx.dtsi | 27 +++ 2 files changed, 41 insertions(+) -- 1.7.9.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
[PATCH v4 3/3] arm/dts: AM33XX: Add D_CAN device tree data
Add Bosch D_CAN controller device tree data to AM33XX dtsi file by adding d_can device nodes with all the necessary parameters. Signed-off-by: AnilKumar Ch anilku...@ti.com --- arch/arm/boot/dts/am33xx.dtsi | 18 ++ 1 file changed, 18 insertions(+) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index dfe9c559..d965137 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -177,5 +177,23 @@ compatible = ti,omap3-wdt; ti,hwmods = wd_timer2; }; + + dcan0: d_can@481CC000 { + compatible = bosch,d_can; + ti,hwmods = d_can0; + reg = 0x481CC000 0x2000; + interrupts = 52; + interrupt-parent = intc; + status = disabled; + }; + + dcan1: d_can@481D { + compatible = bosch,d_can; + ti,hwmods = d_can1; + reg = 0x481D 0x2000; + interrupts = 55; + interrupt-parent = intc; + status = disabled; + }; }; }; -- 1.7.9.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
[PATCH RESEND v4 1/3] arm/dts: AM33XX: Add basic pinctrl device tree data
Adds basic pinctrl device tree data for AM33XX family of devices. This patch is based on the pinctrl-single driver. Signed-off-by: AnilKumar Ch anilku...@ti.com --- arch/arm/boot/dts/am33xx.dtsi |9 + 1 file changed, 9 insertions(+) diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index dde76f7..dfe9c559 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi @@ -40,6 +40,15 @@ }; }; + am3358_pinmux: pinmux@44E10800 { + compatible = pinctrl-single; + reg = 0x44E10800 0x0238; + #address-cells = 1; + #size-cells = 0; + pinctrl-single,register-width = 32; + pinctrl-single,function-mask = 0x7F; + }; + /* * XXX: Use a flat representation of the AM33XX interconnect. * The real AM33XX interconnect network is quite complex.Since -- 1.7.9.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
Re: [PATCH v2 02/14] MFD: twl4030-audio: Convert to use devm_kzalloc
On Tue, 2012-08-14 at 17:22 +0300, Peter Ujfalusi wrote: Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com I think this one could use a short commit message, also about why kfree():s are dropped (handled internally by devm_* etc.) -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
Re: [PATCH v2 00/14] MFD/ASoC/Input: twl4030-audio submodule DT support
Hi Peter, The MFD patches in this set look good to me except for the minor comment on patch 2 I just sent. That is with my limited knowledge of DT though... -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
Re: [PATCH RESEND 1/4] ARM: OMAP2+: AM33XX: Add tps65910 device tree data
Hi Mark, arch/arm/boot/dts/db8500.dtsi I'm not actually seeing anything terribly problematic here, though the regulator-name properties should really be removed as they're fairly useless and seem to be missing the point of having the property. Just looking at this now. The regulator-name property is used to populate constrains-name. Are you sure you still want them all removed? Kind regards, Lee -- Lee Jones Linaro ST-Ericsson Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- 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 07/10] ARM: OMAP2+: gpmc: generic timing calculation
Hi Jon, On Tue, Aug 28, 2012 at 02:00:13, Hunter, Jon wrote: On 08/27/2012 05:37 AM, Mohammed, Afzal wrote: And at least for initial users, they are expected to have some grasp on how to calculate timings, such a user will not be much worried about your 3 concerns above, anyway as of now they need to have a good grasp on it. I would consider myself to be an initial user and I am concerned, doesn't that count? Yes sir, what I meant was new users who want to have runtime calculation using the generic timing routine. For the peripherals already making use of custom timing routine, I am into that role too, hence the patches 8-10. And if you have any board that makes use of existing custom timing calculation routines (OneNAND, tusb6010 or smc91x), can you please give this series a try. Regards Afzal -- 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] arm: omap: ratelimit omap_l3_smx error log spam
Hi, On Mon, Aug 27, 2012 at 05:17:30PM -0700, Shilimkar, Santosh wrote: On Mon, Aug 27, 2012 at 4:26 PM, Aaro Koskinen aaro.koski...@iki.fi wrote: I tried bypassing the whole SRAM init, but the device does not seem to boot up at all. If I comment out the memset alone, then it boots and the issue is gone: +#if 0 memset_io(omap_sram_base + SRAM_BOOTLOADER_SZ, 0, omap_sram_size - SRAM_BOOTLOADER_SZ); +#endif Good. So the issue is indeed direct or indirect access to the secure SRAM. As security can dynamically resize the secure RAM size it is even harder to fix this issue properly. One easier way to deal with the issue is map only needed SRAM and leave rest for security. For now, Can you check if reducing the size of the SRAM in init is helping you to get way with the issue. Sorry it might need few iterations for you to get a working SRAM size. The problem is triggered by writing to the beginning of the SRAM area, not to the end. I need to skip the first 16k (0x4000) to get rid of the errors. Maybe the base address calculation is wrong? This could also explain why it's still possible to use the device - it seems the allocator starts from the end, and moves towards the base... A. -- 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
[PATCHv2 1/2] mmc: omap_hsmmc: convert from IP timer to hrtimer
omap hsmmc controller IP has a built in timer that can be programmed to guard against unresponsive operations. But its range is very narrow, and the maximum countable time is a few seconds. Card maintenance operations like BKOPS and MMC_ERASE and long stream writes like packed command require timers of order of several minutes, much beyond the capability of the IP timer. So get rid of using the IP timer entirely and use kernel's hrtimer functionality for guarding the device operations. As part of this change, a workaround that disabled timeouts for MMC_ERASE command is removed, and the arbitary timing of 100ms is used only when the timeout is not explicitly specified by core. A trivial change to get rid of unnecessary dealiasing of host-data in omap_hsmmc_do_irq is also included. Signed-off-by: Venkatraman S svenk...@ti.com --- v1-v2: Fix typos in commit message. Add checks to handle subtle races between MMC IRQ and HRTIMER IRQ Mark set_guard_timer function as static (Felipe's comment to use macros for INT_EN_MASK is done as a separate patch ) drivers/mmc/host/omap_hsmmc.c | 96 ++- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 9afdd20..57e86a4 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -79,7 +79,7 @@ #define CLKD_SHIFT 6 #define DTO_MASK 0x000F #define DTO_SHIFT 16 -#define INT_EN_MASK0x307F0033 +#define INT_EN_MASK0x306E0033 #define BWR_ENABLE (1 4) #define BRR_ENABLE (1 5) #define DTO_ENABLE (1 20) @@ -160,6 +160,7 @@ struct omap_hsmmc_host { unsigned intdma_sg_idx; unsigned char bus_mode; unsigned char power_mode; + unsigned intns_per_clk_cycle; int suspended; int irq; int use_dma, dma_ch; @@ -172,6 +173,7 @@ struct omap_hsmmc_host { int reqs_blocked; int use_reg; int req_in_progress; + struct hrtimer guard_timer; struct omap_hsmmc_next next_data; struct omap_mmc_platform_data *pdata; @@ -455,10 +457,6 @@ static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host, else irq_mask = INT_EN_MASK; - /* Disable timeout for erases */ - if (cmd-opcode == MMC_ERASE) - irq_mask = ~DTO_ENABLE; - OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR); OMAP_HSMMC_WRITE(host-base, ISE, irq_mask); OMAP_HSMMC_WRITE(host-base, IE, irq_mask); @@ -508,6 +506,9 @@ static void omap_hsmmc_set_clock(struct omap_hsmmc_host *host) time_before(jiffies, timeout)) cpu_relax(); + if (ios-clock) + host-ns_per_clk_cycle = DIV_ROUND_UP(NSEC_PER_SEC, ios-clock); + omap_hsmmc_start_clock(host); } @@ -824,7 +825,7 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct mmc_data *data) omap_hsmmc_request_done(host, mrq); return; } - + hrtimer_cancel(host-guard_timer); host-data = NULL; if (!data-error) @@ -859,8 +860,11 @@ omap_hsmmc_cmd_done(struct omap_hsmmc_host *host, struct mmc_command *cmd) cmd-resp[0] = OMAP_HSMMC_READ(host-base, RSP10); } } - if ((host-data == NULL !host-response_busy) || cmd-error) + if ((host-data == NULL !host-response_busy) || cmd-error) { + if (cmd-error != -ETIMEDOUT) + hrtimer_cancel(host-guard_timer); omap_hsmmc_request_done(host, cmd-mrq); + } } /* @@ -992,7 +996,7 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) hsmmc_command_incomplete(host, -EILSEQ); end_cmd = 1; - if (host-data || host-response_busy) { + if (data || host-response_busy) { end_trans = 1; host-response_busy = 0; } @@ -1292,41 +1296,35 @@ static int omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host, return 0; } -static void set_data_timeout(struct omap_hsmmc_host *host, -unsigned int timeout_ns, -unsigned int timeout_clks) +static void set_guard_timer(struct omap_hsmmc_host *host, + unsigned long timeout_ms, unsigned long timeout_ns, + unsigned int timeout_clks) { - unsigned int timeout, cycle_ns; - uint32_t reg, clkd, dto = 0; + ktime_t gtime; + unsigned int sec, nsec; - reg = OMAP_HSMMC_READ(host-base, SYSCTL); - clkd = (reg CLKD_MASK) CLKD_SHIFT; -
[PATCH 2/2] mmc: omap_hsmmc: cleanup the bitmap definitions of Interrupt Register
Define the most frequently used bitmasks of the Interrupt Enable / Interrupt Status register with consistent naming ( with _EN suffix). Use meaningful concatenation of bitfields for INT_EN_MASK, which shows which interrupts are enabled by default. No functional changes. Signed-off-by: Venkatraman S svenk...@ti.com --- drivers/mmc/host/omap_hsmmc.c | 51 --- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 57e86a4..03c2362 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -79,28 +79,16 @@ #define CLKD_SHIFT 6 #define DTO_MASK 0x000F #define DTO_SHIFT 16 -#define INT_EN_MASK0x306E0033 -#define BWR_ENABLE (1 4) -#define BRR_ENABLE (1 5) -#define DTO_ENABLE (1 20) #define INIT_STREAM(1 1) #define DP_SELECT (1 21) #define DDIR (1 4) -#define DMA_EN 0x1 +#define DMAE 0x1 #define MSBS (1 5) #define BCE(1 1) #define FOUR_BIT (1 1) #define DDR(1 19) #define DW8(1 5) -#define CC 0x1 -#define TC 0x02 #define OD 0x1 -#define ERR(1 15) -#define CMD_TIMEOUT(1 16) -#define DATA_TIMEOUT (1 20) -#define CMD_CRC(1 17) -#define DATA_CRC (1 21) -#define CARD_ERR (1 28) #define STAT_CLEAR 0x #define INIT_STREAM_CMD0x #define DUAL_VOLT_OCR_BIT 7 @@ -109,6 +97,25 @@ #define SOFTRESET (1 1) #define RESETDONE (1 0) +/* Interrupt masks for IE and ISE register */ +#define CC_EN (1 0) +#define TC_EN (1 1) +#define BWR_EN (1 4) +#define BRR_EN (1 5) +#define ERR_EN (1 15) +#define CTO_EN (1 16) +#define CCRC_EN(1 17) +#define CEB_EN (1 18) +#define CIE_EN (1 19) +#define DTO_EN (1 20) +#define DCRC_EN(1 21) +#define DEB_EN (1 22) +#define CERR_EN(1 28) +#define BADA_EN(1 29) + +#define INT_EN_MASK(BADA_EN | CERR_EN | DEB_EN | DCRC_EN | \ + CIE_EN | CEB_EN | CCRC_EN | BRR_EN | BWR_EN | TC_EN | CC_EN) + #define MMC_AUTOSUSPEND_DELAY 100 #define MMC_TIMEOUT_MS 20 #define OMAP_MMC_MIN_CLOCK 40 @@ -453,7 +460,7 @@ static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host, unsigned int irq_mask; if (host-use_dma) - irq_mask = INT_EN_MASK ~(BRR_ENABLE | BWR_ENABLE); + irq_mask = INT_EN_MASK ~(BRR_EN | BWR_EN); else irq_mask = INT_EN_MASK; @@ -673,8 +680,8 @@ static void send_init_stream(struct omap_hsmmc_host *host) OMAP_HSMMC_WRITE(host-base, CMD, INIT_STREAM_CMD); timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS); - while ((reg != CC) time_before(jiffies, timeout)) - reg = OMAP_HSMMC_READ(host-base, STAT) CC; + while ((reg != CC_EN) time_before(jiffies, timeout)) + reg = OMAP_HSMMC_READ(host-base, STAT) CC_EN; OMAP_HSMMC_WRITE(host-base, CON, OMAP_HSMMC_READ(host-base, CON) ~INIT_STREAM); @@ -765,7 +772,7 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, struct mmc_command *cmd, } if (host-use_dma) - cmdreg |= DMA_EN; + cmdreg |= DMAE; host-req_in_progress = 1; @@ -988,11 +995,11 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) data = host-data; dev_vdbg(mmc_dev(host-mmc), IRQ Status is %x\n, status); - if (status ERR) { + if (status ERR_EN) { omap_hsmmc_dbg_report_irq(host, status); - if (status (CMD_TIMEOUT | DATA_TIMEOUT)) + if (status (CTO_EN | DTO_EN)) hsmmc_command_incomplete(host, -ETIMEDOUT); - else if (status (CMD_CRC | DATA_CRC)) + else if (status (CCRC_EN | DCRC_EN)) hsmmc_command_incomplete(host, -EILSEQ); end_cmd = 1; @@ -1002,9 +1009,9 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) } } - if (end_cmd || ((status CC) host-cmd)) + if (end_cmd || ((status CC_EN) host-cmd)) omap_hsmmc_cmd_done(host, host-cmd); - if ((end_trans || (status TC)) host-mrq) + if ((end_trans || (status TC_EN)) host-mrq) omap_hsmmc_xfer_done(host,
Re: [PATCHv2 1/2] mmc: omap_hsmmc: convert from IP timer to hrtimer
On Tue, Aug 28, 2012 at 06:49:06PM +0530, Venkatraman S wrote: omap hsmmc controller IP has a built in timer that can be programmed to guard against unresponsive operations. But its range is very narrow, and the maximum countable time is a few seconds. Card maintenance operations like BKOPS and MMC_ERASE and long stream writes like packed command require timers of order of several minutes, much beyond the capability of the IP timer. So get rid of using the IP timer entirely and use kernel's hrtimer functionality for guarding the device operations. As part of this change, a workaround that disabled timeouts for MMC_ERASE command is removed, and the arbitary timing of 100ms is used only when the timeout is not explicitly specified by core. A trivial change to get rid of unnecessary dealiasing of host-data in omap_hsmmc_do_irq is also included. Signed-off-by: Venkatraman S svenk...@ti.com Now it looks good: Reviewed-by: Felipe Balbi ba...@ti.com --- v1-v2: Fix typos in commit message. Add checks to handle subtle races between MMC IRQ and HRTIMER IRQ Mark set_guard_timer function as static (Felipe's comment to use macros for INT_EN_MASK is done as a separate patch ) drivers/mmc/host/omap_hsmmc.c | 96 ++- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 9afdd20..57e86a4 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -79,7 +79,7 @@ #define CLKD_SHIFT 6 #define DTO_MASK 0x000F #define DTO_SHIFT16 -#define INT_EN_MASK 0x307F0033 +#define INT_EN_MASK 0x306E0033 #define BWR_ENABLE (1 4) #define BRR_ENABLE (1 5) #define DTO_ENABLE (1 20) @@ -160,6 +160,7 @@ struct omap_hsmmc_host { unsigned intdma_sg_idx; unsigned char bus_mode; unsigned char power_mode; + unsigned intns_per_clk_cycle; int suspended; int irq; int use_dma, dma_ch; @@ -172,6 +173,7 @@ struct omap_hsmmc_host { int reqs_blocked; int use_reg; int req_in_progress; + struct hrtimer guard_timer; struct omap_hsmmc_next next_data; struct omap_mmc_platform_data *pdata; @@ -455,10 +457,6 @@ static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host, else irq_mask = INT_EN_MASK; - /* Disable timeout for erases */ - if (cmd-opcode == MMC_ERASE) - irq_mask = ~DTO_ENABLE; - OMAP_HSMMC_WRITE(host-base, STAT, STAT_CLEAR); OMAP_HSMMC_WRITE(host-base, ISE, irq_mask); OMAP_HSMMC_WRITE(host-base, IE, irq_mask); @@ -508,6 +506,9 @@ static void omap_hsmmc_set_clock(struct omap_hsmmc_host *host) time_before(jiffies, timeout)) cpu_relax(); + if (ios-clock) + host-ns_per_clk_cycle = DIV_ROUND_UP(NSEC_PER_SEC, ios-clock); + omap_hsmmc_start_clock(host); } @@ -824,7 +825,7 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct mmc_data *data) omap_hsmmc_request_done(host, mrq); return; } - + hrtimer_cancel(host-guard_timer); host-data = NULL; if (!data-error) @@ -859,8 +860,11 @@ omap_hsmmc_cmd_done(struct omap_hsmmc_host *host, struct mmc_command *cmd) cmd-resp[0] = OMAP_HSMMC_READ(host-base, RSP10); } } - if ((host-data == NULL !host-response_busy) || cmd-error) + if ((host-data == NULL !host-response_busy) || cmd-error) { + if (cmd-error != -ETIMEDOUT) + hrtimer_cancel(host-guard_timer); omap_hsmmc_request_done(host, cmd-mrq); + } } /* @@ -992,7 +996,7 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) hsmmc_command_incomplete(host, -EILSEQ); end_cmd = 1; - if (host-data || host-response_busy) { + if (data || host-response_busy) { end_trans = 1; host-response_busy = 0; } @@ -1292,41 +1296,35 @@ static int omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host, return 0; } -static void set_data_timeout(struct omap_hsmmc_host *host, - unsigned int timeout_ns, - unsigned int timeout_clks) +static void set_guard_timer(struct omap_hsmmc_host *host, + unsigned long timeout_ms, unsigned long timeout_ns, + unsigned int timeout_clks) { - unsigned int timeout, cycle_ns; - uint32_t reg, clkd, dto = 0; + ktime_t gtime; +
Re: [PATCH 2/2] mmc: omap_hsmmc: cleanup the bitmap definitions of Interrupt Register
Hi, On Tue, Aug 28, 2012 at 06:49:07PM +0530, Venkatraman S wrote: Define the most frequently used bitmasks of the Interrupt Enable / Interrupt Status register with consistent naming ( with _EN suffix). Use meaningful concatenation of bitfields for INT_EN_MASK, which shows which interrupts are enabled by default. No functional changes. Signed-off-by: Venkatraman S svenk...@ti.com Acked-by: Felipe Balbi ba...@ti.com --- drivers/mmc/host/omap_hsmmc.c | 51 --- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 57e86a4..03c2362 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -79,28 +79,16 @@ #define CLKD_SHIFT 6 #define DTO_MASK 0x000F #define DTO_SHIFT16 -#define INT_EN_MASK 0x306E0033 -#define BWR_ENABLE (1 4) -#define BRR_ENABLE (1 5) -#define DTO_ENABLE (1 20) #define INIT_STREAM (1 1) #define DP_SELECT(1 21) #define DDIR (1 4) -#define DMA_EN 0x1 +#define DMAE 0x1 #define MSBS (1 5) #define BCE (1 1) #define FOUR_BIT (1 1) #define DDR (1 19) #define DW8 (1 5) -#define CC 0x1 -#define TC 0x02 #define OD 0x1 -#define ERR (1 15) -#define CMD_TIMEOUT (1 16) -#define DATA_TIMEOUT (1 20) -#define CMD_CRC (1 17) -#define DATA_CRC (1 21) -#define CARD_ERR (1 28) #define STAT_CLEAR 0x #define INIT_STREAM_CMD 0x #define DUAL_VOLT_OCR_BIT7 @@ -109,6 +97,25 @@ #define SOFTRESET(1 1) #define RESETDONE(1 0) +/* Interrupt masks for IE and ISE register */ +#define CC_EN(1 0) +#define TC_EN(1 1) +#define BWR_EN (1 4) +#define BRR_EN (1 5) +#define ERR_EN (1 15) +#define CTO_EN (1 16) +#define CCRC_EN (1 17) +#define CEB_EN (1 18) +#define CIE_EN (1 19) +#define DTO_EN (1 20) +#define DCRC_EN (1 21) +#define DEB_EN (1 22) +#define CERR_EN (1 28) +#define BADA_EN (1 29) + +#define INT_EN_MASK (BADA_EN | CERR_EN | DEB_EN | DCRC_EN | \ + CIE_EN | CEB_EN | CCRC_EN | BRR_EN | BWR_EN | TC_EN | CC_EN) + #define MMC_AUTOSUSPEND_DELAY100 #define MMC_TIMEOUT_MS 20 #define OMAP_MMC_MIN_CLOCK 40 @@ -453,7 +460,7 @@ static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host, unsigned int irq_mask; if (host-use_dma) - irq_mask = INT_EN_MASK ~(BRR_ENABLE | BWR_ENABLE); + irq_mask = INT_EN_MASK ~(BRR_EN | BWR_EN); else irq_mask = INT_EN_MASK; @@ -673,8 +680,8 @@ static void send_init_stream(struct omap_hsmmc_host *host) OMAP_HSMMC_WRITE(host-base, CMD, INIT_STREAM_CMD); timeout = jiffies + msecs_to_jiffies(MMC_TIMEOUT_MS); - while ((reg != CC) time_before(jiffies, timeout)) - reg = OMAP_HSMMC_READ(host-base, STAT) CC; + while ((reg != CC_EN) time_before(jiffies, timeout)) + reg = OMAP_HSMMC_READ(host-base, STAT) CC_EN; OMAP_HSMMC_WRITE(host-base, CON, OMAP_HSMMC_READ(host-base, CON) ~INIT_STREAM); @@ -765,7 +772,7 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, struct mmc_command *cmd, } if (host-use_dma) - cmdreg |= DMA_EN; + cmdreg |= DMAE; host-req_in_progress = 1; @@ -988,11 +995,11 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) data = host-data; dev_vdbg(mmc_dev(host-mmc), IRQ Status is %x\n, status); - if (status ERR) { + if (status ERR_EN) { omap_hsmmc_dbg_report_irq(host, status); - if (status (CMD_TIMEOUT | DATA_TIMEOUT)) + if (status (CTO_EN | DTO_EN)) hsmmc_command_incomplete(host, -ETIMEDOUT); - else if (status (CMD_CRC | DATA_CRC)) + else if (status (CCRC_EN | DCRC_EN)) hsmmc_command_incomplete(host, -EILSEQ); end_cmd = 1; @@ -1002,9 +1009,9 @@ static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) } } - if (end_cmd || ((status CC) host-cmd)) + if (end_cmd || ((status CC_EN) host-cmd))
Re: [PATCH] arm: omap: ratelimit omap_l3_smx error log spam
On Tue, Aug 28, 2012 at 5:20 AM, Aaro Koskinen aaro.koski...@iki.fi wrote: Hi, On Mon, Aug 27, 2012 at 05:17:30PM -0700, Shilimkar, Santosh wrote: On Mon, Aug 27, 2012 at 4:26 PM, Aaro Koskinen aaro.koski...@iki.fi wrote: I tried bypassing the whole SRAM init, but the device does not seem to boot up at all. If I comment out the memset alone, then it boots and the issue is gone: +#if 0 memset_io(omap_sram_base + SRAM_BOOTLOADER_SZ, 0, omap_sram_size - SRAM_BOOTLOADER_SZ); +#endif Good. So the issue is indeed direct or indirect access to the secure SRAM. As security can dynamically resize the secure RAM size it is even harder to fix this issue properly. One easier way to deal with the issue is map only needed SRAM and leave rest for security. For now, Can you check if reducing the size of the SRAM in init is helping you to get way with the issue. Sorry it might need few iterations for you to get a working SRAM size. The problem is triggered by writing to the beginning of the SRAM area, not to the end. I need to skip the first 16k (0x4000) to get rid of the errors. Maybe the base address calculation is wrong? This could also explain why it's still possible to use the device - it seems the allocator starts from the end, and moves towards the base... Or the PPA has resized the secure area of 16K. As you have seen the issue on one OMAP3 device, it makes sense to takeout that 16K from the public SRAM map. Can you send the patch with fixed base address fir PUB SRAM ? 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: [alsa-devel] [PATCH] ASoC: ams-delta: fix card initalization failure
On Mon, 27 Aug 2012 14:38:35 Mark Brown wrote: On Mon, Aug 27, 2012 at 11:28:30PM +0200, Janusz Krzysztofik wrote: - platform_set_drvdata(ams_delta_audio_platform_device, - ams_delta_audio_card); - - ret = platform_device_add(ams_delta_audio_platform_device); - if (ret) - goto err; The real fix here is that you should be using platform data here, not driver data. Is there some reason not to do that? Mark, Do you think the change you propose is suitable for the rc cycle? I'm trying to fix a regression in the first place. Converting the ams-delta asoc to a platform driver is on my todo list and I'm going to take care of this as soon as I have enough spare time. Thanks, Janusz -- 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 02/14] MFD: twl4030-audio: Convert to use devm_kzalloc
On Tue, Aug 28, 2012 at 12:50:10PM +0300, Tero Kristo wrote: On Tue, 2012-08-14 at 17:22 +0300, Peter Ujfalusi wrote: Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com I think this one could use a short commit message, also about why kfree():s are dropped (handled internally by devm_* etc.) Honestly I think people should be able to figure this out, it's not like it's an obscure API nobody ever used before. -- 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 RESEND 1/4] ARM: OMAP2+: AM33XX: Add tps65910 device tree data
On Tue, Aug 28, 2012 at 12:26:07PM +0100, Lee Jones wrote: arch/arm/boot/dts/db8500.dtsi I'm not actually seeing anything terribly problematic here, though the regulator-name properties should really be removed as they're fairly useless and seem to be missing the point of having the property. Just looking at this now. The regulator-name property is used to populate constrains-name. Are you sure you still want them all removed? Yes, of course. There's no way that a generic .dtsi used for any possible board could come up with a sensible value. -- 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] [PATCH] ASoC: ams-delta: fix card initalization failure
On Tue, Aug 28, 2012 at 05:13:05PM +0200, Janusz Krzysztofik wrote: On Mon, 27 Aug 2012 14:38:35 Mark Brown wrote: On Mon, Aug 27, 2012 at 11:28:30PM +0200, Janusz Krzysztofik wrote: - platform_set_drvdata(ams_delta_audio_platform_device, - ams_delta_audio_card); The real fix here is that you should be using platform data here, not driver data. Is there some reason not to do that? Do you think the change you propose is suitable for the rc cycle? I'm trying to fix a regression in the first place. Converting the ams-delta asoc to a platform driver is on my todo list and I'm going to take care of this as soon as I have enough spare time. The above looks like you already have a platform driver? All I'm suggesting is changing the above to use platform rather than driver data. -- 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 5/5] arm: omap: n8x0: enable retu
Add Retu configuration. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi --- arch/arm/mach-omap2/board-n8x0.c |8 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index 8ea0dea..6ac8cd9 100644 --- a/arch/arm/mach-omap2/board-n8x0.c +++ b/arch/arm/mach-omap2/board-n8x0.c @@ -58,8 +58,16 @@ static struct platform_device n8x0_cbus_device = { }, }; +static struct i2c_board_info n8x0_i2c_board_info_3[] __initdata = { + { + I2C_BOARD_INFO(retu-mfd, 0x01), + }, +}; + static void __init n8x0_cbus_init(void) { + i2c_register_board_info(3, n8x0_i2c_board_info_3, + ARRAY_SIZE(n8x0_i2c_board_info_3)); platform_device_register(n8x0_cbus_device); } #else /* CONFIG_I2C_CBUS */ -- 1.7.2.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
[RFC PATCH 3/5] watchdog: introduce retu_wdt driver
Introduce Retu watchdog driver. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Cc: linux-watch...@vger.kernel.org --- drivers/watchdog/Kconfig| 12 +++ drivers/watchdog/Makefile |1 + drivers/watchdog/retu_wdt.c | 191 +++ 3 files changed, 204 insertions(+), 0 deletions(-) create mode 100644 drivers/watchdog/retu_wdt.c diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 53d7571..0526c7a 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -352,6 +352,18 @@ config IMX2_WDT To compile this driver as a module, choose M here: the module will be called imx2_wdt. +config RETU_WATCHDOG + tristate Retu watchdog + depends on MFD_RETU + select WATCHDOG_CORE + help + Retu watchdog driver for Nokia Internet Tablets (700, N800, + N810). At least on N800 the watchdog cannot be disabled, so + this driver is essential and you should enable it. + + To compile this driver as a module, choose M here: the + module will be called retu_wdt. + # AVR32 Architecture config AT32AP700X_WDT diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 572b39b..d2f1c0c 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -52,6 +52,7 @@ obj-$(CONFIG_STMP3XXX_WATCHDOG) += stmp3xxx_wdt.o obj-$(CONFIG_NUC900_WATCHDOG) += nuc900_wdt.o obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o +obj-$(CONFIG_RETU_WATCHDOG) += retu_wdt.o # AVR32 Architecture obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o diff --git a/drivers/watchdog/retu_wdt.c b/drivers/watchdog/retu_wdt.c new file mode 100644 index 000..4a3ae00 --- /dev/null +++ b/drivers/watchdog/retu_wdt.c @@ -0,0 +1,191 @@ +/* + * Retu watchdog driver + * + * Copyright (C) 2004, 2005 Nokia Corporation + * + * Based on code written by Amit Kucheria and Michael Buesch. Rewritten + * to use Retu MFD driver and new watchdog core by Aaro Koskinen. + * + * This file is subject to the terms and conditions of the GNU General + * Public License. See the file COPYING in the main directory of this + * archive for more details. + * + * 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. + */ + +#include linux/init.h +#include linux/slab.h +#include linux/errno.h +#include linux/device.h +#include linux/kernel.h +#include linux/module.h +#include linux/mfd/retu.h +#include linux/watchdog.h +#include linux/platform_device.h + +/* Watchdog timer values in seconds */ +#define RETU_WDT_MAX_TIMER 63 + +/* Registers */ +#define RETU_REG_WATCHDOG 0x17 + +struct retu_wdt_dev { + struct retu_dev *rdev; + struct device *dev; + struct delayed_work ping_work; +}; + +/* + * Since Retu watchdog cannot be disabled in hardware, we must kick it + * with a timer until userspace watchdog software takes over. If + * CONFIG_WATCHDOG_NOWAYOUT is set, we never start the feeding. + */ +static void retu_wdt_ping_enable(struct retu_wdt_dev *wdev) +{ + retu_write(wdev-rdev, RETU_REG_WATCHDOG, RETU_WDT_MAX_TIMER); + schedule_delayed_work(wdev-ping_work, + round_jiffies_relative(RETU_WDT_MAX_TIMER * HZ / 2)); +} + +static void retu_wdt_ping_disable(struct retu_wdt_dev *wdev) +{ + retu_write(wdev-rdev, RETU_REG_WATCHDOG, RETU_WDT_MAX_TIMER); + cancel_delayed_work_sync(wdev-ping_work); +} + +static void retu_wdt_ping_work(struct work_struct *work) +{ + struct retu_wdt_dev *wdev = container_of(to_delayed_work(work), + struct retu_wdt_dev, ping_work); + retu_wdt_ping_enable(wdev); +} + +static int retu_wdt_start(struct watchdog_device *wdog) +{ + struct retu_wdt_dev *wdev = watchdog_get_drvdata(wdog); + + retu_wdt_ping_disable(wdev); + + return retu_write(wdev-rdev, RETU_REG_WATCHDOG, wdog-timeout); +} + +static int retu_wdt_stop(struct watchdog_device *wdog) +{ + struct retu_wdt_dev *wdev = watchdog_get_drvdata(wdog); + + retu_wdt_ping_enable(wdev); + + return 0; +} + +static int retu_wdt_ping(struct watchdog_device *wdog) +{ + struct retu_wdt_dev *wdev = watchdog_get_drvdata(wdog); + + return retu_write(wdev-rdev, RETU_REG_WATCHDOG, wdog-timeout); +} + +static int retu_wdt_set_timeout(struct watchdog_device *wdog, + unsigned int timeout) +{ + struct retu_wdt_dev *wdev = watchdog_get_drvdata(wdog); + + wdog-timeout = timeout; + return retu_write(wdev-rdev, RETU_REG_WATCHDOG, wdog-timeout); +} + +static const struct watchdog_info retu_wdt_info = { + .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING, + .identity = Retu watchdog, +}; +
[RFC PATCH 2/5] mfd: introduce retu-mfd driver
Retu is a multi-function device found on Nokia Internet Tablets implementing at least watchdog, RTC, headset detection and power button functionality. This patch implements a minimum functionality providing only register access functions. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Cc: sa...@linux.intel.com --- drivers/mfd/Kconfig |8 +++ drivers/mfd/Makefile |1 + drivers/mfd/retu-mfd.c | 114 ++ include/linux/mfd/retu.h | 20 4 files changed, 143 insertions(+), 0 deletions(-) create mode 100644 drivers/mfd/retu-mfd.c create mode 100644 include/linux/mfd/retu.h diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index b1a1462..8ca1270 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1003,6 +1003,14 @@ config MFD_PALMAS If you say yes here you get support for the Palmas series of PMIC chips from Texas Instruments. +config MFD_RETU + tristate Support for Retu multi-function device + select MFD_CORE + depends on I2C + help + Retu is a multi-function device found on Nokia Internet Tables + (770, N800 and N810). + endmenu endif diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 79dd22d..962ec9d 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -132,3 +132,4 @@ obj-$(CONFIG_MFD_RC5T583) += rc5t583.o rc5t583-irq.o obj-$(CONFIG_MFD_SEC_CORE) += sec-core.o sec-irq.o obj-$(CONFIG_MFD_ANATOP) += anatop-mfd.o obj-$(CONFIG_MFD_LM3533) += lm3533-core.o lm3533-ctrlbank.o +obj-$(CONFIG_MFD_RETU) += retu-mfd.o diff --git a/drivers/mfd/retu-mfd.c b/drivers/mfd/retu-mfd.c new file mode 100644 index 000..f0097d7 --- /dev/null +++ b/drivers/mfd/retu-mfd.c @@ -0,0 +1,114 @@ +/* + * Retu MFD driver + * + * Copyright (C) 2004, 2005 Nokia Corporation + * + * Based on code written by Juha Yrjölä, David Weinehall and Mikko Ylinen. + * Rewritten to MFD/I2C driver by Aaro Koskinen. + * + * This file is subject to the terms and conditions of the GNU General + * Public License. See the file COPYING in the main directory of this + * archive for more details. + * + * 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. + */ + +#include linux/err.h +#include linux/i2c.h +#include linux/init.h +#include linux/slab.h +#include linux/mutex.h +#include linux/module.h +#include linux/mfd/core.h +#include linux/mfd/retu.h +#include linux/moduleparam.h + +/* Registers */ +#define RETU_REG_ASICR 0x00/* ASIC ID and revision */ +#define RETU_REG_ASICR_VILMA (1 7)/* Bit indicating Vilma */ + +static struct mfd_cell retu_devs[] = { + { .name = retu-wdt }, +}; + +int retu_read(struct retu_dev *rdev, u8 reg) +{ + return i2c_smbus_read_word_data(rdev-i2c, reg); +} +EXPORT_SYMBOL_GPL(retu_read); + +int retu_write(struct retu_dev *rdev, u8 reg, u16 data) +{ + return i2c_smbus_write_word_data(rdev-i2c, reg, data); +} +EXPORT_SYMBOL_GPL(retu_write); + +static int __devinit retu_probe(struct i2c_client *i2c, + const struct i2c_device_id *id) +{ + struct retu_dev *rdev; + int ret; + + rdev = kzalloc(sizeof(*rdev), GFP_KERNEL); + if (rdev == NULL) + return -ENOMEM; + + i2c_set_clientdata(i2c, rdev); + rdev-dev = i2c-dev; + rdev-i2c = i2c; + + ret = retu_read(rdev, RETU_REG_ASICR); + if (ret 0) { + dev_err(rdev-dev, could not read Retu revision: %d\n, ret); + return -EIO; + } + + dev_info(rdev-dev, Retu%s v%d.%d found\n, +(ret RETU_REG_ASICR_VILMA) ? Vilma : , +(ret 4) 0x7, ret 0xf); + + ret = mfd_add_devices(rdev-dev, -1, retu_devs, ARRAY_SIZE(retu_devs), + NULL, 0); + if (ret 0) + goto error; + + return ret; + +error: + kfree(rdev); + return ret; +} + +static int __devexit retu_remove(struct i2c_client *i2c) +{ + struct retu_dev *rdev = i2c_get_clientdata(i2c); + + mfd_remove_devices(rdev-dev); + kfree(rdev); + + return 0; +} + +static const struct i2c_device_id retu_id[] = { + { retu-mfd, 0 }, + { } +}; +MODULE_DEVICE_TABLE(i2c, retu_id); + +static struct i2c_driver retu_driver = { + .driver = { + .name = retu-mfd, + .owner = THIS_MODULE, + }, + .probe = retu_probe, + .remove = retu_remove, + .id_table = retu_id, +}; +module_i2c_driver(retu_driver); + +MODULE_DESCRIPTION(Retu MFD driver); +MODULE_AUTHOR(Aaro Koskinen aaro.koski...@iki.fi); +MODULE_LICENSE(GPL); diff --git a/include/linux/mfd/retu.h b/include/linux/mfd/retu.h new
[RFC PATCH 1/5] i2c: introduce i2c-cbus driver
Add i2c driver to enable access to devices behind CBUS on Nokia Internet Tablets. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Cc: linux-...@vger.kernel.org --- drivers/i2c/busses/Kconfig| 10 ++ drivers/i2c/busses/Makefile |1 + drivers/i2c/busses/i2c-cbus.c | 342 + include/linux/i2c-cbus.h | 27 4 files changed, 380 insertions(+), 0 deletions(-) create mode 100644 drivers/i2c/busses/i2c-cbus.c create mode 100644 include/linux/i2c-cbus.h diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index b4aaa1b..184ef43 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig @@ -331,6 +331,16 @@ config I2C_BLACKFIN_TWI_CLK_KHZ help The unit of the TWI clock is kHz. +config I2C_CBUS + tristate CBUS I2C driver + depends on GENERIC_GPIO + help + Support for CBUS access using I2C API. Mostly relevant for Nokia + Internet Tablets (770, N800 and N810). + + This driver can also be built as a module. If so, the module + will be called i2c-cbus. + config I2C_CPM tristate Freescale CPM1 or CPM2 (MPC8xx/826x) depends on (CPM1 || CPM2) OF_I2C diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile index ce3c2be..44dbfd1 100644 --- a/drivers/i2c/busses/Makefile +++ b/drivers/i2c/busses/Makefile @@ -31,6 +31,7 @@ obj-$(CONFIG_I2C_POWERMAC)+= i2c-powermac.o obj-$(CONFIG_I2C_AT91) += i2c-at91.o obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o +obj-$(CONFIG_I2C_CBUS) += i2c-cbus.o obj-$(CONFIG_I2C_CPM) += i2c-cpm.o obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o obj-$(CONFIG_I2C_DESIGNWARE_PLATFORM) += i2c-designware-platform.o diff --git a/drivers/i2c/busses/i2c-cbus.c b/drivers/i2c/busses/i2c-cbus.c new file mode 100644 index 000..3cc5be4 --- /dev/null +++ b/drivers/i2c/busses/i2c-cbus.c @@ -0,0 +1,342 @@ +/* + * CBUS I2C driver for Nokia Internet Tablets. + * + * Copyright (C) 2004-2010 Nokia Corporation + * + * Based on code written by Juha Yrjölä, David Weinehall, Mikko Ylinen and + * Felipe Balbi. Converted to I2C driver by Aaro Koskinen. + * + * This file is subject to the terms and conditions of the GNU General + * Public License. See the file COPYING in the main directory of this + * archive for more details. + * + * 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. + */ + +#include linux/gpio.h +#include linux/interrupt.h +#include linux/kernel.h +#include linux/module.h +#include linux/delay.h +#include linux/slab.h +#include linux/init.h +#include linux/errno.h +#include linux/platform_device.h +#include linux/i2c.h +#include linux/i2c-cbus.h +#include linux/io.h + +struct cbus_host { + /* host lock */ + spinlock_t lock; + + struct device *dev; + + int clk_gpio; + int dat_gpio; + int sel_gpio; +}; + +/** + * cbus_send_bit - sends one bit over the bus + * @host: the host we're using + * @bit: one bit of information to send + * @input: whether to set data pin as input after sending + */ +static int cbus_send_bit(struct cbus_host *host, unsigned bit, + unsigned input) +{ + int ret = 0; + + gpio_set_value(host-dat_gpio, bit ? 1 : 0); + gpio_set_value(host-clk_gpio, 1); + + /* The data bit is read on the rising edge of CLK */ + if (input) + ret = gpio_direction_input(host-dat_gpio); + + gpio_set_value(host-clk_gpio, 0); + + return ret; +} + +/** + * cbus_send_data - sends @len amount of data over the bus + * @host: the host we're using + * @data: the data to send + * @len: size of the transfer + * @input: whether to set data pin as input after sending + */ +static int cbus_send_data(struct cbus_host *host, unsigned data, unsigned len, + unsigned input) +{ + int ret = 0; + int i; + + for (i = len; i 0; i--) { + ret = cbus_send_bit(host, data (1 (i - 1)), + input (i == 1)); + if (ret 0) + goto out; + } + +out: + return ret; +} + +/** + * cbus_receive_bit - receives one bit from the bus + * @host: the host we're using + */ +static int cbus_receive_bit(struct cbus_host *host) +{ + int ret; + + gpio_set_value(host-clk_gpio, 1); + ret = gpio_get_value(host-dat_gpio); + if (ret 0) + goto out; + gpio_set_value(host-clk_gpio, 0); + +out: + return ret; +} + +/** + * cbus_receive_word - receives 16-bit word from the bus + * @host: the host we're using + */ +static int cbus_receive_word(struct cbus_host *host) +{ + int
[RFC PATCH 4/5] arm: omap: n8x0: add i2c-cbus platform data
Add platform data to enable i2c-cbus on N8x0. It will be I2C bus #3. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi --- arch/arm/mach-omap2/board-n8x0.c | 27 +++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index 677357f..8ea0dea 100644 --- a/arch/arm/mach-omap2/board-n8x0.c +++ b/arch/arm/mach-omap2/board-n8x0.c @@ -18,6 +18,7 @@ #include linux/io.h #include linux/stddef.h #include linux/i2c.h +#include linux/i2c-cbus.h #include linux/spi/spi.h #include linux/usb/musb.h #include sound/tlv320aic3x.h @@ -42,6 +43,31 @@ #define TUSB6010_GPIO_ENABLE 0 #define TUSB6010_DMACHAN 0x3f +#if defined(CONFIG_I2C_CBUS) || defined(CONFIG_I2C_CBUS_MODULE) +static struct i2c_cbus_platform_data n8x0_cbus_data = { + .clk_gpio = 66, + .dat_gpio = 65, + .sel_gpio = 64, +}; + +static struct platform_device n8x0_cbus_device = { + .name = i2c-cbus, + .id = 3, + .dev= { + .platform_data = n8x0_cbus_data, + }, +}; + +static void __init n8x0_cbus_init(void) +{ + platform_device_register(n8x0_cbus_device); +} +#else /* CONFIG_I2C_CBUS */ +static void __init n8x0_cbus_init(void) +{ +} +#endif /* CONFIG_I2C_CBUS */ + #if defined(CONFIG_USB_MUSB_TUSB6010) || defined(CONFIG_USB_MUSB_TUSB6010_MODULE) /* * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and @@ -681,6 +707,7 @@ static void __init n8x0_init_machine(void) gpmc_onenand_init(board_onenand_data); n8x0_mmc_init(); n8x0_usb_init(); + n8x0_cbus_init(); } MACHINE_START(NOKIA_N800, Nokia N800) -- 1.7.2.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
Re: [PATCH] arm: omap: ratelimit omap_l3_smx error log spam
Hi, On Tue, Aug 28, 2012 at 07:19:38AM -0700, Shilimkar, Santosh wrote: Or the PPA has resized the secure area of 16K. As you have seen the issue on one OMAP3 device, it makes sense to takeout that 16K from the public SRAM map. Can you send the patch with fixed base address fir PUB SRAM ? Maybe I'm missing something, but I tried the following and now something else got broken: save_secure_sram() returns ff02 (and it hangs there). diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 766181c..242ea5b 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c @@ -38,7 +38,7 @@ #define OMAP1_SRAM_PA 0x2000 #define OMAP2_SRAM_PUB_PA (OMAP2_SRAM_PA + 0xf800) -#define OMAP3_SRAM_PUB_PA (OMAP3_SRAM_PA + 0x8000) +#define OMAP3_SRAM_PUB_PA (OMAP3_SRAM_PA + 0xc000) #ifdef CONFIG_OMAP4_ERRATA_I688 #define OMAP4_SRAM_PUB_PA OMAP4_SRAM_PA #else @@ -112,9 +112,9 @@ static void __init omap_detect_sram(void) omap_sram_start = OMAP3_SRAM_PUB_PA; if ((omap_type() == OMAP2_DEVICE_TYPE_EMU) || (omap_type() == OMAP2_DEVICE_TYPE_SEC)) { - omap_sram_size = 0x7000; /* 28K */ + omap_sram_size = 0x3000; /* 12K */ } else { - omap_sram_size = 0x8000; /* 32K */ + omap_sram_size = SZ_16K; /* 16K */ } } else if (cpu_is_omap44xx()) { omap_sram_start = OMAP4_SRAM_PUB_PA; -- 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/9] ARM: OMAP: cleanup plat/board.h file
This patch series cleans up the plat/board.h and related files. Remove confusingly empty struct omap_board_config_kernel structures and unused omap_get_nr_config() macro along with unused omap_get_var_config() function. Those apparently were never used in upstream kernels. Move OMAP3EVM revision bits to the board file as those are not used (and never have been used) outside of the board file in upstream kernels. Remove the tags part of the sti console workaround on OMAP2. Also remove the crystal type tag parsing code on OMAP1. Since the tags were never used upstream, the sti console workaround and the crystal type tag parsing code have never fired. OMAP custom tags code is not used - remove it. Finally, move all leftovers from the plat/board.h to include/linux/* and delete the plat/board.h file. The series are based on Linus' v3.6-rc3, checkpatch clean, and have been compile tested with omap1|2plus_defconfig(s). Igor Grinberg (9): ARM: OMAP: cleanup struct omap_board_config_kernel ARM: OMAP: omap3evm: cleanup revision bits ARM: OMAP: remove the sti console workaround ARM: OMAP1: remove the crystal type tag parsing ARM: OMAP: remove the omap custom tags ARM: OMAP1: move omap1_bl pdata out of arch/arm/* ARM: OMAP1: move lcd pdata out of arch/arm/* ARM: OMAP: move debug_card_init() function ARM: OMAP: remove plat/board.h file arch/arm/mach-omap1/board-ams-delta.c |1 - arch/arm/mach-omap1/board-fsample.c |1 - arch/arm/mach-omap1/board-generic.c |6 - arch/arm/mach-omap1/board-htcherald.c |1 - arch/arm/mach-omap1/board-nokia770.c|1 - arch/arm/mach-omap1/board-osk.c |1 + arch/arm/mach-omap1/board-palmte.c |2 +- arch/arm/mach-omap1/board-palmtt.c |2 +- arch/arm/mach-omap1/board-palmz71.c |2 +- arch/arm/mach-omap1/board-perseus2.c|1 - arch/arm/mach-omap1/board-sx1.c |1 - arch/arm/mach-omap1/board-voiceblue.c |6 - arch/arm/mach-omap1/clock_data.c|8 -- arch/arm/mach-omap1/devices.c |1 - arch/arm/mach-omap1/serial.c|1 - arch/arm/mach-omap2/board-2430sdp.c |1 - arch/arm/mach-omap2/board-3430sdp.c |6 - arch/arm/mach-omap2/board-3630sdp.c |6 - arch/arm/mach-omap2/board-4430sdp.c |1 - arch/arm/mach-omap2/board-am3517crane.c |9 -- arch/arm/mach-omap2/board-am3517evm.c |6 - arch/arm/mach-omap2/board-apollon.c |1 - arch/arm/mach-omap2/board-cm-t35.c |6 - arch/arm/mach-omap2/board-cm-t3517.c|6 - arch/arm/mach-omap2/board-devkit8000.c |1 - arch/arm/mach-omap2/board-generic.c |1 - arch/arm/mach-omap2/board-h4.c |2 +- arch/arm/mach-omap2/board-igep0020.c|1 - arch/arm/mach-omap2/board-ldp.c |1 - arch/arm/mach-omap2/board-n8x0.c|1 - arch/arm/mach-omap2/board-omap3beagle.c |1 - arch/arm/mach-omap2/board-omap3evm.c| 19 ++- arch/arm/mach-omap2/board-omap3logic.c |1 - arch/arm/mach-omap2/board-omap3pandora.c|1 - arch/arm/mach-omap2/board-omap3stalker.c|6 - arch/arm/mach-omap2/board-omap3touchbook.c |1 - arch/arm/mach-omap2/board-omap4panda.c |1 - arch/arm/mach-omap2/board-overo.c |1 - arch/arm/mach-omap2/board-rx51-peripherals.c|1 - arch/arm/mach-omap2/board-rx51.c|1 - arch/arm/mach-omap2/board-ti8168evm.c |6 - arch/arm/mach-omap2/board-zoom.c|1 - arch/arm/mach-omap2/common.c|1 - arch/arm/mach-omap2/devices.c |1 - arch/arm/mach-omap2/gpmc-nand.c |1 - arch/arm/mach-omap2/gpmc-onenand.c |1 - arch/arm/mach-omap2/gpmc-smc91x.c |1 - arch/arm/mach-omap2/gpmc-smsc911x.c |1 - arch/arm/mach-omap2/pm-debug.c |1 - arch/arm/mach-omap2/pm24xx.c| 11 -- arch/arm/mach-omap2/serial.c|1 - arch/arm/plat-omap/common.c | 40 --- arch/arm/plat-omap/counter_32k.c|1 - arch/arm/plat-omap/debug-devices.c |3 - arch/arm/plat-omap/devices.c|1 - arch/arm/plat-omap/fb.c |2 - arch/arm/plat-omap/include/plat/board.h | 138 --- arch/arm/plat-omap/include/plat/debug-devices.h |9 ++ arch/arm/plat-omap/include/plat/mmc.h |1 - arch/arm/plat-omap/include/plat/usb.h |1 - arch/arm/plat-omap/sram.c |1 - drivers/mmc/host/omap.c |
[PATCH 3/9] ARM: OMAP: remove the sti console workaround
The sti console workaround uses the OMAP custom tags. Those tags are not used in upstream kernel and therefore the workaround never fires on upstream kernels. Remove the sti console workaround tags part. This leaves the workaround functional part intact so can be reused if needed. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap2/pm24xx.c | 10 -- 1 files changed, 0 insertions(+), 10 deletions(-) diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index 2edeffc..9e54dc9 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c @@ -352,16 +352,6 @@ int __init omap2_pm_init(void) prcm_setup_regs(); - /* Hack to prevent MPU retention when STI console is enabled. */ - { - const struct omap_sti_console_config *sti; - - sti = omap_get_config(OMAP_TAG_STI_CONSOLE, - struct omap_sti_console_config); - if (sti != NULL sti-enable) - sti_console_enabled = 1; - } - /* * We copy the assembler sleep/wakeup routines to SRAM. * These routines need to be in SRAM as that's the only -- 1.7.8.6 -- 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/9] ARM: OMAP1: move omap1_bl pdata out of arch/arm/*
omap1 backlight platform data resides inside plat/board.h while it should be inside include/linux/... Move the omap1 backlight platform data to include/linux/platform_data/. Cc: Richard Purdie rpur...@rpsys.net Cc: Florian Tobias Schandinat florianschandi...@gmx.de Cc: linux-fb...@vger.kernel.org Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap1/board-osk.c |1 + arch/arm/mach-omap1/board-palmte.c |1 + arch/arm/mach-omap1/board-palmtt.c |1 + arch/arm/mach-omap1/board-palmz71.c |1 + arch/arm/plat-omap/include/plat/board.h |7 --- drivers/video/backlight/omap1_bl.c |2 +- include/linux/platform_data/omap1_bl.h | 11 +++ 7 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 include/linux/platform_data/omap1_bl.h diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index 8784705..569b687 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c @@ -39,6 +39,7 @@ #include linux/mtd/partitions.h #include linux/mtd/physmap.h #include linux/i2c/tps65010.h +#include linux/platform_data/omap1_bl.h #include asm/mach-types.h #include asm/mach/arch.h diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 26bcb9d..7bf00ba 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c @@ -28,6 +28,7 @@ #include linux/interrupt.h #include linux/apm-emulation.h #include linux/omapfb.h +#include linux/platform_data/omap1_bl.h #include asm/mach-types.h #include asm/mach/arch.h diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index 4d09944..2cce505 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c @@ -27,6 +27,7 @@ #include linux/omapfb.h #include linux/spi/spi.h #include linux/spi/ads7846.h +#include linux/platform_data/omap1_bl.h #include asm/mach-types.h #include asm/mach/arch.h diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c index 3559803..45ab9f0 100644 --- a/arch/arm/mach-omap1/board-palmz71.c +++ b/arch/arm/mach-omap1/board-palmz71.c @@ -30,6 +30,7 @@ #include linux/omapfb.h #include linux/spi/spi.h #include linux/spi/ads7846.h +#include linux/platform_data/omap1_bl.h #include asm/mach-types.h #include asm/mach/arch.h diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index 5938c72..d0bc46e 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h @@ -19,13 +19,6 @@ struct omap_lcd_config { u8 data_lines; }; -struct device; -struct fb_info; -struct omap_backlight_config { - int default_intensity; - int (*set_power)(struct device *dev, int state); -}; - /* for TI reference platforms sharing the same debug card */ extern int debug_card_init(u32 addr, unsigned gpio); diff --git a/drivers/video/backlight/omap1_bl.c b/drivers/video/backlight/omap1_bl.c index bfdc5fb..92257ef 100644 --- a/drivers/video/backlight/omap1_bl.c +++ b/drivers/video/backlight/omap1_bl.c @@ -27,9 +27,9 @@ #include linux/fb.h #include linux/backlight.h #include linux/slab.h +#include linux/platform_data/omap1_bl.h #include mach/hardware.h -#include plat/board.h #include plat/mux.h #define OMAPBL_MAX_INTENSITY 0xff diff --git a/include/linux/platform_data/omap1_bl.h b/include/linux/platform_data/omap1_bl.h new file mode 100644 index 000..881a8e9 --- /dev/null +++ b/include/linux/platform_data/omap1_bl.h @@ -0,0 +1,11 @@ +#ifndef __OMAP1_BL_H__ +#define __OMAP1_BL_H__ + +#include linux/device.h + +struct omap_backlight_config { + int default_intensity; + int (*set_power)(struct device *dev, int state); +}; + +#endif -- 1.7.8.6 -- 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/9] ARM: OMAP: cleanup struct omap_board_config_kernel
struct omap_board_config_kernel defined in the board files is always empty and does not bring any added value. Remove the struct omap_board_config_kernel instances from the board files. Also remove the omap_get_nr_config() macro and the omap_get_var_config() function as both are not used for quite a long time (if ever). Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap1/board-generic.c |5 - arch/arm/mach-omap1/board-voiceblue.c|5 - arch/arm/mach-omap2/board-3430sdp.c |6 -- arch/arm/mach-omap2/board-3630sdp.c |6 -- arch/arm/mach-omap2/board-am3517crane.c |9 - arch/arm/mach-omap2/board-am3517evm.c|6 -- arch/arm/mach-omap2/board-cm-t35.c |6 -- arch/arm/mach-omap2/board-cm-t3517.c |6 -- arch/arm/mach-omap2/board-omap3evm.c |7 --- arch/arm/mach-omap2/board-omap3stalker.c |6 -- arch/arm/mach-omap2/board-ti8168evm.c|6 -- arch/arm/plat-omap/common.c |5 - arch/arm/plat-omap/include/plat/board.h |4 13 files changed, 0 insertions(+), 77 deletions(-) diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index 6ec385e..d032734 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c @@ -52,9 +52,6 @@ static struct omap_usb_config generic1610_usb_config __initdata = { }; #endif -static struct omap_board_config_kernel generic_config[] __initdata = { -}; - static void __init omap_generic_init(void) { #ifdef CONFIG_ARCH_OMAP15XX @@ -76,8 +73,6 @@ static void __init omap_generic_init(void) } #endif - omap_board_config = generic_config; - omap_board_config_size = ARRAY_SIZE(generic_config); omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); } diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 3497769..11e1ff3 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c @@ -155,9 +155,6 @@ static struct omap_usb_config voiceblue_usb_config __initdata = { .pins[2]= 6, }; -static struct omap_board_config_kernel voiceblue_config[] = { -}; - #define MACHINE_PANICED1 #define MACHINE_REBOOTING 2 #define MACHINE_REBOOT 4 @@ -275,8 +272,6 @@ static void __init voiceblue_init(void) voiceblue_smc91x_resources[1].start = gpio_to_irq(8); voiceblue_smc91x_resources[1].end = gpio_to_irq(8); platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices)); - omap_board_config = voiceblue_config; - omap_board_config_size = ARRAY_SIZE(voiceblue_config); omap_serial_init(); omap1_usb_init(voiceblue_usb_config); omap_register_i2c_bus(1, 100, NULL, 0); diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index a98c688..0f78cdb 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c @@ -31,7 +31,6 @@ #include asm/mach/map.h #include plat/mcspi.h -#include plat/board.h #include plat/usb.h #include common.h #include plat/dma.h @@ -191,9 +190,6 @@ static struct omap_dss_board_info sdp3430_dss_data = { .default_device = sdp3430_lcd_device, }; -static struct omap_board_config_kernel sdp3430_config[] __initdata = { -}; - static struct omap2_hsmmc_info mmc[] = { { .mmc= 1, @@ -576,8 +572,6 @@ static void __init omap_3430sdp_init(void) int gpio_pendown; omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); - omap_board_config = sdp3430_config; - omap_board_config_size = ARRAY_SIZE(sdp3430_config); omap_hsmmc_init(mmc); omap3430_i2c_init(); omap_display_init(sdp3430_dss_data); diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index 2dc9ba5..8518b13 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c @@ -17,7 +17,6 @@ #include asm/mach/arch.h #include common.h -#include plat/board.h #include plat/gpmc-smc91x.h #include plat/usb.h @@ -67,9 +66,6 @@ static const struct usbhs_omap_board_data usbhs_bdata __initconst = { .reset_gpio_port[2] = -EINVAL }; -static struct omap_board_config_kernel sdp_config[] __initdata = { -}; - #ifdef CONFIG_OMAP_MUX static struct omap_board_mux board_mux[] __initdata = { { .reg_offset = OMAP_MUX_TERMINATOR }, @@ -197,8 +193,6 @@ static struct flash_partitions sdp_flash_partitions[] = { static void __init omap_sdp_init(void) { omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); - omap_board_config = sdp_config; - omap_board_config_size = ARRAY_SIZE(sdp_config); zoom_peripherals_init(); omap_sdrc_init(h8mbx00u0mer0em_sdrc_params, h8mbx00u0mer0em_sdrc_params); diff --git
[PATCH 2/9] ARM: OMAP: omap3evm: cleanup revision bits
The omap3evm has its revision information bits inside the plat/board.h file. Those bits are not used anywhere in the upstream tree besides the board-omap3evm.c file. Move the OMAP3EVM_BOARD_GEN_* bits to the board file and remove the get_omap3_evm_rev() function declaration. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap2/board-omap3evm.c| 12 arch/arm/plat-omap/include/plat/board.h | 18 -- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 5be082b..8477137 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c @@ -73,6 +73,18 @@ #define OMAP3EVM_GEN1_ETHR_GPIO_RST64 #define OMAP3EVM_GEN2_ETHR_GPIO_RST7 +/* + * OMAP35x EVM revision + * Run time detection of EVM revision is done by reading Ethernet + * PHY ID - + * GEN_1 = 0x0115 + * GEN_2 = 0x9220 + */ +enum { + OMAP3EVM_BOARD_GEN_1 = 0, /* EVM Rev between A - D */ + OMAP3EVM_BOARD_GEN_2, /* EVM Rev = Rev E */ +}; + static u8 omap3_evm_version; u8 get_omap3_evm_rev(void) diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index e6a8d79..db3bdc1 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h @@ -14,18 +14,6 @@ #include plat/gpio-switch.h -/* - * OMAP35x EVM revision - * Run time detection of EVM revision is done by reading Ethernet - * PHY ID - - * GEN_1 = 0x0115 - * GEN_2 = 0x9220 - */ -enum { - OMAP3EVM_BOARD_GEN_1 = 0, /* EVM Rev between A - D */ - OMAP3EVM_BOARD_GEN_2, /* EVM Rev = Rev E */ -}; - /* Different peripheral ids */ #define OMAP_TAG_CLOCK 0x4f01 #define OMAP_TAG_GPIO_SWITCH 0x4f06 @@ -125,10 +113,4 @@ extern int omap_board_config_size; /* for TI reference platforms sharing the same debug card */ extern int debug_card_init(u32 addr, unsigned gpio); -/* OMAP3EVM revision */ -#if defined(CONFIG_MACH_OMAP3EVM) -u8 get_omap3_evm_rev(void); -#else -#define get_omap3_evm_rev() (-EINVAL) -#endif #endif -- 1.7.8.6 -- 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/9] ARM: OMAP1: remove the crystal type tag parsing
The omap1 crystal setting uses the OMAP custom tags. Those tags are not used in upstream kernel and therefore the crystal type is never set by the tag parsing code on upstream kernels. Remove the crystal tag parsing code. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap1/clock_data.c |8 1 files changed, 0 insertions(+), 8 deletions(-) diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c index c007d80..6a32b9b 100644 --- a/arch/arm/mach-omap1/clock_data.c +++ b/arch/arm/mach-omap1/clock_data.c @@ -25,7 +25,6 @@ #include plat/clock.h #include plat/cpu.h #include plat/clkdev_omap.h -#include plat/board.h #include plat/sram.h /* for omap_sram_reprogram_clock() */ #include mach/hardware.h @@ -788,7 +787,6 @@ u32 cpu_mask; int __init omap1_clk_init(void) { struct omap_clk *c; - const struct omap_clock_config *info; int crystal_type = 0; /* Default 12 MHz */ u32 reg; @@ -837,12 +835,6 @@ int __init omap1_clk_init(void) ck_dpll1_p = clk_get(NULL, ck_dpll1); ck_ref_p = clk_get(NULL, ck_ref); - info = omap_get_config(OMAP_TAG_CLOCK, struct omap_clock_config); - if (info != NULL) { - if (!cpu_is_omap15xx()) - crystal_type = info-system_clock_type; - } - if (cpu_is_omap7xx()) ck_ref.rate = 1300; if (cpu_is_omap16xx() crystal_type == 2) -- 1.7.8.6 -- 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 7/9] ARM: OMAP1: move lcd pdata out of arch/arm/*
omap1 lcd platform data resides inside plat/board.h while it should be inside include/linux/... Move the omap1 lcd platform data to include/linux/omapfb.h. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap1/board-ams-delta.c |1 - arch/arm/mach-omap1/board-fsample.c |1 - arch/arm/mach-omap1/board-htcherald.c |1 - arch/arm/mach-omap1/board-nokia770.c|1 - arch/arm/mach-omap1/board-palmte.c |1 - arch/arm/mach-omap1/board-palmtt.c |1 - arch/arm/mach-omap1/board-palmz71.c |1 - arch/arm/mach-omap1/board-perseus2.c|1 - arch/arm/mach-omap1/board-sx1.c |1 - arch/arm/plat-omap/fb.c |2 -- arch/arm/plat-omap/include/plat/board.h |7 --- include/linux/omapfb.h |7 ++- 12 files changed, 6 insertions(+), 19 deletions(-) diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index c534698..c162369 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c @@ -37,7 +37,6 @@ #include plat/board-ams-delta.h #include plat/keypad.h #include plat/mux.h -#include plat/board.h #include mach/hardware.h #include mach/ams-delta-fiq.h diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index 6872f3f..6d98552 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c @@ -32,7 +32,6 @@ #include plat/flash.h #include plat/fpga.h #include plat/keypad.h -#include plat/board.h #include mach/hardware.h diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-omap1/board-htcherald.c index b3f6e94..b9771b5 100644 --- a/arch/arm/mach-omap1/board-htcherald.c +++ b/arch/arm/mach-omap1/board-htcherald.c @@ -42,7 +42,6 @@ #include asm/mach/arch.h #include plat/omap7xx.h -#include plat/board.h #include plat/keypad.h #include plat/mmc.h diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index 2c0ca8f..ec01f03 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c @@ -26,7 +26,6 @@ #include asm/mach/map.h #include plat/mux.h -#include plat/board.h #include plat/keypad.h #include plat/lcd_mipid.h #include plat/mmc.h diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 7bf00ba..49f8d74 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c @@ -38,7 +38,6 @@ #include plat/mux.h #include plat/tc.h #include plat/dma.h -#include plat/board.h #include plat/irda.h #include plat/keypad.h diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index 2cce505..01523cd 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c @@ -38,7 +38,6 @@ #include plat/mux.h #include plat/dma.h #include plat/tc.h -#include plat/board.h #include plat/irda.h #include plat/keypad.h diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c index 45ab9f0..a7abce6 100644 --- a/arch/arm/mach-omap1/board-palmz71.c +++ b/arch/arm/mach-omap1/board-palmz71.c @@ -40,7 +40,6 @@ #include plat/mux.h #include plat/dma.h #include plat/tc.h -#include plat/board.h #include plat/irda.h #include plat/keypad.h diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 703d55e..277e0bc 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c @@ -32,7 +32,6 @@ #include plat/fpga.h #include plat/flash.h #include plat/keypad.h -#include plat/board.h #include mach/hardware.h diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c index 8c665bd..2e1fff2 100644 --- a/arch/arm/mach-omap1/board-sx1.c +++ b/arch/arm/mach-omap1/board-sx1.c @@ -38,7 +38,6 @@ #include plat/dma.h #include plat/irda.h #include plat/tc.h -#include plat/board.h #include plat/keypad.h #include plat/board-sx1.h diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index dd6f92c..bcbb9d5 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c @@ -33,8 +33,6 @@ #include mach/hardware.h #include asm/mach/map.h -#include plat/board.h - #if defined(CONFIG_FB_OMAP) || defined(CONFIG_FB_OMAP_MODULE) static bool omapfb_lcd_configured; diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index d0bc46e..2ddc198 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h @@ -12,13 +12,6 @@ #include linux/types.h -struct omap_lcd_config { - char panel_name[16]; - char ctrl_name[16]; - s16 nreset_gpio; - u8 data_lines; -}; - /* for TI reference platforms sharing the same debug card */ extern int debug_card_init(u32 addr, unsigned gpio); diff --git a/include/linux/omapfb.h
[PATCH 5/9] ARM: OMAP: remove the omap custom tags
The omap custom initialization tags are not used anymore (if ever) by the mainline kernel. Thus remove the omap custom initialization tags. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/plat-omap/common.c | 34 arch/arm/plat-omap/include/plat/board.h | 84 --- 2 files changed, 0 insertions(+), 118 deletions(-) diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index af98971..7c04748 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c @@ -24,40 +24,6 @@ #include plat/omap-secure.h - -#define NO_LENGTH_CHECK 0x - -struct omap_board_config_kernel *omap_board_config __initdata; -int omap_board_config_size; - -static const void *__init get_config(u16 tag, size_t len, - int skip, size_t *len_out) -{ - struct omap_board_config_kernel *kinfo = NULL; - int i; - - /* Try to find the config from the board-specific structures -* in the kernel. */ - for (i = 0; i omap_board_config_size; i++) { - if (omap_board_config[i].tag == tag) { - if (skip == 0) { - kinfo = omap_board_config[i]; - break; - } else { - skip--; - } - } - } - if (kinfo == NULL) - return NULL; - return kinfo-data; -} - -const void *__init __omap_get_config(u16 tag, size_t len, int nr) -{ -return get_config(tag, len, nr, NULL); -} - void __init omap_reserve(void) { omap_vram_reserve_sdram_memblock(); diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index db3bdc1..5938c72 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h @@ -12,39 +12,6 @@ #include linux/types.h -#include plat/gpio-switch.h - -/* Different peripheral ids */ -#define OMAP_TAG_CLOCK 0x4f01 -#define OMAP_TAG_GPIO_SWITCH 0x4f06 -#define OMAP_TAG_STI_CONSOLE 0x4f09 -#define OMAP_TAG_CAMERA_SENSOR 0x4f0a - -#define OMAP_TAG_BOOT_REASON0x4f80 -#define OMAP_TAG_FLASH_PART0x4f81 -#define OMAP_TAG_VERSION_STR 0x4f82 - -struct omap_clock_config { - /* 0 for 12 MHz, 1 for 13 MHz and 2 for 19.2 MHz */ - u8 system_clock_type; -}; - -struct omap_serial_console_config { - u8 console_uart; - u32 console_speed; -}; - -struct omap_sti_console_config { - unsigned enable:1; - u8 channel; -}; - -struct omap_camera_sensor_config { - u16 reset_gpio; - int (*power_on)(void * data); - int (*power_off)(void * data); -}; - struct omap_lcd_config { char panel_name[16]; char ctrl_name[16]; @@ -59,57 +26,6 @@ struct omap_backlight_config { int (*set_power)(struct device *dev, int state); }; -struct omap_fbmem_config { - u32 start; - u32 size; -}; - -struct omap_pwm_led_platform_data { - const char *name; - int intensity_timer; - int blink_timer; - void (*set_power)(struct omap_pwm_led_platform_data *self, int on_off); -}; - -struct omap_uart_config { - /* Bit field of UARTs present; bit 0 -- UART1 */ - unsigned int enabled_uarts; -}; - - -struct omap_flash_part_config { - char part_table[0]; -}; - -struct omap_boot_reason_config { - char reason_str[12]; -}; - -struct omap_version_config { - char component[12]; - char version[12]; -}; - -struct omap_board_config_entry { - u16 tag; - u16 len; - u8 data[0]; -}; - -struct omap_board_config_kernel { - u16 tag; - const void *data; -}; - -extern const void *__init __omap_get_config(u16 tag, size_t len, int nr); - -#define omap_get_config(tag, type) \ - ((const type *) __omap_get_config((tag), sizeof(type), 0)) - -extern struct omap_board_config_kernel *omap_board_config; -extern int omap_board_config_size; - - /* for TI reference platforms sharing the same debug card */ extern int debug_card_init(u32 addr, unsigned gpio); -- 1.7.8.6 -- 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 8/9] ARM: OMAP: move debug_card_init() function
debug_card_init() function resides in the plat/board.h file. Move it to a separate header file under plat/ so the board.h file can be removed. Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap2/board-h4.c |2 +- arch/arm/plat-omap/include/plat/board.h |5 - arch/arm/plat-omap/include/plat/debug-devices.h |9 + 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 arch/arm/plat-omap/include/plat/debug-devices.h diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index ace2048..5be30e6 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c @@ -32,11 +32,11 @@ #include asm/mach/arch.h #include asm/mach/map.h -#include plat/board.h #include common.h #include plat/menelaus.h #include plat/dma.h #include plat/gpmc.h +#include plat/debug-devices.h #include video/omapdss.h #include video/omap-panel-generic-dpi.h diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index 2ddc198..d92f1b5 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h @@ -10,9 +10,4 @@ #ifndef _OMAP_BOARD_H #define _OMAP_BOARD_H -#include linux/types.h - -/* for TI reference platforms sharing the same debug card */ -extern int debug_card_init(u32 addr, unsigned gpio); - #endif diff --git a/arch/arm/plat-omap/include/plat/debug-devices.h b/arch/arm/plat-omap/include/plat/debug-devices.h new file mode 100644 index 000..a4edbd2 --- /dev/null +++ b/arch/arm/plat-omap/include/plat/debug-devices.h @@ -0,0 +1,9 @@ +#ifndef _OMAP_DEBUG_DEVICES_H +#define _OMAP_DEBUG_DEVICES_H + +#include linux/types.h + +/* for TI reference platforms sharing the same debug card */ +extern int debug_card_init(u32 addr, unsigned gpio); + +#endif -- 1.7.8.6 -- 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 9/9] ARM: OMAP: remove plat/board.h file
plat/board.h file is now empty - remove it. Cc: Jarkko Lavinen jarkko.lavi...@nokia.com Cc: Chris Ball c...@laptop.org Cc: Kyungmin Park kyungmin.p...@samsung.com Cc: linux-...@vger.kernel.org Cc: linux-...@lists.infradead.org Signed-off-by: Igor Grinberg grinb...@compulab.co.il --- arch/arm/mach-omap1/board-generic.c |1 - arch/arm/mach-omap1/board-voiceblue.c|1 - arch/arm/mach-omap1/devices.c|1 - arch/arm/mach-omap1/serial.c |1 - arch/arm/mach-omap2/board-2430sdp.c |1 - arch/arm/mach-omap2/board-4430sdp.c |1 - arch/arm/mach-omap2/board-apollon.c |1 - arch/arm/mach-omap2/board-devkit8000.c |1 - arch/arm/mach-omap2/board-generic.c |1 - arch/arm/mach-omap2/board-igep0020.c |1 - arch/arm/mach-omap2/board-ldp.c |1 - arch/arm/mach-omap2/board-n8x0.c |1 - arch/arm/mach-omap2/board-omap3beagle.c |1 - arch/arm/mach-omap2/board-omap3logic.c |1 - arch/arm/mach-omap2/board-omap3pandora.c |1 - arch/arm/mach-omap2/board-omap3touchbook.c |1 - arch/arm/mach-omap2/board-omap4panda.c |1 - arch/arm/mach-omap2/board-overo.c|1 - arch/arm/mach-omap2/board-rx51-peripherals.c |1 - arch/arm/mach-omap2/board-rx51.c |1 - arch/arm/mach-omap2/board-zoom.c |1 - arch/arm/mach-omap2/common.c |1 - arch/arm/mach-omap2/devices.c|1 - arch/arm/mach-omap2/gpmc-nand.c |1 - arch/arm/mach-omap2/gpmc-onenand.c |1 - arch/arm/mach-omap2/gpmc-smc91x.c|1 - arch/arm/mach-omap2/gpmc-smsc911x.c |1 - arch/arm/mach-omap2/pm-debug.c |1 - arch/arm/mach-omap2/pm24xx.c |1 - arch/arm/mach-omap2/serial.c |1 - arch/arm/plat-omap/common.c |1 - arch/arm/plat-omap/counter_32k.c |1 - arch/arm/plat-omap/debug-devices.c |3 --- arch/arm/plat-omap/devices.c |1 - arch/arm/plat-omap/include/plat/board.h | 13 - arch/arm/plat-omap/include/plat/mmc.h|1 - arch/arm/plat-omap/include/plat/usb.h|1 - arch/arm/plat-omap/sram.c|1 - drivers/mmc/host/omap.c |1 - drivers/mmc/host/omap_hsmmc.c|1 - drivers/mtd/onenand/omap2.c |2 -- 41 files changed, 0 insertions(+), 56 deletions(-) delete mode 100644 arch/arm/plat-omap/include/plat/board.h diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index d032734..04b5fda 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c @@ -23,7 +23,6 @@ #include asm/mach/map.h #include plat/mux.h -#include plat/board.h #include mach/usb.h diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 11e1ff3..1668af3 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c @@ -35,7 +35,6 @@ #include plat/flash.h #include plat/mux.h #include plat/tc.h -#include plat/board.h #include mach/hardware.h #include mach/usb.h diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index fa1fa4d..1feca35 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c @@ -20,7 +20,6 @@ #include asm/mach/map.h #include plat/tc.h -#include plat/board.h #include plat/mux.h #include plat/dma.h #include plat/mmc.h diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c index 6809c9e..0d1709b 100644 --- a/arch/arm/mach-omap1/serial.c +++ b/arch/arm/mach-omap1/serial.c @@ -22,7 +22,6 @@ #include asm/mach-types.h -#include plat/board.h #include plat/mux.h #include plat/fpga.h diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 9511584..36eee4b 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c @@ -33,7 +33,6 @@ #include asm/mach/arch.h #include asm/mach/map.h -#include plat/board.h #include common.h #include plat/gpmc.h #include plat/usb.h diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index ad8a7d9..04e8574 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -34,7 +34,6 @@ #include asm/mach/arch.h #include asm/mach/map.h -#include plat/board.h #include common.h #include plat/usb.h #include plat/mmc.h diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c index e5fa46b..a6a1b48 100644 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c @@ -35,7 +35,6 @@ #include asm/mach/flash.h #include plat/led.h -#include plat/board.h #include common.h
Re: [PATCH] arm: omap: ratelimit omap_l3_smx error log spam
On Tue, Aug 28, 2012 at 4:09 PM, Aaro Koskinen aaro.koski...@iki.fi wrote: Hi, On Tue, Aug 28, 2012 at 07:19:38AM -0700, Shilimkar, Santosh wrote: Or the PPA has resized the secure area of 16K. As you have seen the issue on one OMAP3 device, it makes sense to takeout that 16K from the public SRAM map. Can you send the patch with fixed base address fir PUB SRAM ? Maybe I'm missing something, but I tried the following and now something else got broken: save_secure_sram() returns ff02 Damn. Looks like, you are running short of memory now for sram_push stuff. 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 9/9] ARM: OMAP: remove plat/board.h file
Hi, On Tue, Aug 28 2012, Igor Grinberg wrote: drivers/mmc/host/omap.c |1 - drivers/mmc/host/omap_hsmmc.c|1 - Acked-by: Chris Ball c...@laptop.org -- Chris Ball c...@laptop.org http://printf.net/ One Laptop Per Child -- 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] arm: omap: ratelimit omap_l3_smx error log spam
On Tue, Aug 28, 2012 at 04:38:24PM -0700, Shilimkar, Santosh wrote: On Tue, Aug 28, 2012 at 4:09 PM, Aaro Koskinen aaro.koski...@iki.fi wrote: On Tue, Aug 28, 2012 at 07:19:38AM -0700, Shilimkar, Santosh wrote: Or the PPA has resized the secure area of 16K. As you have seen the issue on one OMAP3 device, it makes sense to takeout that 16K from the public SRAM map. Can you send the patch with fixed base address fir PUB SRAM ? Maybe I'm missing something, but I tried the following and now something else got broken: save_secure_sram() returns ff02 Damn. Looks like, you are running short of memory now for sram_push stuff. No, it's not that, because the below version works and that leaves as little memory for the sram_push code: diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index 766181c..a91e7ad 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c @@ -47,7 +47,7 @@ #define OMAP5_SRAM_PA 0x4030 #if defined(CONFIG_ARCH_OMAP2PLUS) -#define SRAM_BOOTLOADER_SZ 0x00 +#define SRAM_BOOTLOADER_SZ (cpu_is_omap34xx() ? SZ_16K : 0) #else #define SRAM_BOOTLOADER_SZ 0x80 #endif A. -- 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] [PATCH] ASoC: ams-delta: fix card initalization failure
On Tue, 28 Aug 2012 11:13:39 Mark Brown wrote: On Tue, Aug 28, 2012 at 05:13:05PM +0200, Janusz Krzysztofik wrote: On Mon, 27 Aug 2012 14:38:35 Mark Brown wrote: On Mon, Aug 27, 2012 at 11:28:30PM +0200, Janusz Krzysztofik wrote: - platform_set_drvdata(ams_delta_audio_platform_device, - ams_delta_audio_card); The real fix here is that you should be using platform data here, not driver data. Is there some reason not to do that? Do you think the change you propose is suitable for the rc cycle? I'm trying to fix a regression in the first place. Converting the ams- delta asoc to a platform driver is on my todo list and I'm going to take care of this as soon as I have enough spare time. The above looks like you already have a platform driver? All I'm suggesting is changing the above to use platform rather than driver data. The ams-delta asoc driver doesn't use snd_soc_register_card() so far, but relays solely on soc_probe() doing this for it, which in turn expects to find a snc_soc_card structure in drvdata. How is it supposed to find that structure if I pass it over platform data instead? Am I missing something? Thanks, Janusz -- 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