Re: [PATCH v2 04/15] dmaengine: Pass no_wakeup parameter via device_prep_dma_cyclic() callback

2012-09-17 Thread Shawn Guo
On Thu, Sep 13, 2012 at 04:37:54PM +0300, Peter Ujfalusi wrote:
 Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
 can receive the no_wakeup request coming from client drivers.
 This feature can be used during audio operation to disable all audio
 related interrupts.
 
 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Nicolas Ferre nicolas.fe...@atmel.com
 CC: Barry Song baohua.s...@csr.com
 CC: Srinidhi Kasagar srinidhi.kasa...@stericsson.com
 CC: Russell King - ARM Linux li...@arm.linux.org.uk
 CC: Vista Silicon javier.mar...@vista-silicon.com
 CC: Zhangfei Gao zhangfei@marvell.com
 CC: Shawn Guo shawn@linaro.org
 CC: Laxman Dewangan ldewan...@nvidia.com
 ---
  drivers/dma/at_hdmac.c| 3 ++-
  drivers/dma/ep93xx_dma.c  | 4 +++-
  drivers/dma/imx-dma.c | 2 +-
  drivers/dma/imx-sdma.c| 2 +-
  drivers/dma/mmp_tdma.c| 2 +-
  drivers/dma/mxs-dma.c | 2 +-
  drivers/dma/omap-dma.c| 3 ++-
  drivers/dma/pl330.c   | 2 +-
  drivers/dma/sa11x0-dma.c  | 2 +-
  drivers/dma/sirf-dma.c| 2 +-
  drivers/dma/ste_dma40.c   | 3 ++-
  drivers/dma/tegra20-apb-dma.c | 2 +-
  include/linux/dmaengine.h | 5 +++--
  13 files changed, 20 insertions(+), 14 deletions(-)
 
API changes without updating users?

Regards,
Shawn
--
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 04/15] dmaengine: Pass no_wakeup parameter via device_prep_dma_cyclic() callback

2012-09-17 Thread Peter Ujfalusi
On 09/17/2012 09:34 AM, Shawn Guo wrote:
 On Thu, Sep 13, 2012 at 04:37:54PM +0300, Peter Ujfalusi wrote:
 Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
 can receive the no_wakeup request coming from client drivers.
 This feature can be used during audio operation to disable all audio
 related interrupts.

 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Nicolas Ferre nicolas.fe...@atmel.com
 CC: Barry Song baohua.s...@csr.com
 CC: Srinidhi Kasagar srinidhi.kasa...@stericsson.com
 CC: Russell King - ARM Linux li...@arm.linux.org.uk
 CC: Vista Silicon javier.mar...@vista-silicon.com
 CC: Zhangfei Gao zhangfei@marvell.com
 CC: Shawn Guo shawn@linaro.org
 CC: Laxman Dewangan ldewan...@nvidia.com
 ---
  drivers/dma/at_hdmac.c| 3 ++-
  drivers/dma/ep93xx_dma.c  | 4 +++-
  drivers/dma/imx-dma.c | 2 +-
  drivers/dma/imx-sdma.c| 2 +-
  drivers/dma/mmp_tdma.c| 2 +-
  drivers/dma/mxs-dma.c | 2 +-
  drivers/dma/omap-dma.c| 3 ++-
  drivers/dma/pl330.c   | 2 +-
  drivers/dma/sa11x0-dma.c  | 2 +-
  drivers/dma/sirf-dma.c| 2 +-
  drivers/dma/ste_dma40.c   | 3 ++-
  drivers/dma/tegra20-apb-dma.c | 2 +-
  include/linux/dmaengine.h | 5 +++--
  13 files changed, 20 insertions(+), 14 deletions(-)

 API changes without updating users?

All users of this callback is updated with this patch.
The public API (dmaengine_prep_dma_cyclic) is only used by ASoC, which has
been updated by the previous patch.
Note: this part has been updated for v3.

-- 
Péter
--
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 04/15] dmaengine: Pass no_wakeup parameter via device_prep_dma_cyclic() callback

2012-09-17 Thread Shawn Guo
On Mon, Sep 17, 2012 at 10:16:53AM +0300, Peter Ujfalusi wrote:
 All users of this callback is updated with this patch.
 The public API (dmaengine_prep_dma_cyclic) is only used by ASoC, which has
 been updated by the previous patch.
 
Ah, ok.  You actually changed dmaengine_prep_dma_cyclic signature before
this patch.  Sorry, I overlooked that.

-- 
Regards,
Shawn
--
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 4/4] ARM: dts: AM33XX: Add lis331dlh device tree data to am335x-evm

2012-09-17 Thread AnilKumar Ch
Add lis331dlh device tree data to am335x-evm.dts. In AM335x EVM
lis331dlh accelerometer is connected to I2C2 bus. So this patch
change the status of I2C2 node to okay to use I2C2 bus. Also
added all the required platform data to am335x-evm.

Signed-off-by: AnilKumar Ch anilku...@ti.com
---
 arch/arm/boot/dts/am335x-evm.dts |   39 ++
 1 file changed, 39 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 9fb59c5..be309df 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -47,6 +47,39 @@
};
};
 
+   i2c2: i2c@4802a000 {
+   status = okay;
+   clock-frequency = 40;
+
+   lis331dlh: lis331dlh@18 {
+   compatible = st,lis331dlh, st,lis3lv02d;
+   reg = 0x18;
+   Vdd-supply = lis3_reg;
+   Vdd_IO-supply = lis3_reg;
+
+   st,click-single-x;
+   st,click-single-y;
+   st,click-single-z;
+   st,click-thresh-x = 10;
+   st,click-thresh-y = 10;
+   st,click-thresh-z = 10;
+   st,irq1-click;
+   st,irq2-click;
+   st,wakeup-x-lo;
+   st,wakeup-x-hi;
+   st,wakeup-y-lo;
+   st,wakeup-y-hi;
+   st,wakeup-z-lo;
+   st,wakeup-z-hi;
+   st,min-limit-x = 120;
+   st,min-limit-y = 120;
+   st,min-limit-z = 140;
+   st,max-limit-x = 550;
+   st,max-limit-y = 550;
+   st,max-limit-z = 750;
+   };
+   };
+
dcan1: d_can@481d {
status = okay;
pinctrl-names = default;
@@ -61,6 +94,12 @@
regulator-max-microvolt = 500;
regulator-boot-on;
};
+
+   lis3_reg: fixedregulator@1 {
+   compatible = regulator-fixed;
+   regulator-name = lis3_reg;
+   regulator-boot-on;
+   };
 };
 
 /include/ tps65910.dtsi
-- 
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 v3 0/4] lis3: lis3lv02d_i2c: Add device tree support

2012-09-17 Thread AnilKumar Ch
Adds device tree support to lis3lv02d_i2c driver. Along with this
DT init is moved from core driver to individual drivers, with the
current implementation some pdata is missing in lis3lv02d_i2c driver.

Also adds platform data for lis331dlh driver to am335x-EVM. These
patches were tested on AM335x-EVM.

Changes from v2:
- Added documentation details specific to lis3lv02d_i2c
  driver with example node
- Modified DTS node representation in .dts file
- Removed -i2c string from compatible name

Changes from v1:
- Moved lis3lv02d_init_dt to individual drivers with
  some code clean-up.
- Added lis331dlh compatible entry for lis331dlh parts

AnilKumar Ch (4):
  lis3: lis3lv02d: remove lis3lv02d driver DT init
  lis3: lis3lv02d_spi: Add lis3lv02d device tree init
  lis3: lis3lv02d_i2c: Add lis3lv02d device tree init
  ARM: dts: AM33XX: Add lis331dlh device tree data to am335x-evm

 Documentation/devicetree/bindings/misc/lis302.txt |   36 +++
 arch/arm/boot/dts/am335x-evm.dts  |   39 +
 drivers/misc/lis3lv02d/lis3lv02d.c|8 ++---
 drivers/misc/lis3lv02d/lis3lv02d.h|1 +
 drivers/misc/lis3lv02d/lis3lv02d_i2c.c|   18 ++
 drivers/misc/lis3lv02d/lis3lv02d_spi.c|8 +++--
 6 files changed, 101 insertions(+), 9 deletions(-)

-- 
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 v3 2/4] lis3: lis3lv02d_spi: Add lis3lv02d device tree init

2012-09-17 Thread AnilKumar Ch
Add lis3lv02d device tree initialization code/API to take pdata
from device node. Also remove CONFIG_OF ifdef from the driver,
if CONFIG_OF is not defined then OF APIs returns 0.

Signed-off-by: AnilKumar Ch anilku...@ti.com
---
 drivers/misc/lis3lv02d/lis3lv02d_spi.c |8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/lis3lv02d/lis3lv02d_spi.c 
b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
index 23f3986..e1db6f4 100644
--- a/drivers/misc/lis3lv02d/lis3lv02d_spi.c
+++ b/drivers/misc/lis3lv02d/lis3lv02d_spi.c
@@ -84,10 +84,12 @@ static int __devinit lis302dl_spi_probe(struct spi_device 
*spi)
lis3_dev.ac = lis3lv02d_axis_normal;
lis3_dev.pdata  = spi-dev.platform_data;
 
-#ifdef CONFIG_OF
-   if (of_match_device(lis302dl_spi_dt_ids, spi-dev))
+   if (of_match_device(lis302dl_spi_dt_ids, spi-dev)) {
lis3_dev.of_node = spi-dev.of_node;
-#endif
+   ret = lis3lv02d_init_dt(lis3_dev);
+   if (ret)
+   return ret;
+   }
 
spi_set_drvdata(spi, lis3_dev);
 
-- 
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 v3 3/4] lis3: lis3lv02d_i2c: Add lis3lv02d device tree init

2012-09-17 Thread AnilKumar Ch
Add lis3lv02d device tree initialization code/API to take pdata
from device node. Also adds device tree init matching table
support to lis3lv02d_i2c driver. If the driver data is passed
from device tree, then this driver picks up platform data
from device node through common/generic lis3lv02d.c driver.

Signed-off-by: AnilKumar Ch anilku...@ti.com
---
 Documentation/devicetree/bindings/misc/lis302.txt |   36 +
 drivers/misc/lis3lv02d/lis3lv02d_i2c.c|   18 +++
 2 files changed, 54 insertions(+)

diff --git a/Documentation/devicetree/bindings/misc/lis302.txt 
b/Documentation/devicetree/bindings/misc/lis302.txt
index e18af9d..6def86f 100644
--- a/Documentation/devicetree/bindings/misc/lis302.txt
+++ b/Documentation/devicetree/bindings/misc/lis302.txt
@@ -11,6 +11,12 @@ Required properties for the SPI bindings:
constrained by external circuitry
  - interrupts: the interrupt generated by the device
 
+Required properties for the I2C bindings:
+ - compatible: should be set to st,lis3lv02d
+ - reg:i2c slave address
+ - Vdd-supply: The input supply for Vdd
+ - Vdd_IO-supply:  The input supply for Vdd_IO
+
 
 Optional properties for all bus drivers:
 
@@ -74,3 +80,33 @@ Example for a SPI device node:
st,wakeup-z-hi;
};
 
+Example for a I2C device node:
+
+   lis331dlh: lis331dlh@18 {
+   compatible = st,lis331dlh, st,lis3lv02d;
+   reg = 0x18;
+   Vdd-supply = lis3_reg;
+   Vdd_IO-supply = lis3_reg;
+
+   st,click-single-x;
+   st,click-single-y;
+   st,click-single-z;
+   st,click-thresh-x = 10;
+   st,click-thresh-y = 10;
+   st,click-thresh-z = 10;
+   st,irq1-click;
+   st,irq2-click;
+   st,wakeup-x-lo;
+   st,wakeup-x-hi;
+   st,wakeup-y-lo;
+   st,wakeup-y-hi;
+   st,wakeup-z-lo;
+   st,wakeup-z-hi;
+   st,min-limit-x = 120;
+   st,min-limit-y = 120;
+   st,min-limit-z = 140;
+   st,max-limit-x = 550;
+   st,max-limit-y = 550;
+   st,max-limit-z = 750;
+   };
+
diff --git a/drivers/misc/lis3lv02d/lis3lv02d_i2c.c 
b/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
index 15255eb..43e3f29 100644
--- a/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
+++ b/drivers/misc/lis3lv02d/lis3lv02d_i2c.c
@@ -31,6 +31,9 @@
 #include linux/i2c.h
 #include linux/pm_runtime.h
 #include linux/delay.h
+#include linux/of.h
+#include linux/of_platform.h
+
 #include lis3lv02d.h
 
 #define DRV_NAME   lis3lv02d_i2c
@@ -102,12 +105,26 @@ static int lis3_i2c_init(struct lis3lv02d *lis3)
 static union axis_conversion lis3lv02d_axis_map =
{ .as_array = { LIS3_DEV_X, LIS3_DEV_Y, LIS3_DEV_Z } };
 
+static struct of_device_id lis3lv02d_i2c_dt_ids[] = {
+   { .compatible = st,lis3lv02d },
+   {}
+};
+MODULE_DEVICE_TABLE(of, lis3lv02d_i2c_dt_ids);
+
 static int __devinit lis3lv02d_i2c_probe(struct i2c_client *client,
const struct i2c_device_id *id)
 {
int ret = 0;
struct lis3lv02d_platform_data *pdata = client-dev.platform_data;
 
+   if (of_match_device(lis3lv02d_i2c_dt_ids, client-dev)) {
+   lis3_dev.of_node = client-dev.of_node;
+   ret = lis3lv02d_init_dt(lis3_dev);
+   if (ret)
+   return ret;
+   pdata = lis3_dev.pdata;
+   }
+
if (pdata) {
if ((pdata-driver_features  LIS3_USE_BLOCK_READ) 
(i2c_check_functionality(client-adapter,
@@ -255,6 +272,7 @@ static struct i2c_driver lis3lv02d_i2c_driver = {
.name   = DRV_NAME,
.owner  = THIS_MODULE,
.pm = lis3_pm_ops,
+   .of_match_table = of_match_ptr(lis3lv02d_i2c_dt_ids),
},
.probe  = lis3lv02d_i2c_probe,
.remove = __devexit_p(lis3lv02d_i2c_remove),
-- 
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 v3 1/4] lis3: lis3lv02d: remove lis3lv02d driver DT init

2012-09-17 Thread AnilKumar Ch
Remove lis3lv02d driver device tree initialization from core driver
and move it to individual drivers. With the current implementation
some pdata parameters are missing if we use lis3lv02d_init_device()
in lis3lv02d_i2c driver.

Signed-off-by: AnilKumar Ch anilku...@ti.com
---
 drivers/misc/lis3lv02d/lis3lv02d.c |8 ++--
 drivers/misc/lis3lv02d/lis3lv02d.h |1 +
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c 
b/drivers/misc/lis3lv02d/lis3lv02d.c
index 79349ec..026021e 100644
--- a/drivers/misc/lis3lv02d/lis3lv02d.c
+++ b/drivers/misc/lis3lv02d/lis3lv02d.c
@@ -944,7 +944,7 @@ static void lis3lv02d_8b_configure(struct lis3lv02d *lis3,
 }
 
 #ifdef CONFIG_OF
-static int lis3lv02d_init_dt(struct lis3lv02d *lis3)
+int lis3lv02d_init_dt(struct lis3lv02d *lis3)
 {
struct lis3lv02d_platform_data *pdata;
struct device_node *np = lis3-of_node;
@@ -1084,7 +1084,7 @@ static int lis3lv02d_init_dt(struct lis3lv02d *lis3)
 }
 
 #else
-static int lis3lv02d_init_dt(struct lis3lv02d *lis3)
+int lis3lv02d_init_dt(struct lis3lv02d *lis3)
 {
return 0;
 }
@@ -1100,10 +1100,6 @@ int lis3lv02d_init_device(struct lis3lv02d *lis3)
irq_handler_t thread_fn;
int irq_flags = 0;
 
-   err = lis3lv02d_init_dt(lis3);
-   if (err  0)
-   return err;
-
lis3-whoami = lis3lv02d_read_8(lis3, WHO_AM_I);
 
switch (lis3-whoami) {
diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h 
b/drivers/misc/lis3lv02d/lis3lv02d.h
index 4cf0779..b5505fa 100644
--- a/drivers/misc/lis3lv02d/lis3lv02d.h
+++ b/drivers/misc/lis3lv02d/lis3lv02d.h
@@ -326,5 +326,6 @@ void lis3lv02d_joystick_disable(struct lis3lv02d *lis3);
 void lis3lv02d_poweroff(struct lis3lv02d *lis3);
 int lis3lv02d_poweron(struct lis3lv02d *lis3);
 int lis3lv02d_remove_fs(struct lis3lv02d *lis3);
+int lis3lv02d_init_dt(struct lis3lv02d *lis3);
 
 extern struct lis3lv02d lis3_dev;
-- 
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 v9 3/3] ARM: OMAP2+: gpmc: minimal driver support

2012-09-17 Thread Mohammed, Afzal
Hi Paul,

On Wed, Sep 12, 2012 at 22:04:16, Paul Walmsley wrote:

 Two checkpatch warnings are added by this patch:

I did checkpatch earlier, but without --strict

 I've fixed them here in the obvious way.  But please make sure that all 
 your patches are clean with 'checkpatch.pl --strict'; saves us time and 
 frustration...

I am sorry for that, in future --strict will be part of my process

Perhaps it would be better to patch Documentation with a mention
of --strict for checkpatch

And seeing an unpleasant behavior with --strict, running
checkpatch over cached changes (for pre-commit hook) is
not making effect of --strict felt

Regards
Afzal
N�r��yb�X��ǧv�^�)޺{.n�+{��f��{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�mzZ+�ݢj��!�i

RE: [PATCH v9 1/3] ARM: OMAP2/3: hwmod data: add gpmc

2012-09-17 Thread Mohammed, Afzal
Hi Paul,

On Thu, Sep 13, 2012 at 03:45:27, Paul Walmsley wrote:

  +   HWMOD_INIT_NO_RESET |

 As I understand it, this is not due to any GPMC-related reset bugs, but 
 just because the kernel is relying on the bootloader GPMC timing data 
 being preserved.  Is that correct?

Yes, it is due to Kernel relying on bootloader gpmc settings

 Assuming it is, ideally we wouldn't merge such a patch, but I guess this 
 is somewhat complicated now with the DT transition.  So those should be 
 marked with comments so we know this is not a hardware bug... something 
 like the following.

Thanks

Regards
Afzal


[PATCH 2/4] drivers/mmc/host/omap.c: fix error return code

2012-09-17 Thread Peter Senna Tschudin
From: Peter Senna Tschudin peter.se...@gmail.com

Convert a nonnegative error return code to a negative one, as returned
elsewhere in the function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// smpl
(
if@p1 (\(ret  0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != ret
*if(...)
{
  ... when != ret = e2
  when forall
 return ret;
}
// /smpl

Signed-off-by: Peter Senna Tschudin peter.se...@gmail.com
---
 drivers/mmc/host/omap.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index 48ad361..d468f51 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -1369,8 +1369,10 @@ static int __devinit mmc_omap_probe(struct 
platform_device *pdev)
host-irq = irq;
host-phys_base = host-mem_res-start;
host-virt_base = ioremap(res-start, resource_size(res));
-   if (!host-virt_base)
+   if (!host-virt_base) {
+   ret = -ENOMEM;
goto err_ioremap;
+   }
 
host-iclk = clk_get(pdev-dev, ick);
if (IS_ERR(host-iclk)) {
@@ -1438,8 +1440,10 @@ static int __devinit mmc_omap_probe(struct 
platform_device *pdev)
host-reg_shift = (cpu_is_omap7xx() ? 1 : 2);
 
host-mmc_omap_wq = alloc_workqueue(mmc_omap, 0, 0);
-   if (!host-mmc_omap_wq)
+   if (!host-mmc_omap_wq) {
+   err = -ENOMEM;
goto err_plat_cleanup;
+   }
 
for (i = 0; i  pdata-nr_slots; i++) {
ret = mmc_omap_new_slot(host, i);
-- 
1.7.11.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 3/4] drivers/mmc/host/omap_hsmmc.c: fix error return code

2012-09-17 Thread Peter Senna Tschudin
From: Peter Senna Tschudin peter.se...@gmail.com

Convert a nonnegative error return code to a negative one, as returned
elsewhere in the function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// smpl
(
if@p1 (\(ret  0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != ret
*if(...)
{
  ... when != ret = e2
  when forall
 return ret;
}
// /smpl

Signed-off-by: Peter Senna Tschudin peter.se...@gmail.com
---
 drivers/mmc/host/omap_hsmmc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index e59ac62..c8a2b36 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1893,6 +1893,7 @@ static int __devinit omap_hsmmc_probe(struct 
platform_device *pdev)
if (pdata-init(pdev-dev) != 0) {
dev_dbg(mmc_dev(host-mmc),
Unable to configure MMC IRQs\n);
+   ret = -ENXIO;
goto err_irq_cd_init;
}
}
-- 
1.7.11.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 10/10] ARM: OMAP2+: tusb6010: generic timing calculation

2012-09-17 Thread Mohammed, Afzal
Hi Tony,

On Fri, Sep 14, 2012 at 15:50:02, Mohammed, Afzal wrote:
 * Mohammed, Afzal: Wednesday, September 12, 2012 3:20 PM

  But some of the tusb async values is less by one. I need
  to get it right.
 
 Reason has been identified. It was due to rounding error,
 no changes are required in the expressions. Moving
 completely to picoseconds resolves the issue.
 
 Can you please try with the attached patch ?

Can you please try with patch attached in previous message
of this thread and check whether it makes n800 gpmc
peripherals work properly

Changes as in above mentioned patch has been pasted below again.

Regards
Afzal

---8


diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index d8e5b08..e9d57db 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -289,11 +289,11 @@ static int set_gpmc_timing_reg(int cs, int reg, int 
st_bit, int end_bit,
if (time == 0)
ticks = 0;
else
-   ticks = gpmc_ns_to_ticks(time);
+   ticks = gpmc_ps_to_ticks(time);
nr_bits = end_bit - st_bit + 1;
if (ticks = 1  nr_bits) {
 #ifdef DEBUG
-   printk(KERN_INFO GPMC CS%d: %-10s* %3d ns, %3d ticks = %d\n,
+   pr_info(GPMC CS%d: %-10s* %3d ps, %3d ticks = %d\n,
cs, name, time, ticks, 1  nr_bits);
 #endif
return -1;
@@ -302,10 +302,9 @@ static int set_gpmc_timing_reg(int cs, int reg, int 
st_bit, int end_bit,
mask = (1  nr_bits) - 1;
l = gpmc_cs_read_reg(cs, reg);
 #ifdef DEBUG
-   printk(KERN_INFO
-   GPMC CS%d: %-10s: %3d ticks, %3lu ns (was %3i ticks) %3d ns\n,
-  cs, name, ticks, gpmc_get_fclk_period() * ticks / 1000,
-   (l  st_bit)  mask, time);
+   pr_info(GPMC CS%d: %-10s: %3d ticks, %3lu ps (was %3i ticks) %3d ps\n,
+   cs, name, ticks, gpmc_get_fclk_period() * ticks,
+   (l  st_bit)  mask, time);
 #endif
l = ~(mask  st_bit);
l |= ticks  st_bit;
@@ -385,8 +384,8 @@ int gpmc_cs_set_timings(int cs, const struct gpmc_timings 
*t)
l = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
if (l  (GPMC_CONFIG1_READTYPE_SYNC | GPMC_CONFIG1_WRITETYPE_SYNC)) {
 #ifdef DEBUG
-   printk(KERN_INFO GPMC CS%d CLK period is %lu ns (div %d)\n,
-   cs, (div * gpmc_get_fclk_period()) / 1000, div);
+   pr_info(GPMC CS%d CLK period is %lu ps (div %d)\n,
+   cs, div * gpmc_get_fclk_period(), div);
 #endif
l = ~0x03;
l |= (div - 1);
@@ -922,46 +921,42 @@ static int gpmc_calc_sync_read_timings(struct 
gpmc_timings *gpmc_t,
 * indirectly necessitates requirement of t_avdp_r  t_avdp_w
 * instead of having a single t_avdp
 */
-   temp = max_t(u32, temp, gpmc_t-clk_activation * 1000 +
-   dev_t-t_avdh);
-   temp = max_t(u32,
-   (gpmc_t-adv_on + gpmc_ticks_to_ns(1)) * 1000, temp);
+   temp = max_t(u32, temp, gpmc_t-clk_activation + dev_t-t_avdh);
+   temp = max_t(u32, gpmc_t-adv_on + gpmc_ticks_to_ps(1), temp);
}
-   gpmc_t-adv_rd_off = gpmc_round_ps_to_ticks(temp) / 1000;
+   gpmc_t-adv_rd_off = gpmc_round_ps_to_ticks(temp);
 
/* oe_on */
temp = dev_t-t_oeasu; /* remove this ? */
if (mux) {
-   temp = max_t(u32, temp,
-   gpmc_t-clk_activation * 1000 + dev_t-t_ach);
-   temp = max_t(u32, temp, (gpmc_t-adv_rd_off +
-   gpmc_ticks_to_ns(dev_t-cyc_aavdh_oe)) * 1000);
+   temp = max_t(u32, temp, gpmc_t-clk_activation + dev_t-t_ach);
+   temp = max_t(u32, temp, gpmc_t-adv_rd_off +
+   gpmc_ticks_to_ps(dev_t-cyc_aavdh_oe));
}
-   gpmc_t-oe_on = gpmc_round_ps_to_ticks(temp) / 1000;
+   gpmc_t-oe_on = gpmc_round_ps_to_ticks(temp);
 
/* access */
/* any scope for improvement ?, by combining oe_on  clk_activation,
 * need to check whether access = clk_activation + round to sync clk ?
 */
temp = max_t(u32, dev_t-t_iaa, dev_t-cyc_iaa * gpmc_t-sync_clk);
-   temp += gpmc_t-clk_activation * 1000;
+   temp += gpmc_t-clk_activation;
if (dev_t-cyc_oe)
-   temp = max_t(u32, temp, (gpmc_t-oe_on +
-   gpmc_ticks_to_ns(dev_t-cyc_oe)) * 1000);
-   gpmc_t-access = gpmc_round_ps_to_ticks(temp) / 1000;
+   temp = max_t(u32, temp, gpmc_t-oe_on +
+   gpmc_ticks_to_ps(dev_t-cyc_oe));
+   gpmc_t-access = gpmc_round_ps_to_ticks(temp);
 
-   gpmc_t-oe_off = gpmc_t-access + gpmc_ticks_to_ns(1);
+   gpmc_t-oe_off = gpmc_t-access + gpmc_ticks_to_ps(1);

Re: [PATCH v3 02/15] dmaengine: omap: Add support for pause/resume in cyclic dma mode

2012-09-17 Thread Peter Ujfalusi
Hi Vinod,

On 09/17/2012 06:13 AM, Vinod Koul wrote:
 On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 -   /* FIXME: not supported by platform private API */
 -   return -EINVAL;
 +   /* Pause/Resume only allowed with cyclic mode */
 +   if (!c-cyclic)
 +   return -EINVAL; 
 This is not a dma restriction right?

The pause/resume operation has been only used by audio. This might work with
non cyclic modes as well but it has never been used/tested so to be safe I
have added this restriction.

-- 
Péter
--
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 v3 00/15] ASoC: OMAP: Convert to use dmaengine

2012-09-17 Thread Peter Ujfalusi
Hi Vinod,

On 09/17/2012 06:17 AM, Vinod Koul wrote:
 On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 Hello,
 
 dmaengine parts look good to me. How do you want to get this merged,
 dmaengine or ASoC tree?

Thank you, I would prefer it to go via ASoC if it is not a problem. It is
possible to separate the dmaengine core related patches and the patches for
the OMAP drivers but I think it is better to keep them together so we can have
them in a same tree for testing it further.

Regards,
Péter
--
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 04/15] dmaengine: Pass no_wakeup parameter via device_prep_dma_cyclic() callback

2012-09-17 Thread Linus Walleij
On Thu, Sep 13, 2012 at 3:37 PM, Peter Ujfalusi peter.ujfal...@ti.com wrote:

 Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
 can receive the no_wakeup request coming from client drivers.
 This feature can be used during audio operation to disable all audio
 related interrupts.

 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Nicolas Ferre nicolas.fe...@atmel.com
 CC: Barry Song baohua.s...@csr.com
 CC: Srinidhi Kasagar srinidhi.kasa...@stericsson.com
 CC: Russell King - ARM Linux li...@arm.linux.org.uk
 CC: Vista Silicon javier.mar...@vista-silicon.com
 CC: Zhangfei Gao zhangfei@marvell.com
 CC: Shawn Guo shawn@linaro.org
 CC: Laxman Dewangan ldewan...@nvidia.com

After some discussion with clever people I know I have come to the conclusion
that this is a good idea, so:
Acked-by: Linus Walleij linus.wall...@linaro.org

Yours,
Linus Walleij
--
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] drivers: phy: add generic PHY framework

2012-09-17 Thread Marc Kleine-Budde
On 09/14/2012 03:06 PM, ABRAHAM, KISHON VIJAY wrote:

[...]

 diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
 new file mode 100644
 index 000..c55446a
 --- /dev/null
 +++ b/drivers/phy/phy-core.c
 @@ -0,0 +1,437 @@
 +/*
 + * phy-core.c  --  Generic Phy framework.
 + *
 + * Copyright (C) 2012 Texas Instruments
 + *
 + * Author: Kishon Vijay Abraham I kis...@ti.com
 + *
 + * This program is free software; you can redistribute  it and/or modify it
 + * under  the terms of  the GNU General  Public License as published by the
 + * Free Software Foundation;  either version 2 of the  License, or (at your
 + * option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program.  If not, see http://www.gnu.org/licenses/.
 + */
 +
 +#include linux/kernel.h
 +#include linux/export.h
 +#include linux/module.h
 +#include linux/err.h
 +#include linux/device.h
 +#include linux/slab.h
 +#include linux/of.h
 +#include linux/phy/phy.h
 +
 +static struct class *phy_class;
 +static LIST_HEAD(phy_list);
 +static DEFINE_MUTEX(phy_list_mutex);
 +static LIST_HEAD(phy_bind_list);
 +
 +static void devm_phy_release(struct device *dev, void *res)
 +{
 + struct phy *phy = *(struct phy **)res;

 What about adding a struct phy_res, doing so,m you don't need these
 casts, and it's easier to add more pointers if needed.
 
 Wont we still need to do the cast since you get only a void pointer.
 Maybe I'm not getting you.

As res is a void pointer, no need to hast to to a struct phy_res
pointer, if you think that's unclean code, you can still cast it. But
IMHO the code is far more readable.

 +
 + phy_put(phy);
 +}
 +
 +static int devm_phy_match(struct device *dev, void *res, void *match_data)
 +{
 + return res == match_data;
 +}
 +
 +static struct phy *phy_lookup(struct device *dev, u8 index)
 +{
 + struct phy_bind *phy_bind = NULL;
 +
 + list_for_each_entry(phy_bind, phy_bind_list, list) {
 + if (!(strcmp(phy_bind-dev_name, dev_name(dev))) 
 + phy_bind-index == index)
 + return phy_bind-phy;
 + }
 +
 + return ERR_PTR(-ENODEV);
 +}
 +
 +static struct phy *of_phy_lookup(struct device *dev, struct device_node 
 *node)
 +{
 + int index = 0;
 + struct phy  *phy;
   ^^

 Please remove that stray space.
 
 Sure.

 + struct phy_bind *phy_map = NULL;
 +
 + list_for_each_entry(phy_map, phy_bind_list, list)
 + if (!(strcmp(phy_map-dev_name, dev_name(dev
 + index++;
 +
 + list_for_each_entry(phy, phy_list, head) {
 + if (node != phy-desc-of_node)
 + continue;
 +
 + phy_map = phy_bind(dev_name(dev), index, dev_name(phy-dev));
 + if (!IS_ERR(phy_map)) {
 + phy_map-phy = phy;
 + phy_map-auto_bind = true;
 + }
 +
 + return phy;
 + }
 +
 + return ERR_PTR(-ENODEV);
 +}
 +
 +/**
 + * devm_phy_get - lookup and obtain a reference to a phy.
 + * @dev: device that requests this phy
 + * @index: the index of the phy
 + *
 + * Gets the phy using phy_get(), and associates a device with it using
 + * devres. On driver detach, release function is invoked on the devres 
 data,
 + * then, devres data is freed.
 + */
 +struct phy *devm_phy_get(struct device *dev, u8 index)
 +{
 + struct phy **ptr, *phy;
 +
 + ptr = devres_alloc(devm_phy_release, sizeof(*ptr), GFP_KERNEL);
 + if (!ptr)
 + return NULL;
 +
 + phy = phy_get(dev, index);
 + if (!IS_ERR(phy)) {
 + *ptr = phy;
 + devres_add(dev, ptr);
 + } else
 + devres_free(ptr);

 nitpick: when when if has { }, else should have, too.
 
 Sure.

 +
 + return phy;
 +}
 +EXPORT_SYMBOL_GPL(devm_phy_get);
 +
 +/**
 + * devm_phy_put - release the PHY
 + * @dev: device that wants to release this phy
 + * @phy: the phy returned by devm_phy_get()
 + *
 + * destroys the devres associated with this phy and invokes phy_put
 + * to release the phy.
 + */
 +void devm_phy_put(struct device *dev, struct phy *phy)
 +{
 + int r;
 +
 + r = devres_destroy(dev, devm_phy_release, devm_phy_match, phy);
 + dev_WARN_ONCE(dev, r, couldn't find PHY resource\n);
 +}
 +EXPORT_SYMBOL_GPL(devm_phy_put);
 +
 +/**
 + * devm_of_phy_get - lookup and obtain a reference to a phy by phandle
 + * @dev: device that requests this phy
 + * @phandle: name of the property holding the phy phandle value
 + *
 + * Returns the phy driver associated with the given phandle value,
 + * after getting a refcount to it or -ENODEV if there is no such phy.
 + * While at that, 

Re: [alsa-devel] [PATCH v3 00/15] ASoC: OMAP: Convert to use dmaengine

2012-09-17 Thread Vinod Koul
On Mon, 2012-09-17 at 11:44 +0300, Peter Ujfalusi wrote:
 Hi Vinod,
 
 On 09/17/2012 06:17 AM, Vinod Koul wrote:
  On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
  Hello,
  
  dmaengine parts look good to me. How do you want to get this merged,
  dmaengine or ASoC tree?
 
 Thank you, I would prefer it to go via ASoC if it is not a problem. It is
 possible to separate the dmaengine core related patches and the patches for
 the OMAP drivers but I think it is better to keep them together so we can have
 them in a same tree for testing it further.
Sure I think this is better way to do.

-- 
~Vinod

--
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 02/15] dmaengine: omap: Add support for pause/resume in cyclic dma mode

2012-09-17 Thread Vinod Koul
On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 The audio stack used omap_stop_dma/omap_start_dma to pause/resume the
 DMA.
 This method has been used for years on OMAP based products.
 We only allow pause/resume when the DMA has been configured in cyclic
 mode
 which is used by the audio stack.
 
 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Russell King rmk+ker...@arm.linux.org.uk
 --- 
Acked-by: Vinod Koul vinod.k...@linux.intel.com

-- 
~Vinod

--
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 03/15] dmaengine: Add flags parameter to dmaengine_prep_dma_cyclic()

2012-09-17 Thread Vinod Koul
On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 With this parameter added to dmaengine_prep_dma_cyclic() the API will
 be in
 sync with other dmaengine_prep_*() functions.
 The dmaengine_prep_dma_cyclic() function primarily used by audio for
 cyclic
 transfer required by ALSA, we use the from audio to ask dma drivers to
 suppress interrupts (if DMA_PREP_INTERRUPT is cleared) when it is
 supported
 on the platform.
 
 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Lars-Peter Clausen l...@metafoo.de
 --- 
Acked-by: Vinod Koul vinod.k...@linux.intel.com


-- 
~Vinod

--
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 04/15] dmaengine: Pass flags via device_prep_dma_cyclic() callback

2012-09-17 Thread Vinod Koul
On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 Change the parameter list of device_prep_dma_cyclic() so the DMA
 drivers
 can receive the flags coming from clients.
 This feature can be used during audio operation to disable all audio
 related interrupts when the DMA_PREP_INTERRUPT is cleared from the
 flags.
Acked-by: Vinod Koul vinod.k...@linux.intel.com

-- 
~Vinod

--
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 05/15] dmaengine: omap-dma: Add support to suppress interrupts in cyclic mode

2012-09-17 Thread Vinod Koul
On Fri, 2012-09-14 at 15:05 +0300, Peter Ujfalusi wrote:
 When requested (DMA_PREP_INTERRUPT is cleared in flags) disable all
 DMA
 interrupts for the channel. In this mode user space does not expect
 periodic reports from kernel about the progress of the audio stream.
 PulseAudio for example support this type of mode.
Acked-by: Vinod Koul vinod.k...@linux.intel.com

-- 
~Vinod

--
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 04/15] dmaengine: Pass flags via device_prep_dma_cyclic() callback

2012-09-17 Thread Nicolas Ferre
On 09/14/2012 02:05 PM, Peter Ujfalusi :
 Change the parameter list of device_prep_dma_cyclic() so the DMA drivers
 can receive the flags coming from clients.
 This feature can be used during audio operation to disable all audio
 related interrupts when the DMA_PREP_INTERRUPT is cleared from the flags.
 
 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com
 CC: Nicolas Ferre nicolas.fe...@atmel.com
 CC: Barry Song baohua.s...@csr.com
 CC: Srinidhi Kasagar srinidhi.kasa...@stericsson.com
 CC: Russell King - ARM Linux li...@arm.linux.org.uk
 CC: Vista Silicon javier.mar...@vista-silicon.com
 CC: Zhangfei Gao zhangfei@marvell.com
 CC: Shawn Guo shawn@linaro.org
 CC: Laxman Dewangan ldewan...@nvidia.com
 ---
  drivers/dma/at_hdmac.c| 3 ++-

For Atmel's driver:

Acked-by: Nicolas Ferre nicolas.fe...@atmel.com

  drivers/dma/ep93xx_dma.c  | 4 +++-
  drivers/dma/imx-dma.c | 2 +-
  drivers/dma/imx-sdma.c| 2 +-
  drivers/dma/mmp_tdma.c| 2 +-
  drivers/dma/mxs-dma.c | 2 +-
  drivers/dma/omap-dma.c| 3 ++-
  drivers/dma/pl330.c   | 2 +-
  drivers/dma/sa11x0-dma.c  | 2 +-
  drivers/dma/sirf-dma.c| 2 +-
  drivers/dma/ste_dma40.c   | 3 ++-
  drivers/dma/tegra20-apb-dma.c | 2 +-
  include/linux/dmaengine.h | 4 ++--
  13 files changed, 19 insertions(+), 14 deletions(-)
 
 diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
 index 3934fcc..7e5f6b6 100644
 --- a/drivers/dma/at_hdmac.c
 +++ b/drivers/dma/at_hdmac.c
 @@ -841,12 +841,13 @@ atc_dma_cyclic_fill_desc(struct dma_chan *chan, struct 
 at_desc *desc,
   * @buf_len: total number of bytes for the entire buffer
   * @period_len: number of bytes for each period
   * @direction: transfer direction, to or from device
 + * @flags: tx descriptor status flags
   * @context: transfer context (ignored)
   */
  static struct dma_async_tx_descriptor *
  atc_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, size_t 
 buf_len,
   size_t period_len, enum dma_transfer_direction direction,
 - void *context)
 + unsigned long flags, void *context)
  {
   struct at_dma_chan  *atchan = to_at_dma_chan(chan);
   struct at_dma_slave *atslave = chan-private;
 diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c
 index c64917e..493735b 100644
 --- a/drivers/dma/ep93xx_dma.c
 +++ b/drivers/dma/ep93xx_dma.c
 @@ -1120,6 +1120,7 @@ fail:
   * @buf_len: length of the buffer (in bytes)
   * @period_len: lenght of a single period
   * @dir: direction of the operation
 + * @flags: tx descriptor status flags
   * @context: operation context (ignored)
   *
   * Prepares a descriptor for cyclic DMA operation. This means that once the
 @@ -1133,7 +1134,8 @@ fail:
  static struct dma_async_tx_descriptor *
  ep93xx_dma_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t dma_addr,
  size_t buf_len, size_t period_len,
 -enum dma_transfer_direction dir, void *context)
 +enum dma_transfer_direction dir, unsigned long flags,
 +void *context)
  {
   struct ep93xx_dma_chan *edmac = to_ep93xx_dma_chan(chan);
   struct ep93xx_dma_desc *desc, *first;
 diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c
 index 5084975..41b4376 100644
 --- a/drivers/dma/imx-dma.c
 +++ b/drivers/dma/imx-dma.c
 @@ -801,7 +801,7 @@ static struct dma_async_tx_descriptor 
 *imxdma_prep_slave_sg(
  static struct dma_async_tx_descriptor *imxdma_prep_dma_cyclic(
   struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
   size_t period_len, enum dma_transfer_direction direction,
 - void *context)
 + unsigned long flags, void *context)
  {
   struct imxdma_channel *imxdmac = to_imxdma_chan(chan);
   struct imxdma_engine *imxdma = imxdmac-imxdma;
 diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
 index 1dc2a4a..2c5fd3e 100644
 --- a/drivers/dma/imx-sdma.c
 +++ b/drivers/dma/imx-sdma.c
 @@ -1012,7 +1012,7 @@ err_out:
  static struct dma_async_tx_descriptor *sdma_prep_dma_cyclic(
   struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
   size_t period_len, enum dma_transfer_direction direction,
 - void *context)
 + unsigned long flags, void *context)
  {
   struct sdma_channel *sdmac = to_sdma_chan(chan);
   struct sdma_engine *sdma = sdmac-sdma;
 diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c
 index 8a15cf2..6d52bd4 100644
 --- a/drivers/dma/mmp_tdma.c
 +++ b/drivers/dma/mmp_tdma.c
 @@ -358,7 +358,7 @@ struct mmp_tdma_desc *mmp_tdma_alloc_descriptor(struct 
 mmp_tdma_chan *tdmac)
  static struct dma_async_tx_descriptor *mmp_tdma_prep_dma_cyclic(
   struct dma_chan *chan, dma_addr_t dma_addr, size_t buf_len,
   size_t period_len, enum dma_transfer_direction direction,
 - void *context)
 +

Re: [PATCH] mtd: nand: omap2: Fix the nand-disk led trigger

2012-09-17 Thread Grazvydas Ignotas
On Thu, Sep 13, 2012 at 6:06 PM, Raphael Assenat r...@8d.com wrote:
 When the omap2 nand flash driver is used, the nand-disk led trigger does not
 work due to nand_wait_ready not being called.

I think better solution is just to delete omap_wait() function, which
is just a copy of nand_wait() without LED and oops handling. If
waitfunc is not set by the driver, default nand_wait is used by the
core.


 This patch exports the trigger from nand_base.c, letting specific drivers
 such omap2 control the led as appropriate.

 Signed-off-by: Raphael Assenat r...@8d.com

 diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
 index a11253a..b967c45 100644
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
 @@ -103,7 +103,7 @@ static int nand_do_write_oob(struct mtd_info *mtd, loff_t 
 to,
   * For devices which display every fart in the system on a separate LED. Is
   * compiled away when LED support is disabled.
   */
 -DEFINE_LED_TRIGGER(nand_led_trigger);
 +DEFINE_LED_TRIGGER_GLOBAL(nand_led_trigger);

  static int check_offs_len(struct mtd_info *mtd,
 loff_t ofs, uint64_t len)
 diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
 index ac4fd75..6aa683f 100644
 --- a/drivers/mtd/nand/omap2.c
 +++ b/drivers/mtd/nand/omap2.c
 @@ -19,6 +19,7 @@
  #include linux/mtd/mtd.h
  #include linux/mtd/nand.h
  #include linux/mtd/partitions.h
 +#include linux/leds.h
  #include linux/omap-dma.h
  #include linux/io.h
  #include linux/slab.h
 @@ -254,6 +255,8 @@ static void omap_read_buf_pref(struct mtd_info *mtd, 
 u_char *buf, int len)
 int ret = 0;
 u32 *p = (u32 *)buf;

 +   led_trigger_event(nand_led_trigger, LED_FULL);
 +
 /* take care of subpage reads */
 if (len % 4) {
 if (info-nand.options  NAND_BUSWIDTH_16)
 @@ -284,6 +287,8 @@ static void omap_read_buf_pref(struct mtd_info *mtd, 
 u_char *buf, int len)
 /* disable and stop the PFPW engine */
 gpmc_prefetch_reset(info-gpmc_cs);
 }
 +
 +   led_trigger_event(nand_led_trigger, LED_OFF);
  }

  /**
 @@ -302,6 +307,8 @@ static void omap_write_buf_pref(struct mtd_info *mtd,
 u16 *p = (u16 *)buf;
 unsigned long tim, limit;

 +   led_trigger_event(nand_led_trigger, LED_FULL);
 +
 /* take care of subpage writes */
 if (len % 2 != 0) {
 writeb(*buf, info-nand.IO_ADDR_W);
 @@ -335,6 +342,8 @@ static void omap_write_buf_pref(struct mtd_info *mtd,
 /* disable and stop the PFPW engine */
 gpmc_prefetch_reset(info-gpmc_cs);
 }
 +
 +   led_trigger_event(nand_led_trigger, LED_OFF);
  }

  /*
 @@ -366,6 +375,8 @@ static inline int omap_nand_dma_transfer(struct mtd_info 
 *mtd, void *addr,
 unsigned n;
 int ret;

 +   led_trigger_event(nand_led_trigger, LED_FULL);
 +
 if (addr = high_memory) {
 struct page *p1;

 @@ -417,6 +428,8 @@ static inline int omap_nand_dma_transfer(struct mtd_info 
 *mtd, void *addr,
 gpmc_prefetch_reset(info-gpmc_cs);

 dma_unmap_sg(info-dma-device-dev, sg, 1, dir);
 +
 +   led_trigger_event(nand_led_trigger, LED_OFF);
 return 0;

  out_copy_unmap:
 @@ -428,6 +441,9 @@ out_copy:
 else
 is_write == 0 ? omap_read_buf8(mtd, (u_char *) addr, len)
 : omap_write_buf8(mtd, (u_char *) addr, len);
 +
 +   led_trigger_event(nand_led_trigger, LED_OFF);
 +
 return 0;
  }

 @@ -886,6 +902,8 @@ static int omap_wait(struct mtd_info *mtd, struct 
 nand_chip *chip)
 else
 timeo += (HZ * 20) / 1000;

 +   led_trigger_event(nand_led_trigger, LED_FULL);
 +
 gpmc_nand_write(info-gpmc_cs,
 GPMC_NAND_COMMAND, (NAND_CMD_STATUS  0xFF));
 while (time_before(jiffies, timeo)) {
 @@ -894,6 +912,7 @@ static int omap_wait(struct mtd_info *mtd, struct 
 nand_chip *chip)
 break;
 cond_resched();
 }
 +   led_trigger_event(nand_led_trigger, LED_OFF);

 status = gpmc_nand_read(info-gpmc_cs, GPMC_NAND_DATA);
 return status;
 @@ -909,6 +928,8 @@ static int omap_dev_ready(struct mtd_info *mtd)
 struct omap_nand_info *info = container_of(mtd, struct omap_nand_info,
 mtd);

 +   led_trigger_event(nand_led_trigger, LED_FULL);
 +
 val = gpmc_read_status(GPMC_GET_IRQ_STATUS);
 if ((val  0x100) == 0x100) {
 /* Clear IRQ Interrupt */
 @@ -923,6 +944,8 @@ static int omap_dev_ready(struct mtd_info *mtd)
 val = gpmc_read_status(GPMC_GET_IRQ_STATUS);
 }
 }
 +
 +   led_trigger_event(nand_led_trigger, LED_OFF);

 return 1;
  }
 diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
 index 

Re: [PATCH v3 0/4] lis3: lis3lv02d_i2c: Add device tree support

2012-09-17 Thread Arnd Bergmann
On Monday 17 September 2012, AnilKumar Ch wrote:
 Adds device tree support to lis3lv02d_i2c driver. Along with this
 DT init is moved from core driver to individual drivers, with the
 current implementation some pdata is missing in lis3lv02d_i2c driver.
 
 Also adds platform data for lis331dlh driver to am335x-EVM. These
 patches were tested on AM335x-EVM.

Looks good to me.

Reviewed-by: Arnd Bergmann a...@arndb.de
--
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 2/2] dmaengine: add helper function to request a slave DMA channel

2012-09-17 Thread Arnd Bergmann
On Monday 17 September 2012, Vinod Koul wrote:
 On Fri, 2012-09-14 at 17:41 -0500, Jon Hunter wrote:
  +/**
  + * dma_request_slave_channel - try to allocate an exclusive slave
  channel
  + * @dev:   pointer to client device structure
  + * @name:  slave channel name
  + */
  +struct dma_chan *dma_request_slave_channel(struct device *dev, char *name)
  +{
  +   /* If device-tree is present get slave info from here */
  +   if (dev-of_node)
  +   return of_dma_request_slave_channel(dev-of_node, name);
  +
 Shouldn't this be conditionally compiled only when OF is built. I think
 this might be problematic for systems which doesn't have device tree.
 Or perhaps you can declare these symbols as dummy in of_dma.h when
 device tree is not selected.

Right, good point. I'd prefer the dummy functions, since that is in line
with what a lot of other subsystems do:

#ifdef CONFIG_OF
extern int of_dma_controller_register(struct device_node *np,
   struct dma_chan *(*of_dma_xlate)
   (struct of_phandle_args *, struct of_dma *),
   void *data);
extern void of_dma_controller_free(struct device_node *np);
extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
char *name);
extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
   struct of_dma *ofdma);
#else
static inline int of_dma_controller_register(struct device_node *np,
   struct dma_chan *(*of_dma_xlate)
   (struct of_phandle_args *, struct of_dma *),
   void *data)
{
return -ENODEV;
}
static inline void of_dma_controller_free(struct device_node *np)
{
}
static inline struct dma_chan *of_dma_request_slave_channel(struct device_node 
*np,
char *name)
{
return NULL;
}
static inline struct dma_chan *of_dma_simple_xlate(struct of_phandle_args 
*dma_spec,
   struct of_dma *ofdma)
{
return NULL;
}
#endif

I believe that Jon is on vacation this week, so if this is the only issue
holding up the merge, maybe you can change this in his patch directly, or
I can send an updated version if you prefer.

Arnd
--
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] drivers: phy: add generic PHY framework

2012-09-17 Thread Felipe Balbi
On Mon, Sep 17, 2012 at 11:19:53AM +0530, ABRAHAM, KISHON VIJAY wrote:
 Hi,
 
 On Mon, Sep 17, 2012 at 6:50 AM, Chen Peter-B29397 b29...@freescale.com 
 wrote:
 
 
  The PHY framework provides a set of API's for the PHY drivers to
  create/remove a PHY and the PHY users to obtain a reference to the PHY
  using or without using phandle. If the PHY users has to obtain a
  reference to
  the PHY without using phandle, the platform specfic intialization code
  (say
  from board file) should have already called phy_bind with the binding
  information. The binding information consists of phy's device name, phy
  user device name and an index. The index is used when the same phy user
  binds to mulitple phys.
 
 
  What's an example of the same phy user binds to multiple phys?
 
 Single controller using multiple phys..

to be more specific here: any usb3 controller needs a USB2 PHY and USB3
PHY.

-- 
balbi


signature.asc
Description: Digital signature


AW: [PATCH] ARM: Add config option DEBUG_DECOMPRESS_KERNEL

2012-09-17 Thread Maximilian Schwerin
 -Ursprüngliche Nachricht-
 Von: Domenico Andreoli 
 [mailto:domenico.andreoli...@gmail.com] Im Auftrag von 
 Domenico Andreoli
 Gesendet: Montag, 17. September 2012 15:17
 An: Maximilian Schwerin
 Cc: linux-arm-ker...@lists.infradead.org
 Betreff: Re: [PATCH] ARM: Add config option DEBUG_DECOMPRESS_KERNEL
 
 On Mon, Sep 17, 2012 at 03:08:44PM +0200, Maximilian Schwerin wrote:
  This change allows preventing the message Uncompressing 
 Linux... from
  being sent to serial port. This is necessary if the primary 
 serial port is
  used for something other than kernel debugging (e.g. some 
 external device
  controlled by serial commands).
 
 Disabling CONFIG_DEBUG_LL doesn't work?
 
 Regards,
 Domenico
 

No (never had that enabled), but that may be a bug or omission in the platform 
(omap3) code?!

Regards, m.


pgp5UD3aStIpy.pgp
Description: PGP signature


[PATCH] AM35xx: Add missing hwmod entry for the HDQ/1-Wire present in AM3505/3517 CPUs.

2012-09-17 Thread Raphael Assenat
This patch adds a missing hwmod entry for the HDQ/1-Wire module present 
in the AM3505/17 CPUs.

This restores 1-Wire support to our AM3505 boards. We think it probably
stopped working with commit 96b1b29d37b0ca3ecd424a1fe301406cf525fc04
ARM: OMAP2+: HDQ1W: use omap_device

Signed-off-by: Raphael Assenat r...@8d.com

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index ce7e606..59a0d81 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3405,6 +3405,7 @@ static struct omap_hwmod_ocp_if *am35xx_hwmod_ocp_ifs[] 
__initdata = {
omap3xxx_l4_core__usb_tll_hs,
omap3xxx_l4_core__es3plus_mmc1,
omap3xxx_l4_core__es3plus_mmc2,
+   omap3xxx_l4_core__hdq1w,
am35xx_mdio__l3,
am35xx_l4_core__mdio,
am35xx_emac__l3,
--
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 1/7] omap non-critical fixes for v3.7 merge window

2012-09-17 Thread Tony Lindgren
* Olof Johansson o...@lixom.net [120916 20:18]:
 On Thu, Sep 13, 2012 at 07:34:04PM -0700, Tony Lindgren wrote:
  * Tony Lindgren t...@atomide.com [120913 19:20]:
   The following changes since commit 
   55d512e245bc7699a8800e23df1a24195dd08217:
   
 Linux 3.6-rc5 (2012-09-08 16:43:45 -0700)
   
   are available in the git repository at:
   
 git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
   tags/omap-fixes-noncritical-for-v3.7
   
   for you to fetch changes up to 3c5dc4a7daa6e64e39412fe9c7daa298834de623:
   
 ARM: OMAP4: wakeupgen: remove duplicate AUXCOREBOOT* read/write 
   (2012-09-12 21:14:34 -0700)
   
   
   Non critical omap fixes that we not considered necessary
   for the v3.6 -rc cycle.
   
   
  
  Oops forgot to push out some of the tags and only this one
  seems to got sent. Still a valid pull request, but I'll repost
  the whole series of them.
 
 Ah, I noticed this now. And it also explains why I got 4 copies of all pull
 requests, they all looked identical until the one that was missing a tag,
 I suppose. :)

Yes sorry for the extra spam, looks like you already found the right
tag for the am33xx changes.

Thanks,

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: [omap:tmp-merge 31/47] drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory

2012-09-17 Thread Tony Lindgren
* Fengguang Wu fengguang...@intel.com [120916 17:41]:
 Hi Tony,
 
 FYI, kernel build failed on
 
 tree:   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git 
 tmp-merge
 head:   a742996f4643b4e9612fe081d146035964cfbd87
 commit: 7d7e1eba7e92c2f9c76db80adc24836e7a114bfb [31/47] ARM: OMAP2+: Prepare 
 for irqs.h removal
 config: x86_64-randconfig-s331 (attached as .config)
 
 All related error/warning messages:
 
 drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
 directory
 compilation terminated.
 
 vim +49 drivers/mfd/twl-core.c
 44#include linux/regulator/machine.h
 45
 46#include linux/i2c.h
 47#include linux/i2c/twl.h
 48
49#include plat/cpu.h
 50
 51#include twl-core.h
 52
 53/*
 54 * The TWL4030 Triton 2 is one of a family of a 
 multi-function Power

OK thanks for letting me know. That include needs to be ifdeffed until
we remove all cpu_is_omap usage from drivers. I'll take a look and will
also check if other drivers may have the same issue.

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 2/2] ARM: OMAP2+: Enable pinctrl dummy states

2012-09-17 Thread Matt Porter
On Tue, Sep 11, 2012 at 06:03:07PM -0700, Tony Lindgren wrote:
 * Matt Porter mpor...@ti.com [120911 12:05]:
  On Tue, Sep 11, 2012 at 11:35:22AM -0700, Tony Lindgren wrote:
   Added Linus Walleij to Cc as well.
 
 Now I think I really managed to add Linus W to Cc, sent too fast
 earlier.
 ...
 
   But do you get an error then if the desired pins are not found?
   If you do get an error, then sounds like it's OK to do.
 
  Hrm, no. In that case, it will be completely silent (assuming we took
  care of the pinmuxing in the bootloader) as it uses the dummy state.
  Only with debug on will you see the information that mcspi has used
  the dummy state as is the case with !DT.
 ...
  
   Well I think we should consider at least the following:
   
   1. Always see warnings when device tree is populated with board-generic.
  If somebody wants to use bootloader only muxing with DT, they can patch
  in pinctrl_provide_dummies() somewhere. But let's assume we always
  want to see the warnings with board-generic.c and DT.
  
  Ok, this is clear.
  
   2. For legacy booting without DT, we should not see any warnings
  from pinctrl-single.c as it's DT based.
  
  Right, except anything legacy booting without DT will require that
  dummy states be present otherwise it will fail probe.
 
 But I guess we should enable the dummy states only for other
 board-*.c files, not board-generic.c? 
 
   3. There may be other non-pinctrl drivers too that are not DT
  based, and in those cases we should see the warnings as well
  for in the non-DT case.
  
  I'm not sure what you mean here. non-pinctrl drivers means any driver
  that is not yet pinctrl or DT enabled? It's unclear to me how this
  case has a bearing on mcspi and pinctrl enablement across legacy
  board-foo.c !DT booting platforms.
 
 Right, sorry I meant non DT pinctrl drivers..
  
  However, I think if the approach was modified by only calling
  pinctrl_provide_dummies() when we are booting with DT populated
  and using board-generic.c then it will satisfy all of your
  concerns. Thoughts?
 
 Hmm but shouldn't it be call pinctrl_provide_dummies() only
 for other boards except board-generic.c? And that is assuming
 we don't have any other non DT pinctrl drivers around.

Yes, I've addressed this now in v2.

  i.e. the legacy !DT booting will have dummy states and continue
  along through mcspi the way it does today, relying on board-foo level
  pinmux calls (or bootloader pinmuxing). Meanwhile DT booting will now
  require that a mcspi instance also require pinctrl entry in this dts.
 
 Yes agreed, except let's just produce a warning for the pinctrl
 errors..

Sounds good, I changed this in v2 to use the same warning as leds-gpio.

  The only worrisome thing is the pinctrl requirement on DT booting is
  now an implicit requirement.
 
 ..as otherwise not much will work at this point :)

:)

 For board-generic.c we always want to see the warnings. And some 
 boards
 insist on doing all the muxing only in the bootloader.

Which warnings are you saying we should see in the board-generic.c
case?  Sure, there's plenty of cases where this will be unused due to
somebody setting all the muxes in the bootloader and then not using
pinctrl data. I'll have to doublecheck but I believe that case is also
fine as the -single driver can't override the dummy state if the DT has
no pinctrl data for the spi driver.
 
 I suggest all pinctrl errors should show up as warnings with
 board-generic.c, but we should not exit out of the driver probe
 on errors.

Ok, makes sense to me now.

Thanks,
Matt
--
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 v2 0/2] Add pinctrl support to omap2-mcspi

2012-09-17 Thread Matt Porter
Changes since v1:
- warns that pins are not configured by the driver rather than
  exiting 
- dummy states are only enabled for OMAP platforms where DT is
  not populated

This series enables pinctrl support for McSPI. Platforms that boot only
from DT and rely on pinctrl to set pinmuxes appropriately require this
for omap2-mcspi operation.

It has been tested on AM335x BeagleBone with an Adafruit SPI LCD attached
and regression tested on Beagleboard xM booting in the !DT case, using
board-omap3evm.c. 

The series applies on top of Tony's dt-devel branch.

Matt Porter (2):
  spi: omap2-mcspi: add pinctrl support
  ARM: OMAP2+: Enable pinctrl dummy states

 arch/arm/mach-omap2/devices.c |5 +
 drivers/spi/spi-omap2-mcspi.c |8 
 2 files changed, 13 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 v2 1/2] spi: omap2-mcspi: add pinctrl support

2012-09-17 Thread Matt Porter
Adds pinctrl support to support OMAP platforms that boot from DT
and rely on pinctrl support to set pinmuxes.

Signed-off-by: Matt Porter mpor...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |8 
 1 file changed, 8 insertions(+)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index b2fb141..9502566 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -38,6 +38,8 @@
 #include linux/pm_runtime.h
 #include linux/of.h
 #include linux/of_device.h
+#include linux/pinctrl/consumer.h
+#include linux/err.h
 
 #include linux/spi/spi.h
 
@@ -1124,6 +1126,7 @@ static int __devinit omap2_mcspi_probe(struct 
platform_device *pdev)
static int  bus_num = 1;
struct device_node  *node = pdev-dev.of_node;
const struct of_device_id *match;
+   struct pinctrl *pinctrl;
 
master = spi_alloc_master(pdev-dev, sizeof *mcspi);
if (master == NULL) {
@@ -1219,6 +1222,11 @@ static int __devinit omap2_mcspi_probe(struct 
platform_device *pdev)
if (status  0)
goto dma_chnl_free;
 
+   pinctrl = devm_pinctrl_get_select_default(pdev-dev);
+   if (IS_ERR(pinctrl))
+   dev_warn(pdev-dev,
+   pins are not configured from the driver\n);
+
pm_runtime_use_autosuspend(pdev-dev);
pm_runtime_set_autosuspend_delay(pdev-dev, SPI_AUTOSUSPEND_TIMEOUT);
pm_runtime_enable(pdev-dev);
-- 
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 v2 2/2] ARM: OMAP2+: Enable pinctrl dummy states

2012-09-17 Thread Matt Porter
Enable pinctrl dummy states for all OMAP platforms that don't
populate DT. This allows drivers to be converted to pinctrl
and not generate new warnings on platforms that do not provide
pinctrl data. These platforms already have pinmuxes configured
before the drivers probe.

Signed-off-by: Matt Porter mpor...@ti.com
---
 arch/arm/mach-omap2/devices.c |5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 1efa984..6ef4010 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -17,6 +17,7 @@
 #include linux/err.h
 #include linux/slab.h
 #include linux/of.h
+#include linux/pinctrl/machine.h
 #include linux/platform_data/omap4-keypad.h
 
 #include asm/mach-types.h
@@ -628,6 +629,10 @@ static inline void omap_init_vout(void) {}
 
 static int __init omap2_init_devices(void)
 {
+   /* Enable dummy states for those platforms without pinctrl support */
+   if (!of_have_populated_dt())
+   pinctrl_provide_dummies();
+
/*
 * please keep these calls, and their implementations above,
 * in alphabetical order so they're easier to sort through.
-- 
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 0/2] Add pinctrl support to omap2-mcspi

2012-09-17 Thread Matt Porter
On Mon, Sep 17, 2012 at 01:22:16PM -0400, Matt Porter wrote:
 Changes since v1:
   - warns that pins are not configured by the driver rather than
 exiting 
   - dummy states are only enabled for OMAP platforms where DT is
 not populated
 
 This series enables pinctrl support for McSPI. Platforms that boot only
 from DT and rely on pinctrl to set pinmuxes appropriately require this
 for omap2-mcspi operation.
 
 It has been tested on AM335x BeagleBone with an Adafruit SPI LCD attached
 and regression tested on Beagleboard xM booting in the !DT case, using
 board-omap3evm.c. 
 
 The series applies on top of Tony's dt-devel branch.

*sigh*, that's devel-dt of course.
--
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 1/2] spi: omap2-mcspi: add pinctrl support

2012-09-17 Thread Tony Lindgren
* Matt Porter mpor...@ti.com [120917 10:21]:
 Adds pinctrl support to support OMAP platforms that boot from DT
 and rely on pinctrl support to set pinmuxes.
 
 Signed-off-by: Matt Porter mpor...@ti.com

Acked-by: Tony Lindgren t...@atomide.com

 ---
  drivers/spi/spi-omap2-mcspi.c |8 
  1 file changed, 8 insertions(+)
 
 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
 index b2fb141..9502566 100644
 --- a/drivers/spi/spi-omap2-mcspi.c
 +++ b/drivers/spi/spi-omap2-mcspi.c
 @@ -38,6 +38,8 @@
  #include linux/pm_runtime.h
  #include linux/of.h
  #include linux/of_device.h
 +#include linux/pinctrl/consumer.h
 +#include linux/err.h
  
  #include linux/spi/spi.h
  
 @@ -1124,6 +1126,7 @@ static int __devinit omap2_mcspi_probe(struct 
 platform_device *pdev)
   static int  bus_num = 1;
   struct device_node  *node = pdev-dev.of_node;
   const struct of_device_id *match;
 + struct pinctrl *pinctrl;
  
   master = spi_alloc_master(pdev-dev, sizeof *mcspi);
   if (master == NULL) {
 @@ -1219,6 +1222,11 @@ static int __devinit omap2_mcspi_probe(struct 
 platform_device *pdev)
   if (status  0)
   goto dma_chnl_free;
  
 + pinctrl = devm_pinctrl_get_select_default(pdev-dev);
 + if (IS_ERR(pinctrl))
 + dev_warn(pdev-dev,
 + pins are not configured from the driver\n);
 +
   pm_runtime_use_autosuspend(pdev-dev);
   pm_runtime_set_autosuspend_delay(pdev-dev, SPI_AUTOSUSPEND_TIMEOUT);
   pm_runtime_enable(pdev-dev);
 -- 
 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 2/2] ARM: OMAP2+: Enable pinctrl dummy states

2012-09-17 Thread Tony Lindgren
* Matt Porter mpor...@ti.com [120917 10:21]:
 Enable pinctrl dummy states for all OMAP platforms that don't
 populate DT. This allows drivers to be converted to pinctrl
 and not generate new warnings on platforms that do not provide
 pinctrl data. These platforms already have pinmuxes configured
 before the drivers probe.

Thanks this should do the trick until we've converted to use DT.
I'll queue this for the upcoming merge window.

Regards,

Tony
 
 Signed-off-by: Matt Porter mpor...@ti.com
 ---
  arch/arm/mach-omap2/devices.c |5 +
  1 file changed, 5 insertions(+)
 
 diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
 index 1efa984..6ef4010 100644
 --- a/arch/arm/mach-omap2/devices.c
 +++ b/arch/arm/mach-omap2/devices.c
 @@ -17,6 +17,7 @@
  #include linux/err.h
  #include linux/slab.h
  #include linux/of.h
 +#include linux/pinctrl/machine.h
  #include linux/platform_data/omap4-keypad.h
  
  #include asm/mach-types.h
 @@ -628,6 +629,10 @@ static inline void omap_init_vout(void) {}
  
  static int __init omap2_init_devices(void)
  {
 + /* Enable dummy states for those platforms without pinctrl support */
 + if (!of_have_populated_dt())
 + pinctrl_provide_dummies();
 +
   /*
* please keep these calls, and their implementations above,
* in alphabetical order so they're easier to sort through.
 -- 
 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 1/2] drm: support for rotated scanout

2012-09-17 Thread Ville Syrjälä
On Tue, Sep 04, 2012 at 11:35:56AM -0500, Rob Clark wrote:
 From: Rob Clark r...@ti.com
 
 For drivers that can support rotated scanout, the extra parameter
 checking in drm-core, while nice, tends to get confused.  To solve
 this drivers can set the crtc or plane invert_dimensions field so
 that the dimension checking takes into account the rotation that
 the driver is performing.
 
 v1: original
 v2: remove invert_dimensions from plane, at Ville's suggestion.
 Userspace can give rotated src coordinates, so invert_dimensions
 is not required for planes.
 
 Signed-off-by: Rob Clark r...@ti.com

Sorry for the delay Rob, I somehow missed this. In any case, the patch
looks OK to me.

Reviewed-by: Ville Syrjälä ville.syrj...@linux.intel.com

-- 
Ville Syrjälä
Intel OTC
--
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 0/2] ARM: New cache API for iommu

2012-09-17 Thread Gupta, Ramesh
Hi Russell,


On Thu, Sep 13, 2012 at 12:39 PM, Gupta, Ramesh grgu...@ti.com wrote:
 From a00cbfadc0053a3c21812593997a1b7338234a9f Mon Sep 17 00:00:00 2001
 From: Ramesh Gupta G grgu...@ti.com
 Date: Thu, 13 Sep 2012 11:43:20 +0530
 Subject: [PATCH v6  0/2] ARM: New cache API for iommu

 This patch series is the next version to
 - add a new cache maintenance api to support non-coherent iommu drivers.
 - flush both L1 and L2 caches from OMAP iommu whenever the page table
   memory is updated.

 Changes since the previous patch set (v5)
 - Fixed the RMK's comments on the flush function names in omap-iommu
 to reflect the
   purpose.

 The implementation of the new api is based on
 the approach[1] discussed.

 [1]http://marc.info/?l=linux-kernelm=131316512713815w=2

 Ramesh Gupta G (2):
   ARM: new cache maintenance api for iommu
   OMAP:IOMMU:flush L1 and L2 caches

I have included your review comments in this series.
Could you please pull these patches if every thing looks fine?

thank you and regards
Ramesh Gupta G
--
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: [omap:tmp-merge 31/47] drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory

2012-09-17 Thread Felipe Balbi
Hi,

On Mon, Sep 17, 2012 at 09:56:43AM -0700, Tony Lindgren wrote:
 * Fengguang Wu fengguang...@intel.com [120916 17:41]:
  Hi Tony,
  
  FYI, kernel build failed on
  
  tree:   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git 
  tmp-merge
  head:   a742996f4643b4e9612fe081d146035964cfbd87
  commit: 7d7e1eba7e92c2f9c76db80adc24836e7a114bfb [31/47] ARM: OMAP2+: 
  Prepare for irqs.h removal
  config: x86_64-randconfig-s331 (attached as .config)
  
  All related error/warning messages:
  
  drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
  directory
  compilation terminated.
  
  vim +49 drivers/mfd/twl-core.c
  44  #include linux/regulator/machine.h
  45  
  46  #include linux/i2c.h
  47  #include linux/i2c/twl.h
  48  
 49  #include plat/cpu.h
  50  
  51  #include twl-core.h
  52  
  53  /*
  54   * The TWL4030 Triton 2 is one of a family of a 
  multi-function Power
 
 OK thanks for letting me know. That include needs to be ifdeffed until
 we remove all cpu_is_omap usage from drivers. I'll take a look and will
 also check if other drivers may have the same issue.

the only use of cpu_is_* in that driver is related to the osc_ck clock
name. Isn't this enough ?

From: Felipe Balbi ba...@ti.com
Subject: mfd: twl-core: drop cpu_is_* usage


NYET-Signed-off-by: Felipe Balbi ba...@ti.com
---

diff --git a/arch/arm/mach-omap2/clock2430_data.c 
b/arch/arm/mach-omap2/clock2430_data.c
index cacabb0..b2e6080 100644
--- a/arch/arm/mach-omap2/clock2430_data.c
+++ b/arch/arm/mach-omap2/clock2430_data.c
@@ -1855,7 +1855,7 @@ static struct omap_clk omap2430_clks[] = {
/* external root sources */
CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
-   CLK(NULL,   osc_ck,   osc_ck,CK_243X),
+   CLK(NULL,   osc_sys_ck,   osc_ck,CK_243X),
CLK(NULL,   sys_ck,   sys_ck,CK_243X),
CLK(NULL,   alt_ck,   alt_ck,CK_243X),
CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index 1c32afe..e4fff17 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -1132,11 +1132,7 @@ static void clocks_init(struct device *dev,
u32 rate;
u8 ctrl = HFCLK_FREQ_26_MHZ;
 
-#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
-   if (cpu_is_omap2430())
-   osc = clk_get(dev, osc_ck);
-   else
-   osc = clk_get(dev, osc_sys_ck);
+   osc = clk_get(dev, osc_sys_ck);
 
if (IS_ERR(osc)) {
printk(KERN_WARNING Skipping twl internal clock init and 
@@ -1147,18 +1143,6 @@ static void clocks_init(struct device *dev,
rate = clk_get_rate(osc);
clk_put(osc);
 
-#else
-   /* REVISIT for non-OMAP systems, pass the clock rate from
-* board init code, using platform_data.
-*/
-   osc = ERR_PTR(-EIO);
-
-   printk(KERN_WARNING Skipping twl internal clock init and 
-  using bootloader value (unknown osc rate)\n);
-
-   return;
-#endif
-
switch (rate) {
case 1920:
ctrl = HFCLK_FREQ_19p2_MHZ;

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 3/4] drivers/mmc/host/omap_hsmmc.c: fix error return code

2012-09-17 Thread S, Venkatraman
On Mon, Sep 17, 2012 at 1:45 PM, Peter Senna Tschudin
peter.se...@gmail.com wrote:
 From: Peter Senna Tschudin peter.se...@gmail.com

 Convert a nonnegative error return code to a negative one, as returned
 elsewhere in the function.

 A simplified version of the semantic match that finds this problem is as
 follows: (http://coccinelle.lip6.fr/)

 // smpl
 (
 if@p1 (\(ret  0\|ret != 0\))
  { ... return ret; }
 |
 ret@p1 = 0
 )
 ... when != ret = e1
 when != ret
 *if(...)
 {
   ... when != ret = e2
   when forall
  return ret;
 }
 // /smpl

 Signed-off-by: Peter Senna Tschudin peter.se...@gmail.com

Looks good.
Acked-by: Venkatraman S svenk...@ti.com
--
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] mmc: omap_hsmmc: Pass on the suspend failure to the PM core

2012-09-17 Thread S, Venkatraman
On Thu, Sep 13, 2012 at 12:01 PM, Hebbar, Gururaja
gururaja.heb...@ti.com wrote:
 From: Vaibhav Bedia vaibhav.be...@ti.com

 In some cases mmc_suspend_host() is not able to claim the
 host and proceed with the suspend process. The core returns
 -EBUSY to the host controller driver. Unfortunately, the
 host controller driver does not pass on this information
 to the PM core and hence the system suspend process continues.

 ret = mmc_suspend_host(host-mmc);
 if (ret) {
 host-suspended = 0;
 if (host-pdata-resume) {
 ret = host-pdata-resume(dev, host-slot_id);

 The return status from mmc_suspend_host() is overwritten by return
 status from host-pdata-resume. So the original return status is lost.

 In these cases the MMC core gets to an unexpected state
 during resume and multiple issues related to MMC crop up.
 1. Host controller driver starts accessing the device registers
 before the clocks are enabled which leads to a prefetch abort.
 2. A file copy thread which was launched before suspend gets
 stuck due to the host not being reclaimed during resume.

 To avoid such problems pass on the -EBUSY status to the PM core
 from the host controller driver. With this change, MMC core
 suspend might still fail but it does not end up making the
 system unusable. Suspend gets aborted and the user can try
 suspending the system again.

 Signed-off-by: Vaibhav Bedia vaibhav.be...@ti.com
 Signed-off-by: Hebbar, Gururaja gururaja.heb...@ti.com
This version is good.

Acked-by: Venkatraman S svenk...@ti.com

 ---
 Changes from V1:
 - Instead of forcibly returning -EBUSY on err, retain old
 status and pass on the same to the caller.
 - add more detail to commit message (explanation with code
 snippet)

 :100644 100644 9afdd20... d9af5f1... M  drivers/mmc/host/omap_hsmmc.c
  drivers/mmc/host/omap_hsmmc.c |3 +--
  1 files changed, 1 insertions(+), 2 deletions(-)

 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
 index 9afdd20..d9af5f1 100644
 --- a/drivers/mmc/host/omap_hsmmc.c
 +++ b/drivers/mmc/host/omap_hsmmc.c
 @@ -2050,8 +2050,7 @@ static int omap_hsmmc_suspend(struct device *dev)
 if (ret) {
 host-suspended = 0;
 if (host-pdata-resume) {
 -   ret = host-pdata-resume(dev, host-slot_id);
 -   if (ret)
 +   if (host-pdata-resume(dev, host-slot_id))
 dev_dbg(dev, Unmask interrupt failed\n);
 }
 goto err;
 --
 1.7.0.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: [omap:tmp-merge 31/47] drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory

2012-09-17 Thread Tony Lindgren
* Felipe Balbi ba...@ti.com [120917 11:05]:
 Hi,
 
 On Mon, Sep 17, 2012 at 09:56:43AM -0700, Tony Lindgren wrote:
  * Fengguang Wu fengguang...@intel.com [120916 17:41]:
   Hi Tony,
   
   FYI, kernel build failed on
   
   tree:   
   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git 
   tmp-merge
   head:   a742996f4643b4e9612fe081d146035964cfbd87
   commit: 7d7e1eba7e92c2f9c76db80adc24836e7a114bfb [31/47] ARM: OMAP2+: 
   Prepare for irqs.h removal
   config: x86_64-randconfig-s331 (attached as .config)
   
   All related error/warning messages:
   
   drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
   directory
   compilation terminated.
   
   vim +49 drivers/mfd/twl-core.c
   44#include linux/regulator/machine.h
   45
   46#include linux/i2c.h
   47#include linux/i2c/twl.h
   48
  49#include plat/cpu.h
   50
   51#include twl-core.h
   52
   53/*
   54 * The TWL4030 Triton 2 is one of a family of a 
   multi-function Power
  
  OK thanks for letting me know. That include needs to be ifdeffed until
  we remove all cpu_is_omap usage from drivers. I'll take a look and will
  also check if other drivers may have the same issue.
 
 the only use of cpu_is_* in that driver is related to the osc_ck clock
 name. Isn't this enough ?

Well there's a bit more to it, see below..

 --- a/arch/arm/mach-omap2/clock2430_data.c
 +++ b/arch/arm/mach-omap2/clock2430_data.c
 @@ -1855,7 +1855,7 @@ static struct omap_clk omap2430_clks[] = {
   /* external root sources */
   CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
   CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
 - CLK(NULL,   osc_ck,   osc_ck,CK_243X),
 + CLK(NULL,   osc_sys_ck,   osc_ck,CK_243X),
   CLK(NULL,   sys_ck,   sys_ck,CK_243X),
   CLK(NULL,   alt_ck,   alt_ck,CK_243X),
   CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),

That's also in use in the pm24xx code.. And is not a generic name
for other SoCs potentially using it. I have something like this here,
but now MMC somehow breaks on 2430sdp that I need to figure out..

Tony


From 292156f6265e3b5446747de41038a19ef476b650 Mon Sep 17 00:00:00 2001
From: Tony Lindgren t...@atomide.com
Date: Mon, 17 Sep 2012 10:47:16 -0700
Subject: [PATCH] mfd: Fix compile for twl-core.c by removing cpu_is_omap
 usage

Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
compile for non-omap as include plat/cpu.h was added. This header
was indirectly included earlier when SPARSE_IRQ was not set, but
does not exist on most platforms.

Fix the problem by removing the cpu_is_omap usage that should
not exist in drivers at all. We can do this by adding proper
clock aliases for the twl-core.c drivers, and drop separate
handling for cases when clock framework is not available as
the behaviour will stay the same.

Note that we need to add a platform device to avoid using the
i2c provided names that may be different on various omaps.

diff --git a/arch/arm/mach-omap2/clock2430_data.c 
b/arch/arm/mach-omap2/clock2430_data.c
index 02fe1f2..7ea9139 100644
--- a/arch/arm/mach-omap2/clock2430_data.c
+++ b/arch/arm/mach-omap2/clock2430_data.c
@@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {
CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
CLK(NULL,   osc_ck,   osc_ck,CK_243X),
+   CLK(twl,  fck,  osc_ck,CK_243X),
CLK(NULL,   sys_ck,   sys_ck,CK_243X),
CLK(NULL,   alt_ck,   alt_ck,CK_243X),
CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
b/arch/arm/mach-omap2/clock3xxx_data.c
index 10a2398..700317a 100644
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {
CLK(NULL,   virt_2600_ck, virt_2600_ck,  
CK_3XXX),
CLK(NULL,   virt_38_4m_ck, virt_38_4m_ck, CK_3XXX),
CLK(NULL,   osc_sys_ck,   osc_sys_ck,CK_3XXX),
+   CLK(twl,  fck,  osc_sys_ck,CK_3XXX),
CLK(NULL,   sys_ck,   sys_ck,CK_3XXX),
CLK(NULL,   sys_altclk,   sys_altclk,CK_3XXX),
CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_3XXX),
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index f462ff2..9d3a0bc 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -46,8 +46,6 @@
 #include linux/i2c.h
 #include linux/i2c/twl.h
 
-#include plat/cpu.h
-
 #include twl-core.h
 
 /*
@@ -1134,12 +1132,7 @@ static void clocks_init(struct device *dev,
u32 rate;
u8 ctrl = HFCLK_FREQ_26_MHZ;
 
-#if defined(CONFIG_ARCH_OMAP2) || 

Re: [omap:tmp-merge 31/47] drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory

2012-09-17 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [120917 12:43]:
 * Felipe Balbi ba...@ti.com [120917 11:05]:
  Hi,
  
  On Mon, Sep 17, 2012 at 09:56:43AM -0700, Tony Lindgren wrote:
   * Fengguang Wu fengguang...@intel.com [120916 17:41]:
Hi Tony,

FYI, kernel build failed on

tree:   
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git 
tmp-merge
head:   a742996f4643b4e9612fe081d146035964cfbd87
commit: 7d7e1eba7e92c2f9c76db80adc24836e7a114bfb [31/47] ARM: OMAP2+: 
Prepare for irqs.h removal
config: x86_64-randconfig-s331 (attached as .config)

All related error/warning messages:

drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
directory
compilation terminated.

vim +49 drivers/mfd/twl-core.c
44  #include linux/regulator/machine.h
45  
46  #include linux/i2c.h
47  #include linux/i2c/twl.h
48  
   49  #include plat/cpu.h
50  
51  #include twl-core.h
52  
53  /*
54   * The TWL4030 Triton 2 is one of a family of a 
multi-function Power
   
   OK thanks for letting me know. That include needs to be ifdeffed until
   we remove all cpu_is_omap usage from drivers. I'll take a look and will
   also check if other drivers may have the same issue.
  
  the only use of cpu_is_* in that driver is related to the osc_ck clock
  name. Isn't this enough ?
 
 Well there's a bit more to it, see below..
 
  --- a/arch/arm/mach-omap2/clock2430_data.c
  +++ b/arch/arm/mach-omap2/clock2430_data.c
  @@ -1855,7 +1855,7 @@ static struct omap_clk omap2430_clks[] = {
  /* external root sources */
  CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
  CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
  -   CLK(NULL,   osc_ck,   osc_ck,CK_243X),
  +   CLK(NULL,   osc_sys_ck,   osc_ck,CK_243X),
  CLK(NULL,   sys_ck,   sys_ck,CK_243X),
  CLK(NULL,   alt_ck,   alt_ck,CK_243X),
  CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
 
 That's also in use in the pm24xx code.. And is not a generic name
 for other SoCs potentially using it. I have something like this here,
 but now MMC somehow breaks on 2430sdp that I need to figure out..

Never mind the MMC issue, that seems to be unrelated. Will send
out a proper patch.
 
 Tony
 
 
 From 292156f6265e3b5446747de41038a19ef476b650 Mon Sep 17 00:00:00 2001
 From: Tony Lindgren t...@atomide.com
 Date: Mon, 17 Sep 2012 10:47:16 -0700
 Subject: [PATCH] mfd: Fix compile for twl-core.c by removing cpu_is_omap
  usage
 
 Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
 compile for non-omap as include plat/cpu.h was added. This header
 was indirectly included earlier when SPARSE_IRQ was not set, but
 does not exist on most platforms.
 
 Fix the problem by removing the cpu_is_omap usage that should
 not exist in drivers at all. We can do this by adding proper
 clock aliases for the twl-core.c drivers, and drop separate
 handling for cases when clock framework is not available as
 the behaviour will stay the same.
 
 Note that we need to add a platform device to avoid using the
 i2c provided names that may be different on various omaps.
 
 diff --git a/arch/arm/mach-omap2/clock2430_data.c 
 b/arch/arm/mach-omap2/clock2430_data.c
 index 02fe1f2..7ea9139 100644
 --- a/arch/arm/mach-omap2/clock2430_data.c
 +++ b/arch/arm/mach-omap2/clock2430_data.c
 @@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {
   CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
   CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
   CLK(NULL,   osc_ck,   osc_ck,CK_243X),
 + CLK(twl,  fck,  osc_ck,CK_243X),
   CLK(NULL,   sys_ck,   sys_ck,CK_243X),
   CLK(NULL,   alt_ck,   alt_ck,CK_243X),
   CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
 diff --git a/arch/arm/mach-omap2/clock3xxx_data.c 
 b/arch/arm/mach-omap2/clock3xxx_data.c
 index 10a2398..700317a 100644
 --- a/arch/arm/mach-omap2/clock3xxx_data.c
 +++ b/arch/arm/mach-omap2/clock3xxx_data.c
 @@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {
   CLK(NULL,   virt_2600_ck, virt_2600_ck,  
 CK_3XXX),
   CLK(NULL,   virt_38_4m_ck, virt_38_4m_ck, CK_3XXX),
   CLK(NULL,   osc_sys_ck,   osc_sys_ck,CK_3XXX),
 + CLK(twl,  fck,  osc_sys_ck,CK_3XXX),
   CLK(NULL,   sys_ck,   sys_ck,CK_3XXX),
   CLK(NULL,   sys_altclk,   sys_altclk,CK_3XXX),
   CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_3XXX),
 diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
 index f462ff2..9d3a0bc 100644
 --- a/drivers/mfd/twl-core.c
 +++ b/drivers/mfd/twl-core.c
 @@ -46,8 +46,6 @@
  #include linux/i2c.h
  #include linux/i2c/twl.h
  
 -#include plat/cpu.h
 -
  #include 

[PATCH] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Tony Lindgren
Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
compile for non-omap as include plat/cpu.h was added:

drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or directory

This header was indirectly included earlier when SPARSE_IRQ was not
set, but does not exist on most platforms.

Fix the problem by removing the cpu_is_omap usage that should
not exist in drivers at all. We can do this by adding proper
clock aliases for the twl-core.c drivers, and drop separate
handling for cases when clock framework is not available as
the behaviour will stay the same.

Note that we need to add a platform device to avoid using the
i2c provided names that may be different on various omaps.

Reported-by: Fengguang Wu fengguang...@intel.com
Reported-by: Stephen Rothwell s...@canb.auug.org.au
Cc: Paul Walmsley p...@pwsan.com
Cc: Samuel Ortiz sa...@linux.intel.com
Cc: Arnd Bergmann a...@arndb.de
Cc: Olof Johansson o...@lixom.net
Signed-off-by: Tony Lindgren t...@atomide.com

---

Samuel, I'd like to queue this via arm-soc as that's where I have
the breaking patch is if this patch is OK with you.

--- a/arch/arm/mach-omap2/clock2430_data.c
+++ b/arch/arm/mach-omap2/clock2430_data.c
@@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {
CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
CLK(NULL,   osc_ck,   osc_ck,CK_243X),
+   CLK(twl,  fck,  osc_ck,CK_243X),
CLK(NULL,   sys_ck,   sys_ck,CK_243X),
CLK(NULL,   alt_ck,   alt_ck,CK_243X),
CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
--- a/arch/arm/mach-omap2/clock3xxx_data.c
+++ b/arch/arm/mach-omap2/clock3xxx_data.c
@@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {
CLK(NULL,   virt_2600_ck, virt_2600_ck,  
CK_3XXX),
CLK(NULL,   virt_38_4m_ck, virt_38_4m_ck, CK_3XXX),
CLK(NULL,   osc_sys_ck,   osc_sys_ck,CK_3XXX),
+   CLK(twl,  fck,  osc_sys_ck,CK_3XXX),
CLK(NULL,   sys_ck,   sys_ck,CK_3XXX),
CLK(NULL,   sys_altclk,   sys_altclk,CK_3XXX),
CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_3XXX),
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -46,8 +46,6 @@
 #include linux/i2c.h
 #include linux/i2c/twl.h
 
-#include plat/cpu.h
-
 #include twl-core.h
 
 /*
@@ -1134,12 +1132,7 @@ static void clocks_init(struct device *dev,
u32 rate;
u8 ctrl = HFCLK_FREQ_26_MHZ;
 
-#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
-   if (cpu_is_omap2430())
-   osc = clk_get(dev, osc_ck);
-   else
-   osc = clk_get(dev, osc_sys_ck);
-
+   osc = clk_get(dev, fck);
if (IS_ERR(osc)) {
printk(KERN_WARNING Skipping twl internal clock init and 
using bootloader value (unknown osc rate)\n);
@@ -1149,18 +1142,6 @@ static void clocks_init(struct device *dev,
rate = clk_get_rate(osc);
clk_put(osc);
 
-#else
-   /* REVISIT for non-OMAP systems, pass the clock rate from
-* board init code, using platform_data.
-*/
-   osc = ERR_PTR(-EIO);
-
-   printk(KERN_WARNING Skipping twl internal clock init and 
-  using bootloader value (unknown osc rate)\n);
-
-   return;
-#endif
-
switch (rate) {
case 1920:
ctrl = HFCLK_FREQ_19p2_MHZ;
@@ -1222,10 +1203,23 @@ twl_probe(struct i2c_client *client, const struct 
i2c_device_id *id)
 {
struct twl4030_platform_data*pdata = client-dev.platform_data;
struct device_node  *node = client-dev.of_node;
+   struct platform_device  *pdev;
int irq_base = 0;
int status;
unsignedi, num_slaves;
 
+   pdev = platform_device_alloc(DRIVER_NAME, -1);
+   if (!pdev) {
+   dev_err(client-dev, can't alloc pdev\n);
+   return -ENOMEM;
+   }
+
+   status = platform_device_add(pdev);
+   if (status) {
+   platform_device_put(pdev);
+   return status;
+   }
+
if (node  !pdata) {
/*
 * XXX: Temporary pdata until the information is correctly
@@ -1234,23 +1228,30 @@ twl_probe(struct i2c_client *client, const struct 
i2c_device_id *id)
pdata = devm_kzalloc(client-dev,
 sizeof(struct twl4030_platform_data),
 GFP_KERNEL);
-   if (!pdata)
-   return -ENOMEM;
+   if (!pdata) {
+   status = -ENOMEM;
+   goto free;
+   }
}
 
if (!pdata) {
dev_dbg(client-dev, 

Re: OMAP4: crypto acceleration (AES, SHA, ...)

2012-09-17 Thread Tony Lindgren
* Sebastian Reichel s...@debian.org [120913 14:58]:
 Hi,
 
 Are there plans to add crypto acceleration support to OMAP4? Has
 this hardware component been removed from OMAP4? I tried to load the
 code written for OMAP3 on my Pandaboard, but it just outputs
 platform not supported:
 
 [0.370513] omap_init_sham: platform not supported
 [0.375488] omap_init_aes: platform not supported

I recall hearing at some point that these are now available
only in the secure mode? Maybe somebody from TI could
check this?

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 V6 1/2] of: Add generic device tree DMA helpers

2012-09-17 Thread Arnd Bergmann
On Saturday 15 September 2012, Russell King - ARM Linux wrote:
 
 On Fri, Sep 14, 2012 at 05:41:56PM -0500, Jon Hunter wrote:
  3. Supporting legacy devices not using DMA Engine
  
 These devices present a problem, as there may not be a uniform way to 
  easily
 support them with regard to device tree. Ideally, these should be 
  migrated
 to DMA engine. However, if this is not possible, then they should still 
  be
 able to use this binding, the only constaint imposed by this 
  implementation
 is that when requesting a DMA channel via 
  of_dma_request_slave_channel(), it
 will return a type of dma_chan.
 
 As far as devices not using DMA engine, the answer is we don't support
 their specification in the DT model.  Note that the legacy OMAP DMA
 API is scheduled for removal next year, so it's not going to be around
 that much longer.

There are a few platforms using the ISA DMA API (rpc, h720x, shark, footbridge),
and I agree that they are unlikely to see OF support, although if they did, it
wouldn't be unreasonable to encode their DMA channels using the same binding.

The other ones that are currently around with their own DMA implementation are

bcmring -- platform is going away
samsung -- gradually getting moved to dmaengine, already has its own binding
that needs to be replaced with this one, so best do it at the same
time.
tegra   -- old dma code gone in 3.7
pxa/mmp -- dmaengine implementation being worked on, should wait for that.
msm -- dma implementation only used by two drivers (serial and mmc). 

Outside of arch/arm, at least sh, cris, unicore32 and blackfin have their
own dma APIs based on the ISA interfaces. I don't currently see any of them
moving towards DT, but it's definitely possible. 

Among the above MSM seems to be the most likely candidate to use the binding
before moving to DT. The msm_sdcc driver is (like much of the msm platform
code) lagging far behind the internel version that qualcomm have, and the
device tree binding they are using is incompatible with the common MMC
binding (and of course the DMA binding here) as well. For getting MSM up
to speed compared with the other platforms, they have to use proper DT
bindings as well as proper DMA engine support. Between those two, I'd prefer
fixing the DT binding first, in order to limit the amount of changes that
have to be done to external device tree files.

Arnd
--
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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Arnd Bergmann
On Monday 17 September 2012, Tony Lindgren wrote:
 Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
 compile for non-omap as include plat/cpu.h was added:
 
 drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
 directory
 
 This header was indirectly included earlier when SPARSE_IRQ was not
 set, but does not exist on most platforms.
 
 Fix the problem by removing the cpu_is_omap usage that should
 not exist in drivers at all. We can do this by adding proper
 clock aliases for the twl-core.c drivers, and drop separate
 handling for cases when clock framework is not available as
 the behaviour will stay the same.
 
 Note that we need to add a platform device to avoid using the
 i2c provided names that may be different on various omaps.
 
 Reported-by: Fengguang Wu fengguang...@intel.com
 Reported-by: Stephen Rothwell s...@canb.auug.org.au
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Signed-off-by: Tony Lindgren t...@atomide.com


Acked-by: Arnd Bergmann a...@arndb.de
--
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 00/29] Move OMAP2+ over to use COMMON clock

2012-09-17 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [120916 13:37]:
 On Tue, 11 Sep 2012, Paul Walmsley wrote:
 
  Then the branch was PM-tested to determine whether it can suspend and 
  serial-resume properly, and whether dynamic idle works.  These tests 
  didn't go so well:
  
  - 3530ES3 Beagleboard here was able to enter retention-idle
suspend, and leave it with serial wakeup, but the CORE powerdomain never 
entered a low-power state.  Dynamic retention-idle with serial wakeup
never resumed, and the test stopped there:
  

  http://www.pwsan.com/omap/testlogs/common_clk_testing_devel_3.7/20120911000742/boot/3530es3beagle/3530es3beagle_log.txt
  
  - 37xx EVM and 3730 Beagle XM fared better; they made it through the whole 
test program, but the CORE powerdomain also never entered a low-power
state:
  

  http://www.pwsan.com/omap/testlogs/common_clk_testing_devel_3.7/20120911000742/boot/37xxevm/37xxevm_log.txt

  http://www.pwsan.com/omap/testlogs/common_clk_testing_devel_3.7/20120911000742/boot/3730beaglexm/3730beaglexm_log.txt
 
 Thanks to debugging work by some TI LDC engineers, these two issues have 
 been resolved.  Some clockdomain associations had been removed that were 
 necessary for the OMAP power management code to function correctly.  The 
 obvious ones have been restored to the clock data, and the branch updated.

That's good news. Does that mean we should try to merge these patches
for v3.7 then? Or do we still have issues remaining?

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 2/2] ARM: OMAP5: Enable arch timer support

2012-09-17 Thread Tony Lindgren
* Benoit Cousson b-cous...@ti.com [120913 01:57]:
  
  Enable Cortex A15 generic timer support for OMAP5 based SOCs.
  The CPU local timers run on the free running real time counter clock.
  
  Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 
 Acked-by: Benoit Cousson b-cous...@ti.com
 
 Tony,
 
 I can potentially add it along with the timer changes in the dts part2
 series if you ack the timer patch. We don't have tons of OMAP5 content
 in the dts branch so it should not conflict.

Yes makes sense to me.

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 2/2] ARM: OMAP5: Enable arch timer support

2012-09-17 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [120917 14:39]:
 * Benoit Cousson b-cous...@ti.com [120913 01:57]:
   
   Enable Cortex A15 generic timer support for OMAP5 based SOCs.
   The CPU local timers run on the free running real time counter clock.
   
   Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
  
  Acked-by: Benoit Cousson b-cous...@ti.com
  
  Tony,
  
  I can potentially add it along with the timer changes in the dts part2
  series if you ack the timer patch. We don't have tons of OMAP5 content
  in the dts branch so it should not conflict.
 
 Yes makes sense to me.

These may cause bad merge conflicts with Jon's timer 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/1] drivers: bus: Move the OMAP interconnect driver to drivers/bus/

2012-09-17 Thread Tony Lindgren
* Santosh Shilimkar santosh.shilim...@ti.com [120914 02:21]:
 OMAP interconnect drivers are used for the interconnect error handling.
 Since they are bus driver, lets move it to newly created drivers/bus.
 
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Tony Lindgren t...@atomide.com
 Tested-by: Lokesh Vutla lokeshvu...@ti.com
 Signed-off-by: Santosh Shilimkar santosh.shilim...@ti.com
 ---
 Patch just moves OMAP interconnect drivers as is to the newly created
 driver/bus/* directory. Patch is generated against arm-soc/drivers/ocp2scp
 tree and test on all OMAP boards.

Great, looks like this should not conflict with other
omap patches queued, so Arnd should probably take this into
the bus branch:

Acked-by: Tony Lindgren t...@atomide.com
--
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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Paul Walmsley
On Mon, 17 Sep 2012, Tony Lindgren wrote:

 Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
 compile for non-omap as include plat/cpu.h was added:
 
 drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
 directory
 
 This header was indirectly included earlier when SPARSE_IRQ was not
 set, but does not exist on most platforms.
 
 Fix the problem by removing the cpu_is_omap usage that should
 not exist in drivers at all. We can do this by adding proper
 clock aliases for the twl-core.c drivers, and drop separate
 handling for cases when clock framework is not available as
 the behaviour will stay the same.
 
 Note that we need to add a platform device to avoid using the
 i2c provided names that may be different on various omaps.
 
 Reported-by: Fengguang Wu fengguang...@intel.com
 Reported-by: Stephen Rothwell s...@canb.auug.org.au
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Signed-off-by: Tony Lindgren t...@atomide.com
 
 ---
 
 Samuel, I'd like to queue this via arm-soc as that's where I have
 the breaking patch is if this patch is OK with you.

It would be ideal if I could queue this one, due to the clock dependency.  
Still hoping that we can get the CCF conversion patches in for 3.7.


- 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 00/29] Move OMAP2+ over to use COMMON clock

2012-09-17 Thread Paul Walmsley
On Mon, 17 Sep 2012, Tony Lindgren wrote:

 That's good news. Does that mean we should try to merge these patches
 for v3.7 then? Or do we still have issues remaining?

There are still problems with the OMAP4 CCF implementation.  Power 
management is broken on some bootloaders that the original data works fine 
with.   It's still under debug.


- 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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [120917 15:09]:
 On Mon, 17 Sep 2012, Tony Lindgren wrote:
 
  Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
  compile for non-omap as include plat/cpu.h was added:
  
  drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
  directory
  
  This header was indirectly included earlier when SPARSE_IRQ was not
  set, but does not exist on most platforms.
  
  Fix the problem by removing the cpu_is_omap usage that should
  not exist in drivers at all. We can do this by adding proper
  clock aliases for the twl-core.c drivers, and drop separate
  handling for cases when clock framework is not available as
  the behaviour will stay the same.
  
  Note that we need to add a platform device to avoid using the
  i2c provided names that may be different on various omaps.
  
  Reported-by: Fengguang Wu fengguang...@intel.com
  Reported-by: Stephen Rothwell s...@canb.auug.org.au
  Cc: Paul Walmsley p...@pwsan.com
  Cc: Samuel Ortiz sa...@linux.intel.com
  Cc: Arnd Bergmann a...@arndb.de
  Cc: Olof Johansson o...@lixom.net
  Signed-off-by: Tony Lindgren t...@atomide.com
  
  ---
  
  Samuel, I'd like to queue this via arm-soc as that's where I have
  the breaking patch is if this patch is OK with you.
 
 It would be ideal if I could queue this one, due to the clock dependency.  
 Still hoping that we can get the CCF conversion patches in for 3.7.

We need to queue this ASAP and before other patches to fix the
build breakage in linux next. Then you can merge in that commit
too, does that work for you?

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] ARM: OMAP: SmartReflex: pass device dependent data via platform data

2012-09-17 Thread Tony Lindgren
Hi,

* jean.pi...@newoldbits.com jean.pi...@newoldbits.com [120914 02:40]:
 From: Jean Pihet j-pi...@ti.com
 
 Remove the device dependent settings (cpu_is_xxx(), IP clock name)
 from the driver code and pass them instead via the platform
 data.
 This allows a clean separation of the driver code and the platform
 code.

Thanks for fixing this. Looks like this should be queued by the
drivers/power/avs maintainers and there should not be merge
conflicts with other omap changes queued.

Maybe do $ scripts/get_maintainer.pl -f drivers/power/avs
and resend both patches to the maintainers?

One comment below on the clocks though..
 
 --- a/arch/arm/mach-omap2/sr_device.c
 +++ b/arch/arm/mach-omap2/sr_device.c
 @@ -122,6 +122,26 @@ static int __init sr_dev_init(struct omap_hwmod *oh, 
 void *user)
   sr_data-senn_mod = 0x1;
   sr_data-senp_mod = 0x1;
  
 + if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
 + sr_data-err_weight = OMAP3430_SR_ERRWEIGHT;
 + sr_data-err_maxlimit = OMAP3430_SR_ERRMAXLIMIT;
 + sr_data-accum_data = OMAP3430_SR_ACCUMDATA;
 + if (!(strcmp(sr_data-name, smartreflex_mpu_iva))) {
 + sr_data-senn_avgweight = OMAP3430_SR1_SENNAVGWEIGHT;
 + sr_data-senp_avgweight = OMAP3430_SR1_SENPAVGWEIGHT;
 + } else {
 + sr_data-senn_avgweight = OMAP3430_SR2_SENNAVGWEIGHT;
 + sr_data-senp_avgweight = OMAP3430_SR2_SENPAVGWEIGHT;
 + }
 + }
 +
 + if (cpu_is_omap34xx())
 + strncpy(sr_data-sys_clk_name, sys_ck,
 + sizeof(sr_data-sys_clk_name));
 + else
 + strncpy(sr_data-sys_clk_name, sys_clkin_ck,
 + sizeof(sr_data-sys_clk_name));
 +
   sr_data-voltdm = voltdm_lookup(sr_dev_attr-sensor_voltdm_name);
   if (IS_ERR(sr_data-voltdm)) {
   pr_err(%s: Unable to get voltage domain pointer for VDD %s\n,

Here you should not pass clocks around. The driver should be able to
clk_get(dev, fck) as long as you have the proper CLK() aliases set
in the arch/arm/mach-omap2/clock*_data.c files.

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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Paul Walmsley
On Mon, 17 Sep 2012, Tony Lindgren wrote:

 We need to queue this ASAP and before other patches to fix the
 build breakage in linux next. Then you can merge in that commit
 too, does that work for you?

That's fine, we'll just need a stable commit then that the CCF patches can 
be based on.


- 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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Tony Lindgren
* Paul Walmsley p...@pwsan.com [120917 15:25]:
 On Mon, 17 Sep 2012, Tony Lindgren wrote:
 
  We need to queue this ASAP and before other patches to fix the
  build breakage in linux next. Then you can merge in that commit
  too, does that work for you?
 
 That's fine, we'll just need a stable commit then that the CCF patches can 
 be based on.

OK cool, will let you know that once we hear from Samuel. Care to
ack the clock related changes?

There's pm24xx.c at least using osc_ck naming, so I added a new
alias to keep it generic for the driver instead of using omap
specific names.

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 v3 4/4] ARM: dts: AM33XX: Add lis331dlh device tree data to am335x-evm

2012-09-17 Thread Andrew Morton
On Mon, 17 Sep 2012 12:53:22 +0530
AnilKumar Ch anilku...@ti.com wrote:

 Add lis331dlh device tree data to am335x-evm.dts. In AM335x EVM
 lis331dlh accelerometer is connected to I2C2 bus. So this patch
 change the status of I2C2 node to okay to use I2C2 bus. Also
 added all the required platform data to am335x-evm.
 
 Signed-off-by: AnilKumar Ch anilku...@ti.com
 ---
  arch/arm/boot/dts/am335x-evm.dts |   39 
 ++

Your arch/arm/boot/dts/am335x-evm.dts differs significantly from the
one in linux-next (it should not do so), so I didn't do anything with
this patch.
--
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 2/2] dmaengine: add helper function to request a slave DMA channel

2012-09-17 Thread Russell King - ARM Linux
On Mon, Sep 17, 2012 at 11:59:27AM +, Arnd Bergmann wrote:
 On Monday 17 September 2012, Vinod Koul wrote:
  On Fri, 2012-09-14 at 17:41 -0500, Jon Hunter wrote:
   +/**
   + * dma_request_slave_channel - try to allocate an exclusive slave
   channel
   + * @dev:   pointer to client device structure
   + * @name:  slave channel name
   + */
   +struct dma_chan *dma_request_slave_channel(struct device *dev, char 
   *name)
   +{
   +   /* If device-tree is present get slave info from here */
   +   if (dev-of_node)
   +   return of_dma_request_slave_channel(dev-of_node, name);
   +
  Shouldn't this be conditionally compiled only when OF is built. I think
  this might be problematic for systems which doesn't have device tree.
  Or perhaps you can declare these symbols as dummy in of_dma.h when
  device tree is not selected.
 
 Right, good point. I'd prefer the dummy functions, since that is in line
 with what a lot of other subsystems do:
 
 #ifdef CONFIG_OF
 extern int of_dma_controller_register(struct device_node *np,
struct dma_chan *(*of_dma_xlate)
(struct of_phandle_args *, struct of_dma *),
void *data);
 extern void of_dma_controller_free(struct device_node *np);
 extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
 char *name);
 extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
struct of_dma *ofdma);
 #else
 static inline int of_dma_controller_register(struct device_node *np,
struct dma_chan *(*of_dma_xlate)
(struct of_phandle_args *, struct of_dma *),
void *data)
 {
   return -ENODEV;
 }
 static inline void of_dma_controller_free(struct device_node *np)
 {
 }
 static inline struct dma_chan *of_dma_request_slave_channel(struct 
 device_node *np,
 char *name)
 {
   return NULL;
 }
 static inline struct dma_chan *of_dma_simple_xlate(struct of_phandle_args 
 *dma_spec,
struct of_dma *ofdma)
 {
   return NULL;
 }
 #endif
 
 I believe that Jon is on vacation this week, so if this is the only issue
 holding up the merge, maybe you can change this in his patch directly, or
 I can send an updated version if you prefer.

I worry that too much is going on here too quickly.  We have some people
working on changing the way DMA engine selects channels.  Meanwhile we
have other people trying to create an OF DMA engine API.

It seems that Vinod's working on a way for platforms to specify bindings
to the DMA engine code, and the DMA engine code itself selects the
appropriate channel.  This patch, on the other hand, introduces a set of
translation functions which need to be provided by platform code,
which returns the dma_chan pointer.

This sounds like a recipe for a total abortion of interfaces.  Only one
of those two activities should be going on at any one time, or if they
have to occur, they need coordination so that the we don't end up with
two totally different schemes.

In the mad rush to DTify everything, don't make hasty decisions, because
it is very difficult to change it later - especially something like this
which defines how DT encodes this information.
--
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 10/10] ARM: OMAP2+: tusb6010: generic timing calculation

2012-09-17 Thread Tony Lindgren
* Mohammed, Afzal af...@ti.com [120917 01:40]:
 Hi Tony,
 
 On Fri, Sep 14, 2012 at 15:50:02, Mohammed, Afzal wrote:
  * Mohammed, Afzal: Wednesday, September 12, 2012 3:20 PM
 
   But some of the tusb async values is less by one. I need
   to get it right.
  
  Reason has been identified. It was due to rounding error,
  no changes are required in the expressions. Moving
  completely to picoseconds resolves the issue.
  
  Can you please try with the attached patch ?

Gave it a quick try and it seemed to work.. But when I tried
rebasing my patches for the cbus to keep things working with
the watchdog, I ran into multiple merge conflicts with
current linux next and gave up.
 
Care to repost this series updated against current linux
next?

I'm afraid I've pretty much lost track of all the patches
and rather not start resolving the conflicts as I'm sure
I'll break something else :)

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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Samuel Ortiz
Hi Tony,

On Mon, Sep 17, 2012 at 01:29:44PM -0700, Tony Lindgren wrote:
 Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
 compile for non-omap as include plat/cpu.h was added:
 
 drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
 directory
 
 This header was indirectly included earlier when SPARSE_IRQ was not
 set, but does not exist on most platforms.
 
 Fix the problem by removing the cpu_is_omap usage that should
 not exist in drivers at all. We can do this by adding proper
 clock aliases for the twl-core.c drivers, and drop separate
 handling for cases when clock framework is not available as
 the behaviour will stay the same.
 
 Note that we need to add a platform device to avoid using the
 i2c provided names that may be different on various omaps.
 
 Reported-by: Fengguang Wu fengguang...@intel.com
 Reported-by: Stephen Rothwell s...@canb.auug.org.au
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Signed-off-by: Tony Lindgren t...@atomide.com
 
 ---
 
 Samuel, I'd like to queue this via arm-soc as that's where I have
 the breaking patch is if this patch is OK with you.
That's fine with me:

Acked-by: Samuel Ortiz sa...@linux.intel.com

Cheers,
Samuel.

-- 
Intel Open Source Technology Centre
http://oss.intel.com/
--
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 1/2] of: Add generic device tree DMA helpers

2012-09-17 Thread David Brown
On Mon, Sep 17, 2012 at 08:42:11PM +, Arnd Bergmann wrote:
 On Saturday 15 September 2012, Russell King - ARM Linux wrote:
  
  On Fri, Sep 14, 2012 at 05:41:56PM -0500, Jon Hunter wrote:
   3. Supporting legacy devices not using DMA Engine
   
  These devices present a problem, as there may not be a uniform way to 
   easily
  support them with regard to device tree. Ideally, these should be 
   migrated
  to DMA engine. However, if this is not possible, then they should 
   still be
  able to use this binding, the only constaint imposed by this 
   implementation
  is that when requesting a DMA channel via 
   of_dma_request_slave_channel(), it
  will return a type of dma_chan.
  
  As far as devices not using DMA engine, the answer is we don't support
  their specification in the DT model.  Note that the legacy OMAP DMA
  API is scheduled for removal next year, so it's not going to be around
  that much longer.
 
 There are a few platforms using the ISA DMA API (rpc, h720x, shark, 
 footbridge),
 and I agree that they are unlikely to see OF support, although if they did, it
 wouldn't be unreasonable to encode their DMA channels using the same binding.
 
 The other ones that are currently around with their own DMA implementation are
 
 bcmring -- platform is going away
 samsung -- gradually getting moved to dmaengine, already has its own binding
 that needs to be replaced with this one, so best do it at the same
 time.
 tegra   -- old dma code gone in 3.7
 pxa/mmp -- dmaengine implementation being worked on, should wait for that.
 msm -- dma implementation only used by two drivers (serial and mmc). 
 
 Outside of arch/arm, at least sh, cris, unicore32 and blackfin have their
 own dma APIs based on the ISA interfaces. I don't currently see any of them
 moving towards DT, but it's definitely possible. 
 
 Among the above MSM seems to be the most likely candidate to use the binding
 before moving to DT. The msm_sdcc driver is (like much of the msm platform
 code) lagging far behind the internel version that qualcomm have, and the
 device tree binding they are using is incompatible with the common MMC
 binding (and of course the DMA binding here) as well. For getting MSM up
 to speed compared with the other platforms, they have to use proper DT
 bindings as well as proper DMA engine support. Between those two, I'd prefer
 fixing the DT binding first, in order to limit the amount of changes that
 have to be done to external device tree files.

There is also a lot of similarity between the mmci hardware and the
msm_sdcc hardware.  Enough so, that it is probably better for us to
make the mmci driver work with our hardware, rather than trying to
keep msm_sdcc going.

There is also an MSM nand device that appears to have not made it in.
It is heavily dependent on the weird features of the DMA hardware.  I
don't have any current plans to support this device, since most boards
using MSMs these days are using mmc/sd instead of bare NAND.

Our DMA hardware is really weird, but should be a bit reasonable.  It
is also being gradually replaced in newer chips with a different DMA
framework.

As far as I'm concerned, I consider making our DMA driver(s) use the
DMA engine API to be part of getting these platforms working with DT.

It is planned, but there are quite a few things that need to be
tackled first.

David

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
--
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 10/10] ARM: OMAP2+: tusb6010: generic timing calculation

2012-09-17 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [120917 15:54]:
 * Mohammed, Afzal af...@ti.com [120917 01:40]:
  Hi Tony,
  
  On Fri, Sep 14, 2012 at 15:50:02, Mohammed, Afzal wrote:
   * Mohammed, Afzal: Wednesday, September 12, 2012 3:20 PM
  
But some of the tusb async values is less by one. I need
to get it right.
   
   Reason has been identified. It was due to rounding error,
   no changes are required in the expressions. Moving
   completely to picoseconds resolves the issue.
   
   Can you please try with the attached patch ?
 
 Gave it a quick try and it seemed to work.. But when I tried
 rebasing my patches for the cbus to keep things working with
 the watchdog, I ran into multiple merge conflicts with
 current linux next and gave up.

OK went back to my original branch without current linux
next and with the new cbus + retu driver from Aaro applied.
Confirmed it's now working on n800 tusb6010.
  
 Care to repost this series updated against current linux
 next?
 
 I'm afraid I've pretty much lost track of all the patches
 and rather not start resolving the conflicts as I'm sure
 I'll break something else :)

You should still repost the whole updated series against
linux next.

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] ARM: OMAP1: Include gpio-omap.h for board-h2 and board-h3

2012-09-17 Thread Tony Lindgren
From de6ca33a96a6bf61fcb91d3d399703e19ead9d1e Mon Sep 17 00:00:00 2001
From: Tony Lindgren t...@atomide.com
Date: Mon, 17 Sep 2012 16:24:20 -0700
Subject: [PATCH] ARM: OMAP1: Include gpio-omap.h for board-h2 and board-h3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Merge of the LED related changes with omap sparse IRQ and
hardware.h related changes causes a build issue otherwise:

arch/arm/mach-omap1/board-h2.c:319: error: implicit declaration of function 
‘OMAP_MPUIO’
arch/arm/mach-omap1/board-h2.c:319: error: initializer element is not constant
arch/arm/mach-omap1/board-h2.c:319: error: (near initialization for 
‘h2_gpio_led_pins[1].gpio’)

Signed-off-by: Tony Lindgren t...@atomide.com

---

Noticed this with current linux next and omap1_defconfig.
The arm-soc drivers branch builds fine, but merged
with omap-cleanup-sparseirq-for-v3.7 compile breaks.

I'll queue this into cleanup-fixes branch on top of the
omap-cleanup-sparseirq-for-v3.7 branch.

--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -31,6 +31,7 @@
 #include linux/i2c/tps65010.h
 #include linux/smc91x.h
 #include linux/omapfb.h
+#include linux/platform_data/gpio-omap.h
 
 #include asm/mach-types.h
 #include asm/mach/arch.h
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -31,6 +31,7 @@
 #include linux/i2c/tps65010.h
 #include linux/smc91x.h
 #include linux/omapfb.h
+#include linux/platform_data/gpio-omap.h
 
 #include asm/setup.h
 #include asm/page.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] cpufreq: OMAP: Check IS_ERR() instead of NULL for omap_device_get_by_hwmod_name

2012-09-17 Thread Axel Lin
omap_device_get_by_hwmod_name() returns ERR_PTR on error.

Signed-off-by: Axel Lin axel@gmail.com
---
 drivers/cpufreq/omap-cpufreq.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
index 6e22f44..65f8e9a 100644
--- a/drivers/cpufreq/omap-cpufreq.c
+++ b/drivers/cpufreq/omap-cpufreq.c
@@ -266,9 +266,9 @@ static int __init omap_cpufreq_init(void)
}
 
mpu_dev = omap_device_get_by_hwmod_name(mpu);
-   if (!mpu_dev) {
+   if (IS_ERR(mpu_dev)) {
pr_warning(%s: unable to get the mpu device\n, __func__);
-   return -EINVAL;
+   return PTR_ERR(mpu_dev);
}
 
mpu_reg = regulator_get(mpu_dev, vcc);
-- 
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


[GIT PULL] omap fixes for linux next for v3.7 merge window

2012-09-17 Thread Tony Lindgren
Hi Arnd  Olof,

Here is the fix for the twl-core compile on non-omap
platforms and few other fixes.

This will probably cause a minor merge conflicts with
the led changes merged in the arm-soc next/drivers branch
as both linux/leds.h and linux/platform_data/gpio-omap.h
now need to be included.

Regards,

Tony


The following changes since commit 68cb700c59fae6cd539c9dc1e9f2584f671935a0:

  ARM: OMAP1: Move SoC specific headers from plat to mach for omap1 (2012-09-12 
18:06:31 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
tags/cleanup-fixes-for-v3.7

for you to fetch changes up to de6ca33a96a6bf61fcb91d3d399703e19ead9d1e:

  ARM: OMAP1: Include gpio-omap.h for board-h2 and board-h3 (2012-09-17 
16:28:03 -0700)


These fixes are needed to fix non-omap build breakage for
twl-core driver and to fix omap1_defconfig compile when
led driver changes and omap sparse IRQ changes are merged
together. Also fix warnings for omaps not using pinctrl
framework yet.


Matt Porter (1):
  ARM: OMAP2+: Enable pinctrl dummy states

Tony Lindgren (2):
  mfd: Fix compile for twl-core.c by removing cpu_is_omap usage
  ARM: OMAP1: Include gpio-omap.h for board-h2 and board-h3

 arch/arm/mach-omap1/board-h2.c   |1 +
 arch/arm/mach-omap1/board-h3.c   |1 +
 arch/arm/mach-omap2/clock2430_data.c |1 +
 arch/arm/mach-omap2/clock3xxx_data.c |1 +
 arch/arm/mach-omap2/devices.c|5 +++
 drivers/mfd/twl-core.c   |   56 ++
 6 files changed, 39 insertions(+), 26 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


Re: [PATCH] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [120917 15:27]:
 * Paul Walmsley p...@pwsan.com [120917 15:25]:
  On Mon, 17 Sep 2012, Tony Lindgren wrote:
  
   We need to queue this ASAP and before other patches to fix the
   build breakage in linux next. Then you can merge in that commit
   too, does that work for you?
  
  That's fine, we'll just need a stable commit then that the CCF patches can 
  be based on.
 
 OK cool, will let you know that once we hear from Samuel. Care to
 ack the clock related changes?
 
 There's pm24xx.c at least using osc_ck naming, so I added a new
 alias to keep it generic for the driver instead of using omap
 specific names.

Pushed out now with the ack from Samuel and sent the pull request.

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: [GIT PULL] omap fixes for linux next for v3.7 merge window

2012-09-17 Thread Olof Johansson
Hi,

On Mon, Sep 17, 2012 at 7:28 PM, Tony Lindgren t...@atomide.com wrote:
 Hi Arnd  Olof,

 Here is the fix for the twl-core compile on non-omap
 platforms and few other fixes.

 This will probably cause a minor merge conflicts with
 the led changes merged in the arm-soc next/drivers branch
 as both linux/leds.h and linux/platform_data/gpio-omap.h
 now need to be included.

 Regards,

 Tony


 The following changes since commit 68cb700c59fae6cd539c9dc1e9f2584f671935a0:

   ARM: OMAP1: Move SoC specific headers from plat to mach for omap1 
 (2012-09-12 18:06:31 -0700)

 are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
 tags/cleanup-fixes-for-v3.7

Thanks, pulled in on top of next/cleanup. We might have missed the
-next train for the day though.


-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 V6 2/2] dmaengine: add helper function to request a slave DMA channel

2012-09-17 Thread Vinod Koul
On Mon, 2012-09-17 at 11:59 +, Arnd Bergmann wrote:
 On Monday 17 September 2012, Vinod Koul wrote:
 
 I believe that Jon is on vacation this week, so if this is the only issue
 holding up the merge, maybe you can change this in his patch directly, or
 I can send an updated version if you prefer.
Yes that was my idea as well, we do similar stuff in dmaengine.

Okay I think we are good for merging this, I will add the patch for this
as well.

If anyone has objection please speak up _now_

-- 
~Vinod

--
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


[GIT PULL] omap device tree changes for v3.7 merge window

2012-09-17 Thread Tony Lindgren
The following changes since commit 68cb700c59fae6cd539c9dc1e9f2584f671935a0:

  ARM: OMAP1: Move SoC specific headers from plat to mach for omap1 (2012-09-12 
18:06:31 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
tags/omap-devel-dt-merged-for-v3.7

for you to fetch changes up to 6bfc82ff589a00e5fbc12b958c649d703d273c86:

  Merge tag 'omap-cleanup-sparseirq-for-v3.7' into devel-dt (2012-09-16 
15:35:06 -0700)



Device tree related changes for omaps.

Note that this branch is based on omap-cleanup-sparseirq-for-v3.7
to avoid merge conflicts with the sparseirq changes for gpio-twl4030
driver.


Aneesh V (3):
  Documentation: dt: device tree bindings for LPDDR2 memories
  Documentation: dt: emif: device tree bindings for TI's EMIF sdram 
controller
  ARM: dts: EMIF and LPDDR2 device tree data for OMAP4 boards

AnilKumar Ch (5):
  arm/dts: regulator: Add tps65910 device tree data
  arm/dts: regulator: Add tps65217 device tree data
  arm/dts: Add tps65910 regulator DT data to am335x-evm.dts
  arm/dts: Add tps65217 regulator DT data to am335x-bone.dts
  ARM: OMAP2+: select PINCTRL in Kconfig

Balaji T K (1):
  arm/dts: omap5: Add mmc controller nodes and board data

Benoit Cousson (3):
  ARM: dts: OMAP4: Cleanup and move GIC outside of the OCP
  ARM: dts: omap3-beagle: Add heartbeat and mmc LEDs support
  ARM: dts: OMAP4: Add reg and interrupts for every nodes

Florian Vaussard (5):
  gpio/twl4030: get platform data from device tree
  ARM: dts: omap3: Add gpio-twl4030 properties for BeagleBoard and omap3-EVM
  ARM: dts: OMAP3: Add support for Gumstix Overo with Tobi expansion board
  Documentation: dt: Update the OMAP documentation with Overo/Toby
  ARM: dts: omap3-overo: Add support for the blue LED

Olof Johansson (1):
  ARM: omap: add dtb targets

Peter Ujfalusi (9):
  ARM: OMAP: omap_device: Fix up resource names when booted with devicetree
  ARM: dts: omap2: Add McBSP entries for OMAP2420 and OMAP2430 SoC
  ARM: dts: omap2420-h4: Include omap2420.dtsi file instead the common omap2
  ARM: dts: omap3: Add McBSP entries
  ARM: dts: omap4: Add McBSP entries
  ARM: dts: omap4: Add reg-names for McPDM and DMIC
  ARM: dts: omap5: Add McBSP entries
  ARM: dts: omap5: Add McPDM and DMIC section to the dtsi file
  ARM: dts: omap3-beagle: Enable audio support

Rajendra Nayak (1):
  arm/dts: Cleanup regulator naming and remove @0,1

Santosh Shilimkar (2):
  ARM: OMAP4: Add L2 Cache Controller in Device Tree
  ARM: OMAP4: Add local timer support for Device Tree

Sourav Poddar (6):
  ARM: dts: omap5-evm: Add I2C support
  ARM: dts: omap5-evm: Add tmp102 sensor support
  ARM: dts: omap5-evm: Add keypad data
  ARM: dts: omap5-evm: Add bmp085 sensor support
  ARM: dts: omap4-sdp: Add keypad data
  Documentation: dt: i2c: trivial-devices: Update for tmp102

Tony Lindgren (6):
  Merge branch 'devel-dt-regulator' into devel-dt
  Merge branch 'for_3.7/dts' of 
git://git.kernel.org/.../bcousson/linux-omap-dt into devel-dt
  arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm
  arm/dts: Add pinctrl driver entries for omap2/3/4
  arm/dts: Mux uart pins for omap4-sdp
  Merge tag 'omap-cleanup-sparseirq-for-v3.7' into devel-dt

Vaibhav Hiremath (4):
  arm/dts: AM33XX: Set the default status of module to disabled state
  ARM: OMAP: omap_device: Do not overwrite resources allocated by OF layer
  ARM: dts: AM33XX: Convert all hex numbers to lower-case
  ARM: dts: AM33XX: Specify reg and interrupt property for all nodes

 .../devicetree/bindings/arm/omap/omap.txt  |3 +
 .../devicetree/bindings/gpio/gpio-twl4030.txt  |6 +
 .../devicetree/bindings/i2c/trivial-devices.txt|1 +
 .../devicetree/bindings/lpddr2/lpddr2-timings.txt  |   52 ++
 .../devicetree/bindings/lpddr2/lpddr2.txt  |  102 ++
 .../bindings/memory-controllers/ti/emif.txt|   55 ++
 arch/arm/boot/dts/am335x-bone.dts  |   60 ++
 arch/arm/boot/dts/am335x-evm.dts   |  100 ++
 arch/arm/boot/dts/am33xx.dtsi  |   71 ++-
 arch/arm/boot/dts/elpida_ecb240abacn.dtsi  |   67 +++
 arch/arm/boot/dts/omap2420-h4.dts  |2 +-
 arch/arm/boot/dts/omap2420.dtsi|   48 +
 arch/arm/boot/dts/omap2430.dtsi|   92 +
 .../dts/{omap3-beagle.dts = omap3-beagle-xm.dts}  |   54 +-
 arch/arm/boot/dts/omap3-evm.dts|   13 ++
 arch/arm/boot/dts/omap3-overo.dtsi |   57 ++
 arch/arm/boot/dts/omap3-tobi.dts   |   35 
 arch/arm/boot/dts/omap3.dtsi  

Re: [PATCH V6 2/2] dmaengine: add helper function to request a slave DMA channel

2012-09-17 Thread Vinod Koul
On Mon, 2012-09-17 at 23:36 +0100, Russell King - ARM Linux wrote:
  
  I believe that Jon is on vacation this week, so if this is the only issue
  holding up the merge, maybe you can change this in his patch directly, or
  I can send an updated version if you prefer.
 
 I worry that too much is going on here too quickly.  We have some people
 working on changing the way DMA engine selects channels.  Meanwhile we
 have other people trying to create an OF DMA engine API.
 
 It seems that Vinod's working on a way for platforms to specify bindings
 to the DMA engine code, and the DMA engine code itself selects the
 appropriate channel.  This patch, on the other hand, introduces a set of
 translation functions which need to be provided by platform code,
 which returns the dma_chan pointer.
 
 This sounds like a recipe for a total abortion of interfaces.  Only one
 of those two activities should be going on at any one time, or if they
 have to occur, they need coordination so that the we don't end up with
 two totally different schemes.
 
 In the mad rush to DTify everything, don't make hasty decisions, because
 it is very difficult to change it later - especially something like this
 which defines how DT encodes this information.
We discussed this in KS and IMHO we need to merge these two approaches.

For DT bindings, I think the binding itself shouldn't change based on my
work but I would like these same bindings to help build the DMA engine
code mappings.

Now would it make sense to NOT merge these changes for 3.7 and postpone
to 3.8. I can host these patches on a topic branch and merge them when
we are ready. I plan to spend some good amount of time on my work this
week so we should be ready pretty soon.
One these changes are merged, users can start moving to this scheme.


-- 
~Vinod

--
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] ARM: OMAP: OMAP_DEBUG_LEDS needs to select LEDS_CLASS

2012-09-17 Thread Axel Lin
This fixes below build error when CONFIG_LEDS_CLASS is not set.

  LD  init/built-in.o
arch/arm/plat-omap/built-in.o: In function `fpga_probe':
arch/arm/plat-omap/debug-leds.c:113: undefined reference to 
`led_classdev_register'
make: *** [vmlinux] Error 1

Signed-off-by: Axel Lin axel@gmail.com
---
 arch/arm/plat-omap/Kconfig |1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index ca83a76..c262781 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -43,6 +43,7 @@ config OMAP_DEBUG_DEVICES
 
 config OMAP_DEBUG_LEDS
def_bool y if NEW_LEDS
+   select LEDS_CLASS
depends on OMAP_DEBUG_DEVICES
 
 config POWER_AVS_OMAP
-- 
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] mfd: Fix compile for twl-core.c by removing cpu_is_omap usage

2012-09-17 Thread Felipe Balbi
On Mon, Sep 17, 2012 at 01:29:44PM -0700, Tony Lindgren wrote:
 Commit 7d7e1eba (ARM: OMAP2+: Prepare for irqs.h removal) broke
 compile for non-omap as include plat/cpu.h was added:
 
 drivers/mfd/twl-core.c:49:22: fatal error: plat/cpu.h: No such file or 
 directory
 
 This header was indirectly included earlier when SPARSE_IRQ was not
 set, but does not exist on most platforms.
 
 Fix the problem by removing the cpu_is_omap usage that should
 not exist in drivers at all. We can do this by adding proper
 clock aliases for the twl-core.c drivers, and drop separate
 handling for cases when clock framework is not available as
 the behaviour will stay the same.
 
 Note that we need to add a platform device to avoid using the
 i2c provided names that may be different on various omaps.
 
 Reported-by: Fengguang Wu fengguang...@intel.com
 Reported-by: Stephen Rothwell s...@canb.auug.org.au
 Cc: Paul Walmsley p...@pwsan.com
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Arnd Bergmann a...@arndb.de
 Cc: Olof Johansson o...@lixom.net
 Signed-off-by: Tony Lindgren t...@atomide.com

FWIW:

Reviewed-by: Felipe Balbi ba...@ti.com

 ---
 
 Samuel, I'd like to queue this via arm-soc as that's where I have
 the breaking patch is if this patch is OK with you.
 
 --- a/arch/arm/mach-omap2/clock2430_data.c
 +++ b/arch/arm/mach-omap2/clock2430_data.c
 @@ -1856,6 +1856,7 @@ static struct omap_clk omap2430_clks[] = {
   CLK(NULL,   func_32k_ck,  func_32k_ck,   CK_243X),
   CLK(NULL,   secure_32k_ck, secure_32k_ck, CK_243X),
   CLK(NULL,   osc_ck,   osc_ck,CK_243X),
 + CLK(twl,  fck,  osc_ck,CK_243X),
   CLK(NULL,   sys_ck,   sys_ck,CK_243X),
   CLK(NULL,   alt_ck,   alt_ck,CK_243X),
   CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_243X),
 --- a/arch/arm/mach-omap2/clock3xxx_data.c
 +++ b/arch/arm/mach-omap2/clock3xxx_data.c
 @@ -3226,6 +3226,7 @@ static struct omap_clk omap3xxx_clks[] = {
   CLK(NULL,   virt_2600_ck, virt_2600_ck,  
 CK_3XXX),
   CLK(NULL,   virt_38_4m_ck, virt_38_4m_ck, CK_3XXX),
   CLK(NULL,   osc_sys_ck,   osc_sys_ck,CK_3XXX),
 + CLK(twl,  fck,  osc_sys_ck,CK_3XXX),
   CLK(NULL,   sys_ck,   sys_ck,CK_3XXX),
   CLK(NULL,   sys_altclk,   sys_altclk,CK_3XXX),
   CLK(NULL,   mcbsp_clks,   mcbsp_clks,CK_3XXX),
 --- a/drivers/mfd/twl-core.c
 +++ b/drivers/mfd/twl-core.c
 @@ -46,8 +46,6 @@
  #include linux/i2c.h
  #include linux/i2c/twl.h
  
 -#include plat/cpu.h
 -
  #include twl-core.h
  
  /*
 @@ -1134,12 +1132,7 @@ static void clocks_init(struct device *dev,
   u32 rate;
   u8 ctrl = HFCLK_FREQ_26_MHZ;
  
 -#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
 - if (cpu_is_omap2430())
 - osc = clk_get(dev, osc_ck);
 - else
 - osc = clk_get(dev, osc_sys_ck);
 -
 + osc = clk_get(dev, fck);
   if (IS_ERR(osc)) {
   printk(KERN_WARNING Skipping twl internal clock init and 
   using bootloader value (unknown osc rate)\n);
 @@ -1149,18 +1142,6 @@ static void clocks_init(struct device *dev,
   rate = clk_get_rate(osc);
   clk_put(osc);
  
 -#else
 - /* REVISIT for non-OMAP systems, pass the clock rate from
 -  * board init code, using platform_data.
 -  */
 - osc = ERR_PTR(-EIO);
 -
 - printk(KERN_WARNING Skipping twl internal clock init and 
 -using bootloader value (unknown osc rate)\n);
 -
 - return;
 -#endif
 -
   switch (rate) {
   case 1920:
   ctrl = HFCLK_FREQ_19p2_MHZ;
 @@ -1222,10 +1203,23 @@ twl_probe(struct i2c_client *client, const struct 
 i2c_device_id *id)
  {
   struct twl4030_platform_data*pdata = client-dev.platform_data;
   struct device_node  *node = client-dev.of_node;
 + struct platform_device  *pdev;
   int irq_base = 0;
   int status;
   unsignedi, num_slaves;
  
 + pdev = platform_device_alloc(DRIVER_NAME, -1);
 + if (!pdev) {
 + dev_err(client-dev, can't alloc pdev\n);
 + return -ENOMEM;
 + }
 +
 + status = platform_device_add(pdev);
 + if (status) {
 + platform_device_put(pdev);
 + return status;
 + }
 +
   if (node  !pdata) {
   /*
* XXX: Temporary pdata until the information is correctly
 @@ -1234,23 +1228,30 @@ twl_probe(struct i2c_client *client, const struct 
 i2c_device_id *id)
   pdata = devm_kzalloc(client-dev,
sizeof(struct twl4030_platform_data),
GFP_KERNEL);
 - if (!pdata)
 - return -ENOMEM;
 + if (!pdata) {
 + status = -ENOMEM;
 +  

Re: [PATCH v2 1/2] spi: omap2-mcspi: add pinctrl support

2012-09-17 Thread Shubhrajyoti
On Monday 17 September 2012 10:52 PM, Matt Porter wrote:
 Adds pinctrl support to support OMAP platforms that boot from DT
 and rely on pinctrl support to set pinmuxes.

 Signed-off-by: Matt Porter mpor...@ti.com
 ---
looks good to me.
you may want to repost with Mark in cc to review.
Acked-by: Shubhrajyoti D shubhrajy...@ti.com

  drivers/spi/spi-omap2-mcspi.c |8 
  1 file changed, 8 insertions(+)

 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
 index b2fb141..9502566 100644
 --- a/drivers/spi/spi-omap2-mcspi.c
 +++ b/drivers/spi/spi-omap2-mcspi.c
 @@ -38,6 +38,8 @@
  #include linux/pm_runtime.h
  #include linux/of.h
  #include linux/of_device.h
 +#include linux/pinctrl/consumer.h
 +#include linux/err.h
  
  #include linux/spi/spi.h
  
 @@ -1124,6 +1126,7 @@ static int __devinit omap2_mcspi_probe(struct 
 platform_device *pdev)
   static int  bus_num = 1;
   struct device_node  *node = pdev-dev.of_node;
   const struct of_device_id *match;
 + struct pinctrl *pinctrl;
  
   master = spi_alloc_master(pdev-dev, sizeof *mcspi);
   if (master == NULL) {
 @@ -1219,6 +1222,11 @@ static int __devinit omap2_mcspi_probe(struct 
 platform_device *pdev)
   if (status  0)
   goto dma_chnl_free;
  
 + pinctrl = devm_pinctrl_get_select_default(pdev-dev);
 + if (IS_ERR(pinctrl))
 + dev_warn(pdev-dev,
 + pins are not configured from the driver\n);
 +
   pm_runtime_use_autosuspend(pdev-dev);
   pm_runtime_set_autosuspend_delay(pdev-dev, SPI_AUTOSUSPEND_TIMEOUT);
   pm_runtime_enable(pdev-dev);

--
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 v2] arm/dts: AM33XX: Add SPI device tree data

2012-09-17 Thread Philip, Avinash
Add McSPI data node to AM33XX device tree file. The McSPI module (and so
as the driver) is reused from OMAP4.

Signed-off-by: Philip, Avinash avinashphi...@ti.com
Tested-by: Matt Porter mpor...@ti.com
---
Changes since v1:
- Corrected reg offset in reg DT entry.

:100644 100644 ff3badb... 065fd54... M  arch/arm/boot/dts/am33xx.dtsi
 arch/arm/boot/dts/am33xx.dtsi |   25 +
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index ff3badb..065fd54 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -219,5 +219,30 @@
interrupt-parent = intc;
interrupts = 91;
};
+
+   spi0: spi@4803 {
+   compatible = ti,omap4-mcspi;
+   #address-cells = 1;
+   #size-cells = 0;
+   reg = 0x4803 0x400;
+   interrupt-parent = intc;
+   interrupt = 65;
+   ti,spi-num-cs = 2;
+   ti,hwmods = spi0;
+   status = disabled;
+
+   };
+
+   spi1: spi@481a {
+   compatible = ti,omap4-mcspi;
+   #address-cells = 1;
+   #size-cells = 0;
+   reg = 0x481a 0x400;
+   interrupt-parent = intc;
+   interrupt = 125;
+   ti,spi-num-cs = 2;
+   ti,hwmods = spi1;
+   status = disabled;
+   };
};
 };
-- 
1.7.4.1

--
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