Re: Odd behavior with dpll4_m4x2_ck on omap3 + DT

2013-09-13 Thread Stefan Roese
On 11.09.2013 09:21, Tomi Valkeinen wrote:
 On 10/09/13 16:17, Tero Kristo wrote:
 
 In theory, DPLLs can also be used in their bypass mode to feed customer
 nodes clocks. I just think the check in the clkoutx2_recalc is wrong,
 and should be enhanced to actually check what is the target mode for the
 clock once it is enabled. Maybe something like this would work properly:

 diff --git a/arch/arm/mach-omap2/dpll3xxx.c
 b/arch/arm/mach-omap2/dpll3xxx.c
 index 3a0296c..ba218fb 100644
 --- a/arch/arm/mach-omap2/dpll3xxx.c
 +++ b/arch/arm/mach-omap2/dpll3xxx.c
 @@ -658,14 +658,12 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw
 *hw,

 dd = pclk-dpll_data;

 -   WARN_ON(!dd-enable_mask);
 -
 -   v = __raw_readl(dd-control_reg)  dd-enable_mask;
 -   v = __ffs(dd-enable_mask);
 -   if ((v != OMAP3XXX_EN_DPLL_LOCKED) || (dd-flags  DPLL_J_TYPE))
 +   if ((dd-flags  DPLL_J_TYPE) ||
 +   __clk_get_rate(dd-clk_bypass) == __clk_get_rate(pclk))
 rate = parent_rate;
 else
 rate = parent_rate * 2;
 +
 return rate;
  }
 
 Stefan, are you able to test the above?
 
 I'd rather have a proper fix for this, than hack omapdss =).

Okay, I finally found some time to test this. The patch above generates
this warning:

arch/arm/mach-omap2/dpll3xxx.c: In function 'omap3_clkoutx2_recalc':
arch/arm/mach-omap2/dpll3xxx.c:663:6: warning: passing argument 1 of 
'__clk_get_rate' from incompatible pointer type [enabled by default]
include/linux/clk-provider.h:423:15: note: expected 'struct clk *' but argument 
is of type 'struct clk_hw_omap *'

I then changed it (not 100% sure if correctly) to this version:

+   if ((dd-flags  DPLL_J_TYPE) ||
+   __clk_get_rate(dd-clk_bypass) == __clk_get_rate(pclk-hw.clk))

And this seems to work. At least the clock rate mismatch warning does not
appear with this patch applied (and without the clk_enable) in the
bootlog any more.

Thanks,
Stefan

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja
Move omapdrm device creation inside the omap_display_init so that we can
correctly create the device based on the presence of omapdss.

Originally worked on by Andy Gross.

Cc: Andy Gross andy...@gmail.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 arch/arm/mach-omap2/Makefile  |  4 ---
 arch/arm/mach-omap2/display.c | 55 +++
 arch/arm/mach-omap2/drm.c | 67 ---
 3 files changed, 55 insertions(+), 71 deletions(-)
 delete mode 100644 arch/arm/mach-omap2/drm.c

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index ff2c162..f73b6a5 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -229,10 +229,6 @@ endif
 # OMAP2420 MSDI controller integration support (MMC)
 obj-$(CONFIG_SOC_OMAP2420) += msdi.o
 
-ifneq ($(CONFIG_DRM_OMAP),)
-obj-y  += drm.o
-endif
-
 # Specific board support
 obj-$(CONFIG_MACH_OMAP_GENERIC)+= board-generic.o
 obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 03a0516..d097d23 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -18,11 +18,13 @@
 #include linux/string.h
 #include linux/kernel.h
 #include linux/init.h
+#include linux/dma-mapping.h
 #include linux/platform_device.h
 #include linux/io.h
 #include linux/clk.h
 #include linux/err.h
 #include linux/delay.h
+#include linux/platform_data/omap_drm.h
 
 #include video/omapdss.h
 #include omap_hwmod.h
@@ -102,6 +104,52 @@ static const struct omap_dss_hwmod_data 
omap4_dss_hwmod_data[] __initconst = {
{ dss_hdmi, omapdss_hdmi, -1 },
 };
 
+#if defined(CONFIG_DRM_OMAP) || defined(CONFIG_DRM_OMAP_MODULE)
+
+static struct omap_drm_platform_data platform_drm_data;
+
+static struct platform_device drm_device = {
+   .dev = {
+   .coherent_dma_mask = DMA_BIT_MASK(32),
+   .platform_data = platform_drm_data,
+   },
+   .name = omapdrm,
+   .id = 0,
+};
+
+static struct platform_device *omap_drm_device = drm_device;
+#else
+static struct platform_device *omap_drm_device;
+#endif
+
+static int __init omapdrm_init(void)
+{
+   int r = 0;
+
+   /* create DRM and DMM device */
+   if (omap_drm_device != NULL) {
+   struct omap_hwmod *oh = NULL;
+   struct platform_device *pdev;
+
+   /* lookup and populate the DMM information, if present - OMAP4+ 
*/
+   oh = omap_hwmod_lookup(dmm);
+   if (oh) {
+   pdev = omap_device_build(oh-name, -1, oh, NULL, 0);
+   WARN(IS_ERR(pdev),
+   Could not build omap_device for %s\n,
+   oh-name);
+   }
+
+   platform_drm_data.omaprev = GET_OMAP_TYPE;
+
+   r = platform_device_register(omap_drm_device);
+   if (r  0)
+   pr_err(Unable to register omapdrm device\n);
+   }
+
+   return r;
+}
+
 static void __init omap4_tpd12s015_mux_pads(void)
 {
omap_mux_init_signal(hdmi_cec,
@@ -416,6 +464,13 @@ int __init omap_display_init(struct omap_dss_board_info 
*board_data)
}
}
 
+   /* create DRM and DMM device */
+   r = omapdrm_init();
+   if (r  0) {
+   pr_err(Unable to register omapdrm device\n);
+   return r;
+   }
+
return 0;
 }
 
diff --git a/arch/arm/mach-omap2/drm.c b/arch/arm/mach-omap2/drm.c
deleted file mode 100644
index 59a4af7..000
--- a/arch/arm/mach-omap2/drm.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * DRM/KMS device registration for TI OMAP platforms
- *
- * Copyright (C) 2012 Texas Instruments
- * Author: Rob Clark rob.cl...@linaro.org
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program.  If not, see http://www.gnu.org/licenses/.
- */
-
-#include linux/module.h
-#include linux/kernel.h
-#include linux/mm.h
-#include linux/init.h
-#include linux/platform_device.h
-#include linux/dma-mapping.h
-#include linux/platform_data/omap_drm.h
-
-#include soc.h
-#include omap_device.h
-#include omap_hwmod.h
-
-#if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE)
-
-static struct omap_drm_platform_data platform_data;
-
-static struct platform_device omap_drm_device = {
-   .dev = {
-   .coherent_dma_mask = DMA_BIT_MASK(32),
-   

[PATCH 3/4] drm: omap: Enable DT support for DMM

2013-09-13 Thread Archit Taneja
Enable use of DT for DMM/Tiler.

Originally worked on by Andy Gross.

Cc: Andy Gross andy...@gmail.com
Cc: DRI Development dri-de...@lists.freedesktop.org
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c 
b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
index acf6678..59f17de 100644
--- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
+++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
@@ -968,12 +968,23 @@ static const struct dev_pm_ops omap_dmm_pm_ops = {
 };
 #endif
 
+#if defined(CONFIG_OF)
+static const struct of_device_id dmm_of_match[] = {
+   { .compatible = ti,omap4-dmm, },
+   { .compatible = ti,omap5-dmm, },
+   {},
+};
+#else
+#define dmm_of_match NULL
+#endif
+
 struct platform_driver omap_dmm_driver = {
.probe = omap_dmm_probe,
.remove = omap_dmm_remove,
.driver = {
.owner = THIS_MODULE,
.name = DMM_DRIVER_NAME,
+   .of_match_table = dmm_of_match,
 #ifdef CONFIG_PM
.pm = omap_dmm_pm_ops,
 #endif
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/4] arm: omap: display: Don't build device for DMM

2013-09-13 Thread Archit Taneja
DMM exists on omap4+ platforms, these platforms will always boot with DT. Remove
the previous method of searching the dmm hwmod and building the device by
ourselves. Addition of a DMM nodes in DT will ensure a DMM device is built.

For OMAP4, the address and irq data for most hwmods were removed, so the older
method doesn't work anyway.

Cc: Andy Gross andy...@gmail.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 arch/arm/mach-omap2/display.c | 16 ++--
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index d097d23..e0642bd 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -126,20 +126,8 @@ static int __init omapdrm_init(void)
 {
int r = 0;
 
-   /* create DRM and DMM device */
+   /* create DRM device(DMM device created via DT) */
if (omap_drm_device != NULL) {
-   struct omap_hwmod *oh = NULL;
-   struct platform_device *pdev;
-
-   /* lookup and populate the DMM information, if present - OMAP4+ 
*/
-   oh = omap_hwmod_lookup(dmm);
-   if (oh) {
-   pdev = omap_device_build(oh-name, -1, oh, NULL, 0);
-   WARN(IS_ERR(pdev),
-   Could not build omap_device for %s\n,
-   oh-name);
-   }
-
platform_drm_data.omaprev = GET_OMAP_TYPE;
 
r = platform_device_register(omap_drm_device);
@@ -464,7 +452,7 @@ int __init omap_display_init(struct omap_dss_board_info 
*board_data)
}
}
 
-   /* create DRM and DMM device */
+   /* create DRM device */
r = omapdrm_init();
if (r  0) {
pr_err(Unable to register omapdrm device\n);
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/4] ARM: dts: OMAP4+: Add DMM bindings

2013-09-13 Thread Archit Taneja
Add Dynamic Memory Manager (DMM) bindings for OMAP4 and OMAP5 devices. DMM
only requires address and irq information.

Add documentation for the DMM bindings.

Originally worked on by Andy Gross.

Cc: Andy Gross andy...@gmail.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 Documentation/devicetree/bindings/arm/omap/dmm.txt | 17 +
 arch/arm/boot/dts/omap4.dtsi   |  7 +++
 arch/arm/boot/dts/omap5.dtsi   |  7 +++
 3 files changed, 31 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/omap/dmm.txt

diff --git a/Documentation/devicetree/bindings/arm/omap/dmm.txt 
b/Documentation/devicetree/bindings/arm/omap/dmm.txt
new file mode 100644
index 000..237cd83
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/omap/dmm.txt
@@ -0,0 +1,17 @@
+OMAP Dynamic Memory Manager (DMM) bindings
+
+Required properties:
+- compatible:  Must be ti,omap4-dmm for OMAP4 family
+   Must be ti,omap5-dmm for OMAP5 family
+- reg: Contains timer register address range (base address and length)
+- interrupts:  Contains interrupt information (source, etc) for the DMM IRQ
+- ti,hwmods:   Name of the hwmod associated to the counter, which is typically
+   dmm
+
+Example:
+
+dmm: dmm@4e00 {
+   compatible = ti,omap4-dmm;
+   reg = 0x4e00 0x800;
+   ti,hwmods = dmm;
+};
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 22d9f2b..24f388e 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -487,6 +487,13 @@
ti,hwmods = kbd;
};
 
+   dmm: dmm@4e00 {
+   compatible = ti,omap4-dmm;
+   reg = 0x4e00 0x800;
+   interrupts = 0 113 0x4;
+   ti,hwmods = dmm;
+   };
+
emif1: emif@4c00 {
compatible = ti,emif-4d;
reg = 0x4c00 0x100;
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index ac1f1e0..33b4fea 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -604,6 +604,13 @@
ti,hwmods = wd_timer2;
};
 
+   dmm: dmm@4e00 {
+   compatible = ti,omap5-dmm;
+   reg = 0x4e00 0x800;
+   interrupts = 0 113 0x4;
+   ti,hwmods = dmm;
+   };
+
emif1: emif@0x4c00 {
compatible  = ti,emif-4d5;
ti,hwmods   = emif1;
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/4] arm: omap: DMM DT adaptation

2013-09-13 Thread Archit Taneja
The DMM/Tiler block can used by omapdrm to allocate frame buffers. With the
removal of address and irq data from the omap4 hwmods, the probe of DMM driver
fails and omapdrm isn't able to utilize the DMM hardware.

Add DMM bindings for omap4 and omap5. Also, make sure DRM device is built only
when omapdss device is built. Currently, it can register itself even without
the presence of omapdss device being built.

Archit Taneja (4):
  arm: omap: display: Create omapdrm inside omap_display_init
  ARM: dts: OMAP4+: Add DMM bindings
  drm: omap: Enable DT support for DMM
  arm: omap: display: Don't build device for DMM

 Documentation/devicetree/bindings/arm/omap/dmm.txt | 17 ++
 arch/arm/boot/dts/omap4.dtsi   |  7 +++
 arch/arm/boot/dts/omap5.dtsi   |  7 +++
 arch/arm/mach-omap2/Makefile   |  4 --
 arch/arm/mach-omap2/display.c  | 43 ++
 arch/arm/mach-omap2/drm.c  | 67 --
 drivers/gpu/drm/omapdrm/omap_dmm_tiler.c   | 11 
 7 files changed, 85 insertions(+), 71 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/omap/dmm.txt
 delete mode 100644 arch/arm/mach-omap2/drm.c

-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 0/2] ARM: dts: Beaglebone MMC fixes

2013-09-13 Thread Koen Kooi

Op 13 sep. 2013, om 00:27 heeft Kevin Hilman khil...@linaro.org het volgende 
geschreven:

 Koen Kooi k...@dominion.thruhere.net writes:
 
 Here are two patches to fix MMC on beaglebone, one fixes card detect on BBW,
 the other adds the eMMC entry for BBB and its fixed regulator. After that 
 mmc1
 gets a nice speed boost by moving to 4-bit mode and LED triggers get 
 assigned.
 
 This series depends on:
 
 http://comments.gmane.org/gmane.linux.kernel.stable/63648
 https://lkml.org/lkml/2013/9/10/454
 http://comments.gmane.org/gmane.linux.kernel.mmc/22381
 
 Or as git-cherry would put it:
 
 [koen@rrMBP patches]$ git cherry -v
 + 564fc88cc64387af5312e2abd8019c75a13223b2 ARM: OMAP2+: am335x-bone*: add DT 
 for BeagleBone Black
 + e5133ed98acc1c3e01c370b851041a8ca629cd15 ARM: EDMA: Fix clearing of unused 
 list for DT DMA resources
 + ac71bb58605d3bdd5d14af770a639fb3ff11c612 ARM: dts: add AM33XX EDMA support
 + 31a8270a299c57c7de7510f44d9dc36fd1787243 ARM: dts: add AM33XX SPI DMA 
 support
 + 4fa0a4cb9ea17da30cf43085c03e5ec1361a4fc2 ARM: dts: add AM33XX MMC support 
 and documentation
 + 0553f50bd45f019a0cc11050e2f20bddbf07dfe0 ARM: dts: am335x-bone: add CD for 
 mmc1
 + 7d64f765630a2921a63b82f93f9959a6de37f29d ARM: dts: am335x-boneblack: add 
 eMMC DT entry
 + dc96cd4003e2668d8ec7e7fe19e402e97a198f81 ARM: dts: am335x-bone-common: 
 switch mmc1 to 4-bit mode
 + f8262e78830cda56c936724549ba9f04e312 ARM: dts: am335x-bone-common: add 
 cpu0 and mmc1 triggers
 
 Also available as a git branch at 
 https://github.com/koenkooi/linux/commits/mainline
 
 FWIW, tested this branch on BB black/white with MMC rootfs.
 
 Tested-by: Kevin Hilman khil...@linaro.org
 
 Koen, Thanks for your persistence getting this stuff merged.

No problem, with all comments addressed I can safely disappear for 3 weeks to 
go on honeymoon :)

regards,

Koen--
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/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 12:14, Archit Taneja wrote:
 Move omapdrm device creation inside the omap_display_init so that we can
 correctly create the device based on the presence of omapdss.
 
 Originally worked on by Andy Gross.

If the dmm device is present in the DT data, there is no need to create
the dmm device. It's created automatically.

Also, omapfb device is currently created the same way as omapdrm,
independently of omapdss. Why is it a problem to have them like that?

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 4/4] arm: omap: display: Don't build device for DMM

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 12:14, Archit Taneja wrote:
 DMM exists on omap4+ platforms, these platforms will always boot with DT. 
 Remove
 the previous method of searching the dmm hwmod and building the device by
 ourselves. Addition of a DMM nodes in DT will ensure a DMM device is built.
 
 For OMAP4, the address and irq data for most hwmods were removed, so the older
 method doesn't work anyway.
 
 Cc: Andy Gross andy...@gmail.com
 Signed-off-by: Archit Taneja arc...@ti.com
 ---
  arch/arm/mach-omap2/display.c | 16 ++--
  1 file changed, 2 insertions(+), 14 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
 index d097d23..e0642bd 100644
 --- a/arch/arm/mach-omap2/display.c
 +++ b/arch/arm/mach-omap2/display.c
 @@ -126,20 +126,8 @@ static int __init omapdrm_init(void)
  {
   int r = 0;
  
 - /* create DRM and DMM device */
 + /* create DRM device(DMM device created via DT) */
   if (omap_drm_device != NULL) {
 - struct omap_hwmod *oh = NULL;
 - struct platform_device *pdev;
 -
 - /* lookup and populate the DMM information, if present - OMAP4+ 
 */
 - oh = omap_hwmod_lookup(dmm);
 - if (oh) {
 - pdev = omap_device_build(oh-name, -1, oh, NULL, 0);
 - WARN(IS_ERR(pdev),
 - Could not build omap_device for %s\n,
 - oh-name);
 - }
 -
   platform_drm_data.omaprev = GET_OMAP_TYPE;

Ok, so you remove the DMM device creation here. Why not do this as a
first patch, before moving the DMM/DRM code?

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja

On Friday 13 September 2013 02:54 PM, Tomi Valkeinen wrote:

On 13/09/13 12:14, Archit Taneja wrote:

Move omapdrm device creation inside the omap_display_init so that we can
correctly create the device based on the presence of omapdss.

Originally worked on by Andy Gross.


If the dmm device is present in the DT data, there is no need to create
the dmm device. It's created automatically.


Yes, that is done in a later patch.



Also, omapfb device is currently created the same way as omapdrm,
independently of omapdss. Why is it a problem to have them like that?


In a multiplatform config, we might have CONFIG_DRM_OMAP and 
CONFIG_DRM_OMAP_MODULE selected.


This would cause the call omap_init_drm() in arch/arm/mach-omap2/drm.c 
to occur. Creating a platform device for omapdrm is unnecessary here 
isn't it? Tying it with the initialisation of omapdss devices prevents it.


Archit
--
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/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja

On Friday 13 September 2013 03:08 PM, Archit Taneja wrote:

On Friday 13 September 2013 02:54 PM, Tomi Valkeinen wrote:

On 13/09/13 12:14, Archit Taneja wrote:

Move omapdrm device creation inside the omap_display_init so that we can
correctly create the device based on the presence of omapdss.

Originally worked on by Andy Gross.


If the dmm device is present in the DT data, there is no need to create
the dmm device. It's created automatically.


Yes, that is done in a later patch.



Also, omapfb device is currently created the same way as omapdrm,
independently of omapdss. Why is it a problem to have them like that?


In a multiplatform config, we might have CONFIG_DRM_OMAP and
CONFIG_DRM_OMAP_MODULE selected.


I meant these configs might be selected even if the image is booted on 
am3xx platform.


Archit



This would cause the call omap_init_drm() in arch/arm/mach-omap2/drm.c
to occur. Creating a platform device for omapdrm is unnecessary here
isn't it? Tying it with the initialisation of omapdss devices prevents it.

Archit
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html




--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 12:38, Archit Taneja wrote:

 Also, omapfb device is currently created the same way as omapdrm,
 independently of omapdss. Why is it a problem to have them like that?
 
 In a multiplatform config, we might have CONFIG_DRM_OMAP and
 CONFIG_DRM_OMAP_MODULE selected.
 
 This would cause the call omap_init_drm() in arch/arm/mach-omap2/drm.c
 to occur. Creating a platform device for omapdrm is unnecessary here
 isn't it? Tying it with the initialisation of omapdss devices prevents it.

Well, omapdrm depends on omapdss in Kconfig. So if you have DRM enabled,
you also have DSS enabled.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 12:39, Archit Taneja wrote:
 On Friday 13 September 2013 03:08 PM, Archit Taneja wrote:
 On Friday 13 September 2013 02:54 PM, Tomi Valkeinen wrote:
 On 13/09/13 12:14, Archit Taneja wrote:
 Move omapdrm device creation inside the omap_display_init so that we
 can
 correctly create the device based on the presence of omapdss.

 Originally worked on by Andy Gross.

 If the dmm device is present in the DT data, there is no need to create
 the dmm device. It's created automatically.

 Yes, that is done in a later patch.


 Also, omapfb device is currently created the same way as omapdrm,
 independently of omapdss. Why is it a problem to have them like that?

 In a multiplatform config, we might have CONFIG_DRM_OMAP and
 CONFIG_DRM_OMAP_MODULE selected.
 
 I meant these configs might be selected even if the image is booted on
 am3xx platform.

Ah, I see. And the same omap_arch_initcall() is used for am3xxx also,
even if the DSS (and thus DRM) doesn't exist in the HW.

We have the same problem with omapfb, so it'd be good to include that in
the same series.

Hmm. If omap_generic_init() is called on am3xxx, it means we try to
create the dss stuff there also. It should fail to the DSS version
check, printing an error (at least I hope), but we really shouldn't even
call the dss init code on am3xxx.

I wonder how this should be fixed...

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja

On Friday 13 September 2013 03:18 PM, Tomi Valkeinen wrote:

On 13/09/13 12:39, Archit Taneja wrote:

On Friday 13 September 2013 03:08 PM, Archit Taneja wrote:

On Friday 13 September 2013 02:54 PM, Tomi Valkeinen wrote:

On 13/09/13 12:14, Archit Taneja wrote:

Move omapdrm device creation inside the omap_display_init so that we
can
correctly create the device based on the presence of omapdss.

Originally worked on by Andy Gross.


If the dmm device is present in the DT data, there is no need to create
the dmm device. It's created automatically.


Yes, that is done in a later patch.



Also, omapfb device is currently created the same way as omapdrm,
independently of omapdss. Why is it a problem to have them like that?


In a multiplatform config, we might have CONFIG_DRM_OMAP and
CONFIG_DRM_OMAP_MODULE selected.


I meant these configs might be selected even if the image is booted on
am3xx platform.


Ah, I see. And the same omap_arch_initcall() is used for am3xxx also,
even if the DSS (and thus DRM) doesn't exist in the HW.

We have the same problem with omapfb, so it'd be good to include that in
the same series.

Hmm. If omap_generic_init() is called on am3xxx, it means we try to
create the dss stuff there also. It should fail to the DSS version
check, printing an error (at least I hope), but we really shouldn't even
call the dss init code on am3xxx.

I wonder how this should be fixed...


The calls in omap_generic_init() check the machine type via 
of_machine_is_compatible(), even if it's a multiplatform image, the dtb 
should be only of one platform. So it wouldn't be called at all.


Archit

--
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/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 12:51, Archit Taneja wrote:

 The calls in omap_generic_init() check the machine type via
 of_machine_is_compatible(), even if it's a multiplatform image, the dtb
 should be only of one platform. So it wouldn't be called at all.

Hmm. BeagleBone is ti,am33xx. The Generic AM33XX (Flattened Device
Tree) machine definition uses omap_generic_init(). So if I'm not
missing something here, omap_generic_init() is called for BeagleBone.

 Tomi




signature.asc
Description: OpenPGP digital signature


[PATCH 0/3] mmc: omap_hsmmc: get rid of ti,non-removable

2013-09-13 Thread Sekhar Nori
Get rid of TI specific binding ti,non-removable in favour of the
generic binding present for the same purpose.

This patch set does not support the old binding anymore. So, yes,
it does introduce an ABI breakage. IMHO, it is not really worth
supporting both bindings ATM since DT-usage in OMAP is still very
nascent and almost always DTB and uImage are upgraded together.

The series applies to Koen's series titled ARM: dts: Beaglebone MMC fixes

The patch set is tested on Bone Black, but I could not get the eMMC
to detect on my board with or without this patch set. The removable
MMC/SD works though.

Sekhar Nori (3):
  mmc: omap_hsmmc: remove TI specific DT binding for non removable
cards
  ARM: OMAP2+: DT: start using generic binding for non-removable mmc
cards
  ARM: OMAP2+: BBB DT: mark eMMC as non removable

 Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt |5 ++---
 arch/arm/boot/dts/am335x-boneblack.dts  |1 +
 arch/arm/boot/dts/omap4-panda-common.dtsi   |2 +-
 arch/arm/boot/dts/omap4-sdp.dts |4 ++--
 arch/arm/boot/dts/omap4-var-som.dts |2 +-
 arch/arm/boot/dts/omap5-uevm.dts|4 ++--
 drivers/mmc/host/omap_hsmmc.c   |2 +-
 7 files changed, 10 insertions(+), 10 deletions(-)

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


[PATCH 1/3] mmc: omap_hsmmc: remove TI specific DT binding for non removable cards

2013-09-13 Thread Sekhar Nori
Remove the vendor specific ti,non-removable DT binding and
support the generic binding non-removable instead.

Signed-off-by: Sekhar Nori nsek...@ti.com
---
 Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt |5 ++---
 drivers/mmc/host/omap_hsmmc.c   |2 +-
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt 
b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 8c8908a..0d463b8 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -17,7 +17,6 @@ Optional properties:
 ti,dual-volt: boolean, supports dual voltage cards
 supply-name-supply: phandle to the regulator device tree node
 supply-name examples are vmmc, vmmc_aux etc
-ti,non-removable: non-removable slot (like eMMC)
 ti,needs-special-reset: Requires a special softreset sequence
 ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High 
Speed
 dmas: List of DMA specifiers with the controller specific format
@@ -38,7 +37,7 @@ Examples:
ti,dual-volt;
bus-width = 4;
vmmc-supply = vmmc; /* phandle to regulator node */
-   ti,non-removable;
+   non-removable;
};
 
 [generic DMA request binding]
@@ -50,7 +49,7 @@ Examples:
ti,dual-volt;
bus-width = 4;
vmmc-supply = vmmc; /* phandle to regulator node */
-   ti,non-removable;
+   non-removable;
dmas = edma 24
edma 25;
dma-names = tx, rx;
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 6ac63df..0cb06ff 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1738,7 +1738,7 @@ static struct omap_mmc_platform_data 
*of_get_hsmmc_pdata(struct device *dev)
pdata-slots[0].switch_pin = cd_gpio;
pdata-slots[0].gpio_wp = wp_gpio;
 
-   if (of_find_property(np, ti,non-removable, NULL)) {
+   if (of_find_property(np, non-removable, NULL)) {
pdata-slots[0].nonremovable = true;
pdata-slots[0].no_regulator_off_init = true;
}
-- 
1.7.10.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


[PATCH 3/3] ARM: OMAP2+: BBB DT: mark eMMC as non removable

2013-09-13 Thread Sekhar Nori
Mark the eMMC module on BeagleBone black as non removable.

Signed-off-by: Sekhar Nori nsek...@ti.com
---
 arch/arm/boot/dts/am335x-boneblack.dts |1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/am335x-boneblack.dts 
b/arch/arm/boot/dts/am335x-boneblack.dts
index f4703cf..58515dc 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -25,6 +25,7 @@
pinctrl-names = default;
pinctrl-0 = emmc_pins;
bus-width = 8;
+   non-removable;
status = okay;
ti,vcc-aux-disable-is-sleep;
 };
-- 
1.7.10.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


[PATCH 2/3] ARM: OMAP2+: DT: start using generic binding for non-removable mmc cards

2013-09-13 Thread Sekhar Nori
The TI specific binding for non-removable cards is now gone.
The driver supports the generic binding, start using it.

Signed-off-by: Sekhar Nori nsek...@ti.com
---
 arch/arm/boot/dts/omap4-panda-common.dtsi |2 +-
 arch/arm/boot/dts/omap4-sdp.dts   |4 ++--
 arch/arm/boot/dts/omap4-var-som.dts   |2 +-
 arch/arm/boot/dts/omap5-uevm.dts  |4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi 
b/arch/arm/boot/dts/omap4-panda-common.dtsi
index faa95b5..8dcefc0 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -314,7 +314,7 @@
 };
 
 mmc5 {
-   ti,non-removable;
+   non-removable;
bus-width = 4;
 };
 
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 7951b4e..ecce3f5 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -408,7 +408,7 @@
 mmc2 {
vmmc-supply = vaux1;
bus-width = 8;
-   ti,non-removable;
+   non-removable;
 };
 
 mmc3 {
@@ -421,7 +421,7 @@
 
 mmc5 {
bus-width = 4;
-   ti,non-removable;
+   non-removable;
 };
 
 emif1 {
diff --git a/arch/arm/boot/dts/omap4-var-som.dts 
b/arch/arm/boot/dts/omap4-var-som.dts
index b41269e..b25b9ad 100644
--- a/arch/arm/boot/dts/omap4-var-som.dts
+++ b/arch/arm/boot/dts/omap4-var-som.dts
@@ -76,7 +76,7 @@
 mmc1 {
vmmc-supply = vmmc;
ti,bus-width = 8;
-   ti,non-removable;
+   non-removable;
 };
 
 mmc2 {
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 65d7b60..67d6ed7 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -242,12 +242,12 @@
 mmc2 {
vmmc-supply = vmmcsd_fixed;
bus-width = 8;
-   ti,non-removable;
+   non-removable;
 };
 
 mmc3 {
bus-width = 4;
-   ti,non-removable;
+   non-removable;
 };
 
 mmc4 {
-- 
1.7.10.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


Re: [PATCH 3/3] ARM: OMAP2+: BBB DT: mark eMMC as non removable

2013-09-13 Thread Koen Kooi

Op 13 sep. 2013, om 12:09 heeft Sekhar Nori nsek...@ti.com het volgende 
geschreven:

 Mark the eMMC module on BeagleBone black as non removable.
 
 Signed-off-by: Sekhar Nori nsek...@ti.com

Acked-by: Koen Kooi k...@dominion.thruhere.net

 ---
 arch/arm/boot/dts/am335x-boneblack.dts |1 +
 1 file changed, 1 insertion(+)
 
 diff --git a/arch/arm/boot/dts/am335x-boneblack.dts 
 b/arch/arm/boot/dts/am335x-boneblack.dts
 index f4703cf..58515dc 100644
 --- a/arch/arm/boot/dts/am335x-boneblack.dts
 +++ b/arch/arm/boot/dts/am335x-boneblack.dts
 @@ -25,6 +25,7 @@
   pinctrl-names = default;
   pinctrl-0 = emmc_pins;
   bus-width = 8;
 + non-removable;
   status = okay;
   ti,vcc-aux-disable-is-sleep;
 };
 -- 
 1.7.10.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


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja

On Friday 13 September 2013 03:32 PM, Tomi Valkeinen wrote:

On 13/09/13 12:51, Archit Taneja wrote:


The calls in omap_generic_init() check the machine type via
of_machine_is_compatible(), even if it's a multiplatform image, the dtb
should be only of one platform. So it wouldn't be called at all.


Hmm. BeagleBone is ti,am33xx. The Generic AM33XX (Flattened Device
Tree) machine definition uses omap_generic_init(). So if I'm not
missing something here, omap_generic_init() is called for BeagleBone.


I was talking about the calls within omap_generic_init() :

omap_generic_init(void)
{
...
if (of_machine_is_compatible(ti,omap4-panda)) {
omap4_panda_display_init_of();
legacy_init_ehci_clk(auxclk3_ck);

}
}

omap4_panda_display_init_of() would be called only if a panda board dtb 
was used. Are you talking about these display calls, or something else?


Archit

--
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/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Tomi Valkeinen
On 13/09/13 13:17, Archit Taneja wrote:
 On Friday 13 September 2013 03:32 PM, Tomi Valkeinen wrote:
 On 13/09/13 12:51, Archit Taneja wrote:

 The calls in omap_generic_init() check the machine type via
 of_machine_is_compatible(), even if it's a multiplatform image, the dtb
 should be only of one platform. So it wouldn't be called at all.

 Hmm. BeagleBone is ti,am33xx. The Generic AM33XX (Flattened Device
 Tree) machine definition uses omap_generic_init(). So if I'm not
 missing something here, omap_generic_init() is called for BeagleBone.
 
 I was talking about the calls within omap_generic_init() :
 
 omap_generic_init(void)
 {
 ...
 if (of_machine_is_compatible(ti,omap4-panda)) {
 omap4_panda_display_init_of();
 legacy_init_ehci_clk(auxclk3_ck);
 
 }
 }
 
 omap4_panda_display_init_of() would be called only if a panda board dtb
 was used. Are you talking about these display calls, or something else?

Ah, right. I was looking at the DSS DT branch. There we have
omapdss_init_of() call from omap_generic_init(). So that is a problem,
but not in the mainline.

You're right, the current mainline doesn't call the DSS init function on
am33xx. But it does create omapfb and omapdrm devices, as you noted.

Well, those devices don't do any actual harm, but I agree that they
shouldn't be there. It's probably best to move the device creation into
display.c, as you did. Just include omapfb also, and maybe remove the
DMM creation as a first patch.

 Tomi




signature.asc
Description: OpenPGP digital signature


[PATCH 0/7] omapdss: HDMI: Fix register definitions and reg dump functions

2013-09-13 Thread Archit Taneja
These patches complete the OMAP4 HDMI register definitions for HDMI submodules
and make sure all the corresponding regdump functions dump all the registers.

Ricardo Neri (7):
  OMAPDSS: HDMI: OMAP4: Complete register definitions for wrapper
  OMAPDSS: HDMI: OMAP4: Complete dumping of wrapper registers
  OMAPDSS: HDMI: OMAP4: Complete register definitions for DPLL
  OMAPDSS: HDMI: OMAP4: Complete dumping of DPLL registers
  OMAPDSS: HDMI: OMAP4: Rename the HDMI_CORE_CTRL1 register
  OMAPDSS: HDMI: OMAP4: Complete register definitions for core
  OMAPDSS: HDMI: OMAP4: Complete dumping of core registers

 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 70 ++-
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h | 65 
 2 files changed, 118 insertions(+), 17 deletions(-)

-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/7] OMAPDSS: HDMI: OMAP4: Complete register definitions for wrapper

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add definitions for missing registers in the HDMI wrapper. Also, order
the registers by offset to improve readability.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
index 6ef2f92..469d436 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
@@ -31,9 +31,11 @@
 #define HDMI_WP_SYSCONFIG  0x10
 #define HDMI_WP_IRQSTATUS_RAW  0x24
 #define HDMI_WP_IRQSTATUS  0x28
-#define HDMI_WP_PWR_CTRL   0x40
 #define HDMI_WP_IRQENABLE_SET  0x2C
 #define HDMI_WP_IRQENABLE_CLR  0x30
+#define HDMI_WP_IRQWAKEEN  0x34
+#define HDMI_WP_PWR_CTRL   0x40
+#define HDMI_WP_DEBOUNCE   0x44
 #define HDMI_WP_VIDEO_CFG  0x50
 #define HDMI_WP_VIDEO_SIZE 0x60
 #define HDMI_WP_VIDEO_TIMING_H 0x68
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/7] OMAPDSS: HDMI: OMAP4: Complete dumping of wrapper registers

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add missing registers when dumping the HDMI wrapper. Also, order the dump by
offset to improve readability.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index 3dfe009..ecadd7a 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -859,8 +859,11 @@ void ti_hdmi_4xxx_wp_dump(struct hdmi_ip_data *ip_data, 
struct seq_file *s)
DUMPREG(HDMI_WP_SYSCONFIG);
DUMPREG(HDMI_WP_IRQSTATUS_RAW);
DUMPREG(HDMI_WP_IRQSTATUS);
-   DUMPREG(HDMI_WP_PWR_CTRL);
DUMPREG(HDMI_WP_IRQENABLE_SET);
+   DUMPREG(HDMI_WP_IRQENABLE_CLR);
+   DUMPREG(HDMI_WP_IRQWAKEEN);
+   DUMPREG(HDMI_WP_PWR_CTRL);
+   DUMPREG(HDMI_WP_DEBOUNCE);
DUMPREG(HDMI_WP_VIDEO_CFG);
DUMPREG(HDMI_WP_VIDEO_SIZE);
DUMPREG(HDMI_WP_VIDEO_TIMING_H);
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 5/7] OMAPDSS: HDMI: OMAP4: Rename the HDMI_CORE_CTRL1 register

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Rename the register to be aligned with the HDMI_CORE_SYS naming convention.
Also, update the naming of the #defines used for its fields.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 16 
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h | 11 ++-
 2 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index 46af726..ad5b820 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -527,7 +527,7 @@ static void hdmi_core_init(struct hdmi_core_video_config 
*video_cfg,
 static void hdmi_core_powerdown_disable(struct hdmi_ip_data *ip_data)
 {
pr_debug(Enter hdmi_core_powerdown_disable\n);
-   REG_FLD_MOD(hdmi_core_sys_base(ip_data), HDMI_CORE_CTRL1, 0x0, 0, 0);
+   REG_FLD_MOD(hdmi_core_sys_base(ip_data), HDMI_CORE_SYS_SYS_CTRL1, 0x0, 
0, 0);
 }
 
 static void hdmi_core_swreset_release(struct hdmi_ip_data *ip_data)
@@ -550,12 +550,12 @@ static void hdmi_core_video_config(struct hdmi_ip_data 
*ip_data,
void __iomem *core_sys_base = hdmi_core_sys_base(ip_data);
 
/* sys_ctrl1 default configuration not tunable */
-   r = hdmi_read_reg(core_sys_base, HDMI_CORE_CTRL1);
-   r = FLD_MOD(r, HDMI_CORE_CTRL1_VEN_FOLLOWVSYNC, 5, 5);
-   r = FLD_MOD(r, HDMI_CORE_CTRL1_HEN_FOLLOWHSYNC, 4, 4);
-   r = FLD_MOD(r, HDMI_CORE_CTRL1_BSEL_24BITBUS, 2, 2);
-   r = FLD_MOD(r, HDMI_CORE_CTRL1_EDGE_RISINGEDGE, 1, 1);
-   hdmi_write_reg(core_sys_base, HDMI_CORE_CTRL1, r);
+   r = hdmi_read_reg(core_sys_base, HDMI_CORE_SYS_SYS_CTRL1);
+   r = FLD_MOD(r, HDMI_CORE_SYS_SYS_CTRL1_VEN_FOLLOWVSYNC, 5, 5);
+   r = FLD_MOD(r, HDMI_CORE_SYS_SYS_CTRL1_HEN_FOLLOWHSYNC, 4, 4);
+   r = FLD_MOD(r, HDMI_CORE_SYS_SYS_CTRL1_BSEL_24BITBUS, 2, 2);
+   r = FLD_MOD(r, HDMI_CORE_SYS_SYS_CTRL1_EDGE_RISINGEDGE, 1, 1);
+   hdmi_write_reg(core_sys_base, HDMI_CORE_SYS_SYS_CTRL1, r);
 
REG_FLD_MOD(core_sys_base,
HDMI_CORE_SYS_VID_ACEN, cfg-ip_bus_width, 7, 6);
@@ -909,7 +909,7 @@ void ti_hdmi_4xxx_core_dump(struct hdmi_ip_data *ip_data, 
struct seq_file *s)
DUMPCORE(HDMI_CORE_SYS_DEV_IDH);
DUMPCORE(HDMI_CORE_SYS_DEV_REV);
DUMPCORE(HDMI_CORE_SYS_SRST);
-   DUMPCORE(HDMI_CORE_CTRL1);
+   DUMPCORE(HDMI_CORE_SYS_SYS_CTRL1);
DUMPCORE(HDMI_CORE_SYS_SYS_STAT);
DUMPCORE(HDMI_CORE_SYS_DE_DLY);
DUMPCORE(HDMI_CORE_SYS_DE_CTRL);
diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
index d1a2315..149abd8 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
@@ -53,7 +53,7 @@
 #define HDMI_CORE_SYS_DEV_IDH  0xC
 #define HDMI_CORE_SYS_DEV_REV  0x10
 #define HDMI_CORE_SYS_SRST 0x14
-#define HDMI_CORE_CTRL10x20
+#define HDMI_CORE_SYS_SYS_CTRL10x20
 #define HDMI_CORE_SYS_SYS_STAT 0x24
 #define HDMI_CORE_SYS_DE_DLY   0xC8
 #define HDMI_CORE_SYS_DE_CTRL  0xCC
@@ -72,10 +72,11 @@
 #define HDMI_CORE_SYS_UMASK1   0x1D4
 #define HDMI_CORE_SYS_TMDS_CTRL0x208
 
-#define HDMI_CORE_CTRL1_VEN_FOLLOWVSYNC0x1
-#define HDMI_CORE_CTRL1_HEN_FOLLOWHSYNC0x1
-#define HDMI_CORE_CTRL1_BSEL_24BITBUS  0x1
-#define HDMI_CORE_CTRL1_EDGE_RISINGEDGE0x1
+/* value definitions for HDMI_CORE_SYS_SYS_CTRL1 fields */
+#define HDMI_CORE_SYS_SYS_CTRL1_VEN_FOLLOWVSYNC0x1
+#define HDMI_CORE_SYS_SYS_CTRL1_HEN_FOLLOWHSYNC0x1
+#define HDMI_CORE_SYS_SYS_CTRL1_BSEL_24BITBUS  0x1
+#define HDMI_CORE_SYS_SYS_CTRL1_EDGE_RISINGEDGE0x1
 
 /* HDMI DDC E-DID */
 #define HDMI_CORE_DDC_ADDR 0x3B4
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/7] OMAPDSS: HDMI: OMAP4: Complete dumping of DPLL registers

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add the spread spectrum clock configuration registers to the DPLL dump.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index ecadd7a..46af726 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -886,6 +886,8 @@ void ti_hdmi_4xxx_pll_dump(struct hdmi_ip_data *ip_data, 
struct seq_file *s)
DUMPPLL(PLLCTRL_CFG1);
DUMPPLL(PLLCTRL_CFG2);
DUMPPLL(PLLCTRL_CFG3);
+   DUMPPLL(PLLCTRL_SSC_CFG1);
+   DUMPPLL(PLLCTRL_SSC_CFG2);
DUMPPLL(PLLCTRL_CFG4);
 }
 
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/7] OMAPDSS: HDMI: OMAP4: Complete register definitions for DPLL

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add missing register definitions for spread spectrum clocking.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
index 469d436..d1a2315 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
@@ -168,6 +168,8 @@
 #define PLLCTRL_CFG1   0xC
 #define PLLCTRL_CFG2   0x10
 #define PLLCTRL_CFG3   0x14
+#define PLLCTRL_SSC_CFG1   0x18
+#define PLLCTRL_SSC_CFG2   0x1C
 #define PLLCTRL_CFG4   0x20
 
 /* HDMI PHY */
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 7/7] OMAPDSS: HDMI: OMAP4: Complete dumping of core registers

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add missing register entries when dumping the core.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 47 ++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index ad5b820..fd4172b 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -911,6 +911,7 @@ void ti_hdmi_4xxx_core_dump(struct hdmi_ip_data *ip_data, 
struct seq_file *s)
DUMPCORE(HDMI_CORE_SYS_SRST);
DUMPCORE(HDMI_CORE_SYS_SYS_CTRL1);
DUMPCORE(HDMI_CORE_SYS_SYS_STAT);
+   DUMPCORE(HDMI_CORE_SYS_SYS_CTRL3);
DUMPCORE(HDMI_CORE_SYS_DE_DLY);
DUMPCORE(HDMI_CORE_SYS_DE_CTRL);
DUMPCORE(HDMI_CORE_SYS_DE_TOP);
@@ -918,14 +919,58 @@ void ti_hdmi_4xxx_core_dump(struct hdmi_ip_data *ip_data, 
struct seq_file *s)
DUMPCORE(HDMI_CORE_SYS_DE_CNTH);
DUMPCORE(HDMI_CORE_SYS_DE_LINL);
DUMPCORE(HDMI_CORE_SYS_DE_LINH_1);
+   DUMPCORE(HDMI_CORE_SYS_HRES_L);
+   DUMPCORE(HDMI_CORE_SYS_HRES_H);
+   DUMPCORE(HDMI_CORE_SYS_VRES_L);
+   DUMPCORE(HDMI_CORE_SYS_VRES_H);
+   DUMPCORE(HDMI_CORE_SYS_IADJUST);
+   DUMPCORE(HDMI_CORE_SYS_POLDETECT);
+   DUMPCORE(HDMI_CORE_SYS_HWIDTH1);
+   DUMPCORE(HDMI_CORE_SYS_HWIDTH2);
+   DUMPCORE(HDMI_CORE_SYS_VWIDTH);
+   DUMPCORE(HDMI_CORE_SYS_VID_CTRL);
DUMPCORE(HDMI_CORE_SYS_VID_ACEN);
DUMPCORE(HDMI_CORE_SYS_VID_MODE);
+   DUMPCORE(HDMI_CORE_SYS_VID_BLANK1);
+   DUMPCORE(HDMI_CORE_SYS_VID_BLANK3);
+   DUMPCORE(HDMI_CORE_SYS_VID_BLANK1);
+   DUMPCORE(HDMI_CORE_SYS_DC_HEADER);
+   DUMPCORE(HDMI_CORE_SYS_VID_DITHER);
+   DUMPCORE(HDMI_CORE_SYS_RGB2XVYCC_CT);
+   DUMPCORE(HDMI_CORE_SYS_R2Y_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_R2Y_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_G2Y_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_G2Y_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_B2Y_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_B2Y_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_R2CB_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_R2CB_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_G2CB_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_G2CB_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_B2CB_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_B2CB_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_R2CR_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_R2CR_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_G2CR_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_G2CR_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_B2CR_COEFF_LOW);
+   DUMPCORE(HDMI_CORE_SYS_B2CR_COEFF_UP);
+   DUMPCORE(HDMI_CORE_SYS_RGB_OFFSET_LOW);
+   DUMPCORE(HDMI_CORE_SYS_RGB_OFFSET_UP);
+   DUMPCORE(HDMI_CORE_SYS_Y_OFFSET_LOW);
+   DUMPCORE(HDMI_CORE_SYS_Y_OFFSET_UP);
+   DUMPCORE(HDMI_CORE_SYS_CBCR_OFFSET_LOW);
+   DUMPCORE(HDMI_CORE_SYS_CBCR_OFFSET_UP);
DUMPCORE(HDMI_CORE_SYS_INTR_STATE);
DUMPCORE(HDMI_CORE_SYS_INTR1);
DUMPCORE(HDMI_CORE_SYS_INTR2);
DUMPCORE(HDMI_CORE_SYS_INTR3);
DUMPCORE(HDMI_CORE_SYS_INTR4);
-   DUMPCORE(HDMI_CORE_SYS_UMASK1);
+   DUMPCORE(HDMI_CORE_SYS_INTR_UNMASK1);
+   DUMPCORE(HDMI_CORE_SYS_INTR_UNMASK2);
+   DUMPCORE(HDMI_CORE_SYS_INTR_UNMASK3);
+   DUMPCORE(HDMI_CORE_SYS_INTR_UNMASK4);
+   DUMPCORE(HDMI_CORE_SYS_INTR_CTRL);
DUMPCORE(HDMI_CORE_SYS_TMDS_CTRL);
 
DUMPCORE(HDMI_CORE_DDC_ADDR);
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 6/7] OMAPDSS: HDMI: OMAP4: Complete register definitions for core

2013-09-13 Thread Archit Taneja
From: Ricardo Neri ricardo.n...@ti.com

Add missing register definitions; mainly for colorspace conversion, video
timing and interrupt handling.

Signed-off-by: Ricardo Neri ricardo.n...@ti.com
Signed-off-by: Archit Taneja arc...@ti.com
---
 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h | 48 ++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h 
b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
index 149abd8..b25269c 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.h
@@ -55,6 +55,8 @@
 #define HDMI_CORE_SYS_SRST 0x14
 #define HDMI_CORE_SYS_SYS_CTRL10x20
 #define HDMI_CORE_SYS_SYS_STAT 0x24
+#define HDMI_CORE_SYS_SYS_CTRL30x28
+#define HDMI_CORE_SYS_DCTL 0x34
 #define HDMI_CORE_SYS_DE_DLY   0xC8
 #define HDMI_CORE_SYS_DE_CTRL  0xCC
 #define HDMI_CORE_SYS_DE_TOP   0xD0
@@ -62,14 +64,58 @@
 #define HDMI_CORE_SYS_DE_CNTH  0xDC
 #define HDMI_CORE_SYS_DE_LINL  0xE0
 #define HDMI_CORE_SYS_DE_LINH_10xE4
+#define HDMI_CORE_SYS_HRES_L   0xE8
+#define HDMI_CORE_SYS_HRES_H   0xEC
+#define HDMI_CORE_SYS_VRES_L   0xF0
+#define HDMI_CORE_SYS_VRES_H   0xF4
+#define HDMI_CORE_SYS_IADJUST  0xF8
+#define HDMI_CORE_SYS_POLDETECT0xFC
+#define HDMI_CORE_SYS_HWIDTH1  0x110
+#define HDMI_CORE_SYS_HWIDTH2  0x114
+#define HDMI_CORE_SYS_VWIDTH   0x11C
+#define HDMI_CORE_SYS_VID_CTRL 0x120
 #define HDMI_CORE_SYS_VID_ACEN 0x124
 #define HDMI_CORE_SYS_VID_MODE 0x128
+#define HDMI_CORE_SYS_VID_BLANK1   0x12C
+#define HDMI_CORE_SYS_VID_BLANK2   0x130
+#define HDMI_CORE_SYS_VID_BLANK3   0x134
+#define HDMI_CORE_SYS_DC_HEADER0x138
+#define HDMI_CORE_SYS_VID_DITHER   0x13C
+#define HDMI_CORE_SYS_RGB2XVYCC_CT 0x140
+#define HDMI_CORE_SYS_R2Y_COEFF_LOW0x144
+#define HDMI_CORE_SYS_R2Y_COEFF_UP 0x148
+#define HDMI_CORE_SYS_G2Y_COEFF_LOW0x14C
+#define HDMI_CORE_SYS_G2Y_COEFF_UP 0x150
+#define HDMI_CORE_SYS_B2Y_COEFF_LOW0x154
+#define HDMI_CORE_SYS_B2Y_COEFF_UP 0x158
+#define HDMI_CORE_SYS_R2CB_COEFF_LOW   0x15C
+#define HDMI_CORE_SYS_R2CB_COEFF_UP0x160
+#define HDMI_CORE_SYS_G2CB_COEFF_LOW   0x164
+#define HDMI_CORE_SYS_G2CB_COEFF_UP0x168
+#define HDMI_CORE_SYS_B2CB_COEFF_LOW   0x16C
+#define HDMI_CORE_SYS_B2CB_COEFF_UP0x170
+#define HDMI_CORE_SYS_R2CR_COEFF_LOW   0x174
+#define HDMI_CORE_SYS_R2CR_COEFF_UP0x178
+#define HDMI_CORE_SYS_G2CR_COEFF_LOW   0x17C
+#define HDMI_CORE_SYS_G2CR_COEFF_UP0x180
+#define HDMI_CORE_SYS_B2CR_COEFF_LOW   0x184
+#define HDMI_CORE_SYS_B2CR_COEFF_UP0x188
+#define HDMI_CORE_SYS_RGB_OFFSET_LOW   0x18C
+#define HDMI_CORE_SYS_RGB_OFFSET_UP0x190
+#define HDMI_CORE_SYS_Y_OFFSET_LOW 0x194
+#define HDMI_CORE_SYS_Y_OFFSET_UP  0x198
+#define HDMI_CORE_SYS_CBCR_OFFSET_LOW  0x19C
+#define HDMI_CORE_SYS_CBCR_OFFSET_UP   0x1A0
 #define HDMI_CORE_SYS_INTR_STATE   0x1C0
 #define HDMI_CORE_SYS_INTR10x1C4
 #define HDMI_CORE_SYS_INTR20x1C8
 #define HDMI_CORE_SYS_INTR30x1CC
 #define HDMI_CORE_SYS_INTR40x1D0
-#define HDMI_CORE_SYS_UMASK1   0x1D4
+#define HDMI_CORE_SYS_INTR_UNMASK1 0x1D4
+#define HDMI_CORE_SYS_INTR_UNMASK2 0x1D8
+#define HDMI_CORE_SYS_INTR_UNMASK3 0x1DC
+#define HDMI_CORE_SYS_INTR_UNMASK4 0x1E0
+#define HDMI_CORE_SYS_INTR_CTRL0x1E4
 #define HDMI_CORE_SYS_TMDS_CTRL0x208
 
 /* value definitions for HDMI_CORE_SYS_SYS_CTRL1 fields */
-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] arm: omap: display: Create omapdrm inside omap_display_init

2013-09-13 Thread Archit Taneja

On Friday 13 September 2013 03:54 PM, Tomi Valkeinen wrote:

On 13/09/13 13:17, Archit Taneja wrote:

On Friday 13 September 2013 03:32 PM, Tomi Valkeinen wrote:

On 13/09/13 12:51, Archit Taneja wrote:


The calls in omap_generic_init() check the machine type via
of_machine_is_compatible(), even if it's a multiplatform image, the dtb
should be only of one platform. So it wouldn't be called at all.


Hmm. BeagleBone is ti,am33xx. The Generic AM33XX (Flattened Device
Tree) machine definition uses omap_generic_init(). So if I'm not
missing something here, omap_generic_init() is called for BeagleBone.


I was talking about the calls within omap_generic_init() :

omap_generic_init(void)
{
 ...
 if (of_machine_is_compatible(ti,omap4-panda)) {
 omap4_panda_display_init_of();
 legacy_init_ehci_clk(auxclk3_ck);

 }
}

omap4_panda_display_init_of() would be called only if a panda board dtb
was used. Are you talking about these display calls, or something else?


Ah, right. I was looking at the DSS DT branch. There we have
omapdss_init_of() call from omap_generic_init(). So that is a problem,
but not in the mainline.

You're right, the current mainline doesn't call the DSS init function on
am33xx. But it does create omapfb and omapdrm devices, as you noted.

Well, those devices don't do any actual harm, but I agree that they
shouldn't be there. It's probably best to move the device creation into
display.c, as you did. Just include omapfb also, and maybe remove the
DMM creation as a first patch.


Sure, I'll do that.

I'm not sure either about how to deal with the direct call to 
omapdss_init_of().


Archit

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/3] ARM: OMAP2+: BBB DT: mark eMMC as non removable

2013-09-13 Thread Sekhar Nori
On Friday 13 September 2013 03:39 PM, Sekhar Nori wrote:
 Mark the eMMC module on BeagleBone black as non removable.
 
 Signed-off-by: Sekhar Nori nsek...@ti.com

The patches which touch dts files are not really following the subject
line conventions. I will fix that and send a v2.

Thanks to Nishant for pointing out.

Thanks,
Sekhar
--
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: Odd behavior with dpll4_m4x2_ck on omap3 + DT

2013-09-13 Thread Tero Kristo

On 09/13/2013 10:51 AM, Stefan Roese wrote:

On 11.09.2013 09:21, Tomi Valkeinen wrote:

On 10/09/13 16:17, Tero Kristo wrote:


In theory, DPLLs can also be used in their bypass mode to feed customer
nodes clocks. I just think the check in the clkoutx2_recalc is wrong,
and should be enhanced to actually check what is the target mode for the
clock once it is enabled. Maybe something like this would work properly:

diff --git a/arch/arm/mach-omap2/dpll3xxx.c
b/arch/arm/mach-omap2/dpll3xxx.c
index 3a0296c..ba218fb 100644
--- a/arch/arm/mach-omap2/dpll3xxx.c
+++ b/arch/arm/mach-omap2/dpll3xxx.c
@@ -658,14 +658,12 @@ unsigned long omap3_clkoutx2_recalc(struct clk_hw
*hw,

 dd = pclk-dpll_data;

-   WARN_ON(!dd-enable_mask);
-
-   v = __raw_readl(dd-control_reg)  dd-enable_mask;
-   v = __ffs(dd-enable_mask);
-   if ((v != OMAP3XXX_EN_DPLL_LOCKED) || (dd-flags  DPLL_J_TYPE))
+   if ((dd-flags  DPLL_J_TYPE) ||
+   __clk_get_rate(dd-clk_bypass) == __clk_get_rate(pclk))
 rate = parent_rate;
 else
 rate = parent_rate * 2;
+
 return rate;
  }


Stefan, are you able to test the above?

I'd rather have a proper fix for this, than hack omapdss =).


Okay, I finally found some time to test this. The patch above generates
this warning:

arch/arm/mach-omap2/dpll3xxx.c: In function 'omap3_clkoutx2_recalc':
arch/arm/mach-omap2/dpll3xxx.c:663:6: warning: passing argument 1 of 
'__clk_get_rate' from incompatible pointer type [enabled by default]
include/linux/clk-provider.h:423:15: note: expected 'struct clk *' but argument 
is of type 'struct clk_hw_omap *'


Yea sorry about that, I just quickly hacked the patch together without 
testing it at all. :P




I then changed it (not 100% sure if correctly) to this version:

+   if ((dd-flags  DPLL_J_TYPE) ||
+   __clk_get_rate(dd-clk_bypass) == __clk_get_rate(pclk-hw.clk))

And this seems to work. At least the clock rate mismatch warning does not
appear with this patch applied (and without the clk_enable) in the
bootlog any more.


Yea, looks good to me, however I guess I would like second opinion on 
this also.


-Tero

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/4] drm: omap: Enable DT support for DMM

2013-09-13 Thread Rob Clark
On Fri, Sep 13, 2013 at 5:14 AM, Archit Taneja arc...@ti.com wrote:
 Enable use of DT for DMM/Tiler.

 Originally worked on by Andy Gross.

looks good.. but do we want to get information about # of LUT's, etc,
from DT?  Or did we decide that we can reliably get this from the hw?
I lost track of that discussion (I guess Andy would remember)..

BR,
-R

 Cc: Andy Gross andy...@gmail.com
 Cc: DRI Development dri-de...@lists.freedesktop.org
 Signed-off-by: Archit Taneja arc...@ti.com
 ---
  drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 11 +++
  1 file changed, 11 insertions(+)

 diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c 
 b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
 index acf6678..59f17de 100644
 --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
 +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c
 @@ -968,12 +968,23 @@ static const struct dev_pm_ops omap_dmm_pm_ops = {
  };
  #endif

 +#if defined(CONFIG_OF)
 +static const struct of_device_id dmm_of_match[] = {
 +   { .compatible = ti,omap4-dmm, },
 +   { .compatible = ti,omap5-dmm, },
 +   {},
 +};
 +#else
 +#define dmm_of_match NULL
 +#endif
 +
  struct platform_driver omap_dmm_driver = {
 .probe = omap_dmm_probe,
 .remove = omap_dmm_remove,
 .driver = {
 .owner = THIS_MODULE,
 .name = DMM_DRIVER_NAME,
 +   .of_match_table = dmm_of_match,
  #ifdef CONFIG_PM
 .pm = omap_dmm_pm_ops,
  #endif
 --
 1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 1/4] DRIVERS: IRQCHIP: Add crossbar irqchip driver

2013-09-13 Thread Thomas Gleixner
On Thu, 12 Sep 2013, Santosh Shilimkar wrote:
 On Thursday 12 September 2013 08:26 PM, Thomas Gleixner wrote:
  Let me summarize:
  
 - GIC supports up to 160 interrupts
  
 - CROSSBAR supports up to 250 interrupts 
  
 - CROSSBAR routes up to 160 out of 250 interrupts to the GIC ones
  
 - Drivers request a CROSSBAR interrupt number which must be mapped
   to some arbitrary available GIC irq number
  
 Correct.
 
  So basically the CROSSBAR mechanism is pretty much the same as MSI[X]
  just in a different flavour and with a different set of semantics and
  limitations, i.e. poor mans MSI[X] with a new level of bogosity.
  
  So if CROSSBAR is going to be the new fangled SoC MSI[X] long term
  equivalent then you better provide some infrastructure for that and
  make the drivers ready to use it. Maybe check with the PCI/MSI folks
  to share some of the interfaces.
 
  If that whole thing is another onetime HW designers wet dream, then
  please go back to the limited but completely functional (Who is going
  to use more than 160 peripheral interrupts) device tree model. I
  really have no interest to support hardware designer brain farts.
  
 Thanks for clear NAK for irqchip approach. I should have looped you
 in the discussion where I was also suggesting against the irqchip
 approach. We will try to look at MSI stuff but if its get too
 complicated am going to fall-back to the initial probe based
 approach to achieve the functionality.

Before you dig into MSI, lets talk about irq domains first.

GIC implements a legacy irq domain, i.e. a linear domain of all
possible GIC interrupts with a 1:1 mapping.

So why can't you make use of irq domains and have the whole routing
business implemented sanely?

What's needed is in gic_init_bases():

   if (of_property_read(node, routable_irqs, nr_routable_irqs) {
  irq_domain_add_legacy(nr_gic_irqs);
   } else {
  irq_domain_add_legacy(nr_per_cpu_irqs);
  irq_domain_add_linear(nr_routable_irqs);
   }

Now that separate domain has an xlate function which grabs a free GIC
irq from a bitmap and returns the hardware irq number in the gic
space. The map/unmap callbacks take care of setting up / tearing down
the route in the crossbar.

Thoughts?

Thanks,

tglx
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 1/4] DRIVERS: IRQCHIP: Add crossbar irqchip driver

2013-09-13 Thread Santosh Shilimkar
On Friday 13 September 2013 10:24 AM, Thomas Gleixner wrote:
 On Thu, 12 Sep 2013, Santosh Shilimkar wrote:
 On Thursday 12 September 2013 08:26 PM, Thomas Gleixner wrote:
 Let me summarize:

- GIC supports up to 160 interrupts

- CROSSBAR supports up to 250 interrupts 

- CROSSBAR routes up to 160 out of 250 interrupts to the GIC ones

- Drivers request a CROSSBAR interrupt number which must be mapped
  to some arbitrary available GIC irq number

 Correct.

 So basically the CROSSBAR mechanism is pretty much the same as MSI[X]
 just in a different flavour and with a different set of semantics and
 limitations, i.e. poor mans MSI[X] with a new level of bogosity.

 So if CROSSBAR is going to be the new fangled SoC MSI[X] long term
 equivalent then you better provide some infrastructure for that and
 make the drivers ready to use it. Maybe check with the PCI/MSI folks
 to share some of the interfaces.

 If that whole thing is another onetime HW designers wet dream, then
 please go back to the limited but completely functional (Who is going
 to use more than 160 peripheral interrupts) device tree model. I
 really have no interest to support hardware designer brain farts.

 Thanks for clear NAK for irqchip approach. I should have looped you
 in the discussion where I was also suggesting against the irqchip
 approach. We will try to look at MSI stuff but if its get too
 complicated am going to fall-back to the initial probe based
 approach to achieve the functionality.
 
 Before you dig into MSI, lets talk about irq domains first.
 
 GIC implements a legacy irq domain, i.e. a linear domain of all
 possible GIC interrupts with a 1:1 mapping.
 
 So why can't you make use of irq domains and have the whole routing
 business implemented sanely?
 
 What's needed is in gic_init_bases():
 
if (of_property_read(node, routable_irqs, nr_routable_irqs) {
 irq_domain_add_legacy(nr_gic_irqs);
} else {
 irq_domain_add_legacy(nr_per_cpu_irqs);
 irq_domain_add_linear(nr_routable_irqs);
}
 
 Now that separate domain has an xlate function which grabs a free GIC
 irq from a bitmap and returns the hardware irq number in the gic
 space. The map/unmap callbacks take care of setting up / tearing down
 the route in the crossbar.
 
 Thoughts?
 
This sounds pretty good idea. We will explore above option.
Thanks Thomas.

Regards,
Santosh

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 2/4] ARM: dts: am335x-boneblack: add eMMC DT entry

2013-09-13 Thread Tony Lindgren
* Koen Kooi k...@dominion.thruhere.net [130912 11:43]:
 The pinmux is specified in am335x-bone-common.dtsi to be reused by the eMMC 
 cape.
 
 Signed-off-by: Koen Kooi k...@dominion.thruhere.net
 ---
  arch/arm/boot/dts/am335x-bone-common.dtsi | 22 ++
  arch/arm/boot/dts/am335x-boneblack.dts| 14 ++
  2 files changed, 36 insertions(+)
 
 diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi 
 b/arch/arm/boot/dts/am335x-bone-common.dtsi
 index 0d95d54..bc8d1a2 100644
 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi
 +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
 @@ -113,6 +113,21 @@
   0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
   ;
   };
 +
 + emmc_pins: pinmux_emmc_pins {
 + pinctrl-single,pins = 
 + 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* 
 gpmc_csn1.mmc1_clk, INPUT_PULLUP | MODE2 */
 + 0x84 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_csn2.mmc1_cmd, INPUT_PULLUP | MODE2 */
 + 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad0.mmc1_dat0, INPUT_PULLUP | MODE1 */
 + 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad1.mmc1_dat1, INPUT_PULLUP | MODE1 */
 + 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad2.mmc1_dat2, INPUT_PULLUP | MODE1 */
 + 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad3.mmc1_dat3, INPUT_PULLUP | MODE1 */
 + 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad4.mmc1_dat4, INPUT_PULLUP | MODE1 */
 + 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad5.mmc1_dat5, INPUT_PULLUP | MODE1 */
 + 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad6.mmc1_dat6, INPUT_PULLUP | MODE1 */
 + 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* 
 gpmc_ad7.mmc1_dat7, INPUT_PULLUP | MODE1 */
 + ;
 + };
   };
  
   ocp {

Here you can now use just the defines to make it a bit shorter:

0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */

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


omap4, panda: 3.11, dtb and wifi

2013-09-13 Thread Paolo Pisati
i know we switched to dtb-only booting, but what's happened to wifi?

3.5.x:
flag@flag-desktop:~$ ls -la /sys/bus/platform/devices/wl12xx/
total 0
drwxr-xr-x 5 root root0 set 13 17:26 .
drwxr-xr-x 4 root root0 set 13 17:26 ..
-rw-r--r-- 1 root root 4096 set 13 17:28 bt_coex_state
lrwxrwxrwx 1 root root0 set 13 17:27 driver - 
../../../../../../../../bus/platform/drivers/wl12xx_driver
-r 1 root root0 set 13 17:28 fwlog
-r--r--r-- 1 root root 4096 set 13 17:28 hw_pg_ver
drwxr-xr-x 3 root root0 set 13 17:27 ieee80211
-r--r--r-- 1 root root 4096 set 13 17:28 modalias
drwxr-xr-x 3 root root0 set 13 17:27 net
drwxr-xr-x 2 root root0 set 13 17:28 power
lrwxrwxrwx 1 root root0 set 13 17:27 subsystem - 
../../../../../../../../bus/platform
-rw-r--r-- 1 root root 4096 set 13 17:26 uevent

3.11.x:
flag@flag-desktop:~$ ls -la /sys/bus/platform/devices/wl*
ls: cannot access /sys/bus/platform/devices/wl*: No such file or directory

-- 
bye,
p.
--
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 0/3] mmc: omap_hsmmc: get rid of ti,non-removable

2013-09-13 Thread Tony Lindgren
* Sekhar Nori nsek...@ti.com [130913 03:18]:
 Get rid of TI specific binding ti,non-removable in favour of the
 generic binding present for the same purpose.

Looks like there's a different handling in the MMC driver
for no_regulator_off_init that's needed for eMMC. That needs to
be sorted out and tested first.
 
 This patch set does not support the old binding anymore. So, yes,
 it does introduce an ABI breakage. IMHO, it is not really worth
 supporting both bindings ATM since DT-usage in OMAP is still very
 nascent and almost always DTB and uImage are upgraded together.

The old bindings must be supported. It's not like we can just drop
them. We should just keep the old binding and parse it the same way
as the generic binding. That's a minimal amount of code.

After the issue with no_regulator_off_init has been solved, then
we can naturally update the existing .dts files to use the generic
binding.

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: Fix build error with context tracking calls

2013-09-13 Thread Frederic Weisbecker
On Tue, Sep 10, 2013 at 08:07:45AM -0700, Kevin Hilman wrote:
 Nicolas Pitre nicolas.pi...@linaro.org writes:
 
  Adding Kevin Hilman to the CC as he might be interested as well.
 
 Thanks, I'd already noticed this but was distracted getting arm-soc
 changes ready for the merge window.  Looking into it now.

Kevin, can you please try this patch? It built tested fine on ARM
and live tested correctly on x86. There should be no problem but
just in case.

Thanks!

---
From 9bb601401baea0a2b2eead3909a9f186d894d617 Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker fweis...@gmail.com
Date: Tue, 10 Sep 2013 00:54:17 +0200
Subject: [PATCH] arm: Fix build error with context tracking calls

ad65782fba50 (context_tracking: Optimize main APIs off case
with static key) converted context tracking main APIs to inline
functions and left ARM asm callers behind.

This can be easily fixed by making ARM calling the post static
keys context tracking functions. We just need to replicate the
static key checks there. We'll remove these later when ARM will
support the context tracking static keys.

Reported-by: Guenter Roeck li...@roeck-us.net
Reported-by: Russell King li...@arm.linux.org.uk
Signed-off-by: Frederic Weisbecker fweis...@gmail.com
Cc: Kevin Hilman khil...@linaro.org
Cc: Guenter Roeck li...@roeck-us.net
Cc: Nicolas Pitre nicolas.pi...@linaro.org
Cc: Anil Kumar anilk...@gmail.com
Cc: Tony Lindgren t...@atomide.com
Cc: Benoit Cousson b-cous...@ti.com
---
 arch/arm/kernel/entry-header.S |8 
 kernel/context_tracking.c  |   12 
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index de23a9b..39f89fb 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -329,10 +329,10 @@
 #ifdef CONFIG_CONTEXT_TRACKING
.if \save
stmdb   sp!, {r0-r3, ip, lr}
-   bl  user_exit
+   bl  context_tracking_user_exit
ldmia   sp!, {r0-r3, ip, lr}
.else
-   bl  user_exit
+   bl  context_tracking_user_exit
.endif
 #endif
.endm
@@ -341,10 +341,10 @@
 #ifdef CONFIG_CONTEXT_TRACKING
.if \save
stmdb   sp!, {r0-r3, ip, lr}
-   bl  user_enter
+   bl  context_tracking_user_enter
ldmia   sp!, {r0-r3, ip, lr}
.else
-   bl  user_enter
+   bl  context_tracking_user_enter
.endif
 #endif
.endm
diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index 247091b..859c8df 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -51,6 +51,15 @@ void context_tracking_user_enter(void)
unsigned long flags;
 
/*
+* Repeat the user_enter() check here because some archs may be calling
+* this from asm and if no CPU needs context tracking, they shouldn't
+* go further. We can remove that check here once these archs support 
the static key
+* check.
+*/
+   if (!static_key_false(context_tracking_enabled))
+   return;
+
+   /*
 * Some contexts may involve an exception occuring in an irq,
 * leading to that nesting:
 * rcu_irq_enter() rcu_user_exit() rcu_user_exit() rcu_irq_exit()
@@ -151,6 +160,9 @@ void context_tracking_user_exit(void)
 {
unsigned long flags;
 
+   if (!static_key_false(context_tracking_enabled))
+   return;
+
if (in_interrupt())
return;
 
-- 
1.7.5.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: omap4, panda: 3.11, dtb and wifi

2013-09-13 Thread Tony Lindgren
* Paolo Pisati p.pis...@gmail.com [130913 08:43]:
 i know we switched to dtb-only booting, but what's happened to wifi?
 
 3.5.x:
 flag@flag-desktop:~$ ls -la /sys/bus/platform/devices/wl12xx/
 total 0
 drwxr-xr-x 5 root root0 set 13 17:26 .
 drwxr-xr-x 4 root root0 set 13 17:26 ..
 -rw-r--r-- 1 root root 4096 set 13 17:28 bt_coex_state
 lrwxrwxrwx 1 root root0 set 13 17:27 driver - 
 ../../../../../../../../bus/platform/drivers/wl12xx_driver
 -r 1 root root0 set 13 17:28 fwlog
 -r--r--r-- 1 root root 4096 set 13 17:28 hw_pg_ver
 drwxr-xr-x 3 root root0 set 13 17:27 ieee80211
 -r--r--r-- 1 root root 4096 set 13 17:28 modalias
 drwxr-xr-x 3 root root0 set 13 17:27 net
 drwxr-xr-x 2 root root0 set 13 17:28 power
 lrwxrwxrwx 1 root root0 set 13 17:27 subsystem - 
 ../../../../../../../../bus/platform
 -rw-r--r-- 1 root root 4096 set 13 17:26 uevent
 
 3.11.x:
 flag@flag-desktop:~$ ls -la /sys/bus/platform/devices/wl*
 ls: cannot access /sys/bus/platform/devices/wl*: No such file or directory

Hmm it seems we're still missing the .dts entries. I'll post
two patches shortly, one for panda and one for 4430sdp.

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 1/2] ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for pandaboard

2013-09-13 Thread Tony Lindgren
Commit b42b9181 (ARM: OMAP2+: Remove board-omap4panda.c)
removed legacy booting in favor of device tree based booting
for pandaboard. That caused the WLAN to stop working as the
related .dts entries fell through the cracks.

The legacy muxing was setting pulls for GPIO 48 and 49, so let's
keep that behaviour for now to avoid further regressions for
BT and FM. Also input logic was enabled for MMC CLK line, but
I've verified that the input logic we don't need enabled for
CLK line as it's not bidirectional.

Also, we want to use non-removable instead of ti,non-removable
as the ti,non-removable also sets no_regulator_off_init which
is really not what we want as then wl12xx won't get powered
up and down which is needed for resetting it.

Note that looks like the WLAN interface fails to come up after
a warm reset, but that most likely was also happening with
the legacy booting and needs a separate fix.

Cc: Paolo Pisati p.pis...@gmail.com
Cc: Benoit Cousson bcous...@baylibre.com
Cc: Rajendra Nayak rna...@ti.com
Cc: Luciano Coelho l...@coelho.fi
Cc: devicetree-disc...@lists.ozlabs.org
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/boot/dts/omap4-panda-common.dtsi |   46 -
 1 file changed, 45 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi 
b/arch/arm/boot/dts/omap4-panda-common.dtsi
index faa95b5..814ab67 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -107,6 +107,19 @@
 */
clock-frequency = 1920;
};
+
+   /* regulator for wl12xx on sdio5 */
+   wl12xx_vmmc: wl12xx_vmmc {
+   pinctrl-names = default;
+   pinctrl-0 = wl12xx_gpio;
+   compatible = regulator-fixed;
+   regulator-name = vwl1271;
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   gpio = gpio2 11 0;
+   startup-delay-us = 7;
+   enable-active-high;
+   };
 };
 
 omap4_pmx_wkup {
@@ -235,6 +248,33 @@
0x1c (PIN_OUTPUT | MUX_MODE3)   /* gpio_wk8 */
;
};
+
+   /*
+* wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP
+* REVISIT: Are the pull-ups needed for GPIO 48 and 49?
+*/
+   wl12xx_gpio: pinmux_wl12xx_gpio {
+   pinctrl-single,pins = 
+   0x26 (PIN_OUTPUT | MUX_MODE3)   /* 
gpmc_a19.gpio_43 */
+   0x2c (PIN_OUTPUT | MUX_MODE3)   /* 
gpmc_a22.gpio_46 */
+   0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3)/* 
gpmc_a24.gpio_48 */
+   0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3)/* 
gpmc_a25.gpio_49 */
+   ;
+   };
+
+   /* wl12xx GPIO inputs and SDIO pins */
+   wl12xx_pins: pinmux_wl12xx_pins {
+   pinctrl-single,pins = 
+   0x38 (PIN_INPUT | MUX_MODE3)/* 
gpmc_ncs2.gpio_52 */
+   0x3a (PIN_INPUT | MUX_MODE3)/* 
gpmc_ncs3.gpio_53 */
+   0x108 (PIN_OUTPUT | MUX_MODE0)  /* 
sdmmc5_clk.sdmmc5_clk */
+   0x10a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc5_cmd.sdmmc5_cmd */
+   0x10c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc5_dat0.sdmmc5_dat0 */
+   0x10e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc5_dat1.sdmmc5_dat1 */
+   0x110 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc5_dat2.sdmmc5_dat2 */
+   0x112 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc5_dat3.sdmmc5_dat3 */
+   ;
+   };
 };
 
 i2c1 {
@@ -314,8 +354,12 @@
 };
 
 mmc5 {
-   ti,non-removable;
+   pinctrl-names = default;
+   pinctrl-0 = wl12xx_pins;
+   vmmc-supply = wl12xx_vmmc;
+   non-removable;
bus-width = 4;
+   cap-power-off-card;
 };
 
 emif1 {

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for blaze

2013-09-13 Thread Tony Lindgren
Commit 76787b3b (ARM: OMAP2+: Remove board-4430sdp.c)
removed legacy booting in favor of device tree based booting
for 4430sdp. That caused the WLAN to stop working as the
related .dts entries fell through the cracks.

I don't have the 1283 PG 2.21 connectivity device on my 4430sdp,
but the earlier version of this patch was tested by Luciano
Coelho. This version has left out the input logic for MMC CLK
line compared to the earlier version as that is not bidirectional,
and should be safe to do.

Cc: Benoit Cousson bcous...@baylibre.com
Cc: Rajendra Nayak rna...@ti.com
Cc: Luciano Coelho l...@coelho.fi
Cc: Ruslan Bilovol ruslan.bilo...@ti.com
Cc: devicetree-disc...@lists.ozlabs.org
Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/boot/dts/omap4-sdp.dts |   39 ++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 7951b4e..4f78380 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -140,6 +140,19 @@
DMic, Digital Mic,
Digital Mic, Digital Mic1 Bias;
};
+
+   /* regulator for wl12xx on sdio5 */
+   wl12xx_vmmc: wl12xx_vmmc {
+   pinctrl-names = default;
+   pinctrl-0 = wl12xx_gpio;
+   compatible = regulator-fixed;
+   regulator-name = vwl1271;
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   gpio = gpio2 22 0;
+   startup-delay-us = 7;
+   enable-active-high;
+   };
 };
 
 omap4_pmx_wkup {
@@ -295,6 +308,26 @@
0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
;
};
+
+   /* wl12xx GPIO output for WLAN_EN */
+   wl12xx_gpio: pinmux_wl12xx_gpio {
+   pinctrl-single,pins = 
+   0x3c (PIN_OUTPUT | MUX_MODE3)   /* 
gpmc_nwp.gpio_54 */
+   ;
+   };
+
+   /* wl12xx GPIO inputs and SDIO pins */
+   wl12xx_pins: pinmux_wl12xx_pins {
+   pinctrl-single,pins = 
+   0x3a (PIN_INPUT | MUX_MODE3)/* 
gpmc_ncs3.gpio_53 */
+   0x108 (PIN_OUTPUT | MUX_MODE3)  /* 
sdmmc5_clk.sdmmc5_clk */
+   0x10a (PIN_INPUT_PULLUP | MUX_MODE3)/* 
sdmmc5_cmd.sdmmc5_cmd */
+   0x10c (PIN_INPUT_PULLUP | MUX_MODE3)/* 
sdmmc5_dat0.sdmmc5_dat0 */
+   0x10e (PIN_INPUT_PULLUP | MUX_MODE3)/* 
sdmmc5_dat1.sdmmc5_dat1 */
+   0x110 (PIN_INPUT_PULLUP | MUX_MODE3)/* 
sdmmc5_dat2.sdmmc5_dat2 */
+   0x112 (PIN_INPUT_PULLUP | MUX_MODE3)/* 
sdmmc5_dat3.sdmmc5_dat3 */
+   ;
+   };
 };
 
 i2c1 {
@@ -420,8 +453,12 @@
 };
 
 mmc5 {
+   pinctrl-names = default;
+   pinctrl-0 = wl12xx_pins;
+   vmmc-supply = wl12xx_vmmc;
+   non-removable;
bus-width = 4;
-   ti,non-removable;
+   cap-power-off-card;
 };
 
 emif1 {

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/2] WLAN regression fixes for omap4 after moving to DT based booting

2013-09-13 Thread Tony Lindgren
Hi all,

Looks like these two patches are still missing as I did not
update the kernel on my panda for a while but was testing with
my 4430sdp that does not have the WLAN card..

Regards,

Tony

---

Tony Lindgren (2):
  ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for 
pandaboard
  ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus for blaze


 arch/arm/boot/dts/omap4-panda-common.dtsi |   46 -
 arch/arm/boot/dts/omap4-sdp.dts   |   39 -
 2 files changed, 83 insertions(+), 2 deletions(-)

-- 
Signature
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/3] mmc: omap_hsmmc: get rid of ti,non-removable

2013-09-13 Thread Balaji T K

On Friday 13 September 2013 09:07 PM, Tony Lindgren wrote:

* Sekhar Nori nsek...@ti.com [130913 03:18]:

Get rid of TI specific binding ti,non-removable in favour of the
generic binding present for the same purpose.


Looks like there's a different handling in the MMC driver
for no_regulator_off_init that's needed for eMMC. That needs to
be sorted out and tested first.


Hi Sekhar,

no_regulator_off_init is needed for eMMC detection on omap4 platforms.


This patch set does not support the old binding anymore. So, yes,
it does introduce an ABI breakage. IMHO, it is not really worth
supporting both bindings ATM since DT-usage in OMAP is still very
nascent and almost always DTB and uImage are upgraded together.


The old bindings must be supported. It's not like we can just drop
them. We should just keep the old binding and parse it the same way
as the generic binding. That's a minimal amount of code.

After the issue with no_regulator_off_init has been solved, then
we can naturally update the existing .dts files to use the generic
binding.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] arm: Fix build error with context tracking calls

2013-09-13 Thread Kevin Hilman
Frederic Weisbecker fweis...@gmail.com writes:

 On Tue, Sep 10, 2013 at 08:07:45AM -0700, Kevin Hilman wrote:
 Nicolas Pitre nicolas.pi...@linaro.org writes:
 
  Adding Kevin Hilman to the CC as he might be interested as well.
 
 Thanks, I'd already noticed this but was distracted getting arm-soc
 changes ready for the merge window.  Looking into it now.

 Kevin, can you please try this patch? It built tested fine on ARM
 and live tested correctly on x86. There should be no problem but
 just in case.

Tested-by: Kevin Hilman khil...@linaro.org

Things are back to working again on ARM.  Thanks for the fix, and for
build testing on ARM.  

As you noticed to test on ARM, we still have to carry that patch to
drop that 'depends on 64BIT' in order to build/test this... any more
thoughts on what the remaining obstacles there are?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3] ARM: EDMA: Fix clearing of unused list for DT DMA resources

2013-09-13 Thread Joel Fernandes
On 09/12/2013 04:58 AM, Sekhar Nori wrote:
 On Wednesday 11 September 2013 12:22 AM, Joel Fernandes wrote:
 HWMOD removal for MMC is breaking edma_start as the events are being manually
 triggered due to unused channel list not being clear.
[..]
 It is better to send one version with all comments fixed. Helps avoid
 confusion.

Ok, here is the final version with all comments fixed, please apply this one:

---8---
From: Joel Fernandes jo...@ti.com
Subject: [PATCH v4] ARM: EDMA: Fix clearing of unused list for DT DMA resources

HWMOD removal for MMC is breaking edma_start as the events are being manually
triggered due to unused channel list not being clear.

This patch fixes the issue, by reading the dmas property from the DT node if
it exists and clearing the bits in the unused channel list. For this purpose
we use the of_* helpers to parse the arguments in the dmas phandle list.

Reviewed-by: Sekhar Nori nsek...@ti.com
Reported-by: Balaji T K balaj...@ti.com
Cc: Pantel Antoniou pa...@antoniou-consulting.com
Signed-off-by: Joel Fernandes jo...@ti.com
---
Changes since v1, in v2 and v3:
- Reduced indentation of non-of case by returning from of-case
- Using of_* helpers for parsing

Note:
This patch should go into the merge window as it is a critical bug fix.

 arch/arm/common/edma.c | 23 +--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index 39ad030..43c7b22 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/edma.c
@@ -560,14 +560,33 @@ static int reserve_contiguous_slots(int ctlr, unsigned int
id,
 static int prepare_unused_channel_list(struct device *dev, void *data)
 {
struct platform_device *pdev = to_platform_device(dev);
-   int i, ctlr;
+   int i, count, ctlr;
+   struct of_phandle_args  dma_spec;

+   if (dev-of_node) {
+   count = of_property_count_strings(dev-of_node, dma-names);
+   if (count  0)
+   return 0;
+   for (i = 0; i  count; i++) {
+   if (of_parse_phandle_with_args(dev-of_node, dmas,
+  #dma-cells, i,
+  dma_spec))
+   continue;
+
+   ctlr = EDMA_CTLR(dma_spec.args[0]);
+   clear_bit(EDMA_CHAN_SLOT(dma_spec.args[0]),
+ edma_cc[ctlr]-edma_unused);
+   }
+   return 0;
+   }
+
+   /* For non-OF case */
for (i = 0; i  pdev-num_resources; i++) {
if ((pdev-resource[i].flags  IORESOURCE_DMA) 
(int)pdev-resource[i].start = 0) {
ctlr = EDMA_CTLR(pdev-resource[i].start);
clear_bit(EDMA_CHAN_SLOT(pdev-resource[i].start),
-   edma_cc[ctlr]-edma_unused);
+ edma_cc[ctlr]-edma_unused);
}
}

-- 
1.8.1.2

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] WLAN regression fixes for omap4 after moving to DT based booting

2013-09-13 Thread Olof Johansson
Hi,

Not related to wlan but with DT conversion; I noticed the following in
dmesg on Panda ES with omap2plus_defconfig on current mainline:

[0.00] smp_twd: clock not found -2

and:

[0.440399] omap-gpmc 5000.gpmc: error: clk_get


-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