Re: [PATCH 00/11] ARM: dts: sbc-t3x: add support for more boards

2014-02-23 Thread Igor Grinberg
ping x2!

On 02/12/14 14:38, Igor Grinberg wrote:
 ping!
 
 On 01/12/14 15:22, Dmitry Lifshitz wrote:
 Add support for CompuLab SBC-T3530 and SBC-T3517 boards:

 https://compulab.co.il/products/sbcs/sbc-t3530/
 https://compulab.co.il/products/sbcs/sbc-t3517/

 along with respective CoMs - CM-T3530 and CM-T3517:

 https://compulab.co.il/products/computer-on-modules/cm-t3530/
 https://compulab.co.il/products/computer-on-modules/cm-t3517/

 The device tree files have the following structure:

 omap3-cm-t3x.dtsi
  |
  |-- omap3-cm-t3x30.dtsi
  | |
  | |
  | | -  ---  
  | || CoM || Board || Base board |
  | | -  ---  
  | |omap3-sb-t35.dtsi
  | |  |
  | |-- omap3-cm-t3730.dts -- omap3-sbc-t3730.dts --|
  | |  |
  | |-- omap3-cm-t3530.dts -- omap3-sbc-t3530.dts --|
  ||
  | omap3-cm-t3517.dts -- omap3-sbc-t3517.dts --|


 where omap3-cm-t3730.dts, omap3-cm-t3530.dts, omap3-cm-t3517.dts
 contain CoMs specific data, while omap3-sbc-t3730.dts, omap3-sbc-t3530.dts,
 omap3-sbc-t3517.dts represent eval boards with respective core modules.

 This series is based on Tony's omap-for-v3.14/dt branch

 Dmitry Lifshitz (11):
   ARM: dts: sbc-t3x: refactor DT support
   ARM: dts: sbc-t3x: disable mmc3
   ARM: dts: sb-t35: fix Ethernet power supply
   ARM: dts: cm-t3x: add gpio-led pinmux
   ARM: dts: cm-t3x30: add twl4030 gpio pullups
   ARM: dts: cm-t3x30: add HS USB Host support
   ARM: dts: sbc-t3730: add pinmux for usb hub reset
   ARM: dts: cm-t3x30: add USB OTG support
   ARM: dts: sbc-t3530: add support for sbc-t3530
   ARM: dts: sbc-t3517: add support for sbc-t3517
   ARM: OMAP2+: make reset pulse for sbc-t3x usb hubs

  arch/arm/boot/dts/Makefile|4 +
  arch/arm/boot/dts/omap3-cm-t3517.dts  |  137 
 +
  arch/arm/boot/dts/omap3-cm-t3530.dts  |   13 +++
  arch/arm/boot/dts/omap3-cm-t3730.dts  |   40 --
  arch/arm/boot/dts/omap3-cm-t3x.dtsi   |  112 +++
  arch/arm/boot/dts/omap3-cm-t3x30.dtsi |   74 +-
  arch/arm/boot/dts/omap3-sb-t35.dtsi   |   30 +++-
  arch/arm/boot/dts/omap3-sbc-t3517.dts |   44 +++
  arch/arm/boot/dts/omap3-sbc-t3530.dts |   37 +
  arch/arm/boot/dts/omap3-sbc-t3730.dts |   24 +++---
  arch/arm/mach-omap2/pdata-quirks.c|   67 -
  11 files changed, 506 insertions(+), 76 deletions(-)
  create mode 100644 arch/arm/boot/dts/omap3-cm-t3517.dts
  create mode 100644 arch/arm/boot/dts/omap3-cm-t3530.dts
  create mode 100644 arch/arm/boot/dts/omap3-cm-t3x.dtsi
  create mode 100644 arch/arm/boot/dts/omap3-sbc-t3517.dts
  create mode 100644 arch/arm/boot/dts/omap3-sbc-t3530.dts

 

-- 
Regards,
Igor.
--
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: dts: Add support for Compulab sbc-t3530 with cm-t35

2014-02-23 Thread Igor Grinberg
Hi Stefan,

Have you seen the series sent by Dmitry on 12-Jan-2014?
It is called ARM: dts: sbc-t3x: add support for more boards,
or you can check it out here:
http://www.spinics.net/lists/arm-kernel/msg300078.html

On 02/21/14 14:36, Stefan Roese wrote:
 The cm-t3530 SOM is equipped with the OMAP3530 and does not boot with
 the cm-t3730 dts file as it used the omap36xx.dtsi. Add a separate
 dts/dtsi for this board to support it correctly.
 
 I moved some common parts into omap3-cm-t3x30.dtsi. And removed
 the SDIO/WLAN support for now. As I don't know exactly how this
 should be done. Perhaps somebody else might jump in here...
 
 Signed-off-by: Stefan Roese s...@denx.de
 Cc: Igor Grinberg grinb...@compulab.co.il
 Cc: Dmitry Lifshitz lifsh...@compulab.co.il
 Cc: Tony Lindgren t...@atomide.com
 ---
  arch/arm/boot/dts/Makefile|  1 +
  arch/arm/boot/dts/omap3-cm-t3530.dts  | 29 +++
  arch/arm/boot/dts/omap3-cm-t3730.dts  | 54 
 ---
  arch/arm/boot/dts/omap3-cm-t3x30.dtsi | 44 
  arch/arm/boot/dts/omap3-sbc-t3530.dts | 30 +++
  5 files changed, 110 insertions(+), 48 deletions(-)
  create mode 100644 arch/arm/boot/dts/omap3-cm-t3530.dts
  create mode 100644 arch/arm/boot/dts/omap3-sbc-t3530.dts
 
 diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
 index 6d1e43d..6fd1b34 100644
 --- a/arch/arm/boot/dts/Makefile
 +++ b/arch/arm/boot/dts/Makefile
 @@ -200,6 +200,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
   omap3430-sdp.dtb \
   omap3-beagle.dtb \
   omap3-cm-t3730.dtb \
 + omap3-sbc-t3530.dtb \
   omap3-sbc-t3730.dtb \
   omap3-devkit8000.dtb \
   omap3-beagle-xm.dtb \
 diff --git a/arch/arm/boot/dts/omap3-cm-t3530.dts 
 b/arch/arm/boot/dts/omap3-cm-t3530.dts
 new file mode 100644
 index 000..35a1fc2
 --- /dev/null
 +++ b/arch/arm/boot/dts/omap3-cm-t3530.dts
 @@ -0,0 +1,29 @@
 +/*
 + * Support for CompuLab CM-T3530
 + */
 +/dts-v1/;
 +
 +#include omap34xx-hs.dtsi
 +#include omap3-cm-t3x30.dtsi
 +
 +/ {
 + model = CompuLab CM-T3530;
 + compatible = compulab,omap3-cm-t3530, ti,omap34xx, ti,omap3;
 +};
 +
 +mmc1 {
 + vmmc-supply = vmmc1;
 + bus-width = 4;
 + pinctrl-names = default;
 + pinctrl-0 = mmc1_pins;
 +};
 +
 +smsc1 {
 + pinctrl-names = default;
 + pinctrl-0 = smsc1_pins;
 +};
 +
 +uart3 {
 + pinctrl-names = default;
 + pinctrl-0 = uart3_pins;
 +};
 diff --git a/arch/arm/boot/dts/omap3-cm-t3730.dts 
 b/arch/arm/boot/dts/omap3-cm-t3730.dts
 index 486f4d6..3e05b11 100644
 --- a/arch/arm/boot/dts/omap3-cm-t3730.dts
 +++ b/arch/arm/boot/dts/omap3-cm-t3730.dts
 @@ -32,39 +32,14 @@
  };
  
  omap3_pmx_core {
 - mmc1_pins: pinmux_mmc1_pins {
 - pinctrl-single,pins = 
 - 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* 
 sdmmc1_clk.sdmmc1_clk */
 - 0x116 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc1_cmd.sdmmc1_cmd */
 - 0x118 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc1_dat0.sdmmc1_dat0 */
 - 0x11a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc1_dat1.sdmmc1_dat1 */
 - 0x11c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc1_dat2.sdmmc1_dat2 */
 - 0x11e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc1_dat3.sdmmc1_dat3 */
 - ;
 - };
 -
   mmc2_pins: pinmux_mmc2_pins {
   pinctrl-single,pins = 
 - 0x128 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_clk.sdmmc2_clk */
 - 0x12a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_cmd.sdmmc2_cmd */
 - 0x12c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat0.sdmmc2_dat0 */
 - 0x12e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat1.sdmmc2_dat1 */
 - 0x130 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat2.sdmmc2_dat2 */
 - 0x132 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat3.sdmmc2_dat3 */
 - ;
 - };
 -
 - smsc1_pins: pinmux_smsc1_pins {
 - pinctrl-single,pins = 
 - 0x88 (PIN_OUTPUT | MUX_MODE0)   /* 
 gpmc_ncs5.gpmc_ncs5 */
 - 0x16a (PIN_INPUT_PULLUP | MUX_MODE4)/* 
 uart3_cts_rctx.gpio_163 */
 - ;
 - };
 -
 - uart3_pins: pinmux_uart3_pins {
 - pinctrl-single,pins = 
 - 0x16e (PIN_INPUT | MUX_MODE0)   /* 
 uart3_rx_irrx.uart3_rx_irrx */
 - 0x170 (PIN_OUTPUT | MUX_MODE0)  /* 
 uart3_tx_irtx.uart3_tx_irtx */
 + 0x128 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_clk.sdmmc2_clk */
 + 0x12a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_cmd.sdmmc2_cmd */
 + 0x12c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat0.sdmmc2_dat0 */
 + 0x12e (PIN_INPUT_PULLUP | 

[PATCH] omap3isp: Fix kerneldoc for _module_sync_is_stopping and isp_isr()

2014-02-23 Thread Peter Meerwald
Signed-off-by: Peter Meerwald pme...@pmeerw.net
---
 drivers/media/platform/omap3isp/isp.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/media/platform/omap3isp/isp.c 
b/drivers/media/platform/omap3isp/isp.c
index 5807185..d60a4b7 100644
--- a/drivers/media/platform/omap3isp/isp.c
+++ b/drivers/media/platform/omap3isp/isp.c
@@ -588,9 +588,6 @@ static void isp_isr_sbl(struct isp_device *isp)
  * @_isp: Pointer to the OMAP3 ISP device
  *
  * Handles the corresponding callback if plugged in.
- *
- * Returns IRQ_HANDLED when IRQ was correctly handled, or IRQ_NONE when the
- * IRQ wasn't handled.
  */
 static irqreturn_t isp_isr(int irq, void *_isp)
 {
@@ -1420,7 +1417,7 @@ int omap3isp_module_sync_idle(struct media_entity *me, 
wait_queue_head_t *wait,
 }
 
 /*
- * omap3isp_module_sync_is_stopped - Helper to verify if module was stopping
+ * omap3isp_module_sync_is_stopping - Helper to verify if module was stopping
  * @wait: ISP submodule's wait queue for streamoff/interrupt synchronization
  * @stopping: flag which tells module wants to stop
  *
-- 
1.8.3.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 v2 0/2] ARM: OMAP4: Fix gpmc_fck clock

2014-02-23 Thread Florian Vaussard

On 02/22/2014 12:23 AM, Tony Lindgren wrote:
 * Tero Kristo t-kri...@ti.com [140220 01:54]:
 On 02/19/2014 09:26 PM, Florian Vaussard wrote:

 On 02/19/2014 05:22 PM, Tero Kristo wrote:
 On 02/19/2014 11:15 AM, Florian Vaussard wrote:
 Hello,

 Trying to get my SMSC9221 working on OMAP4 with DT,
 I faced a misconfigured gpmc_fck (dummy clock set to 0)
 resulting in serveral division-by-zero, misconfigured
 timings and driver lost in the La La Land.

 To solve this, patch 1 removes gpmc_fck from the dummy
 clocks, and patch 2 adds the gpmc_fck DT node and
 reference it from the gpmc node.

 Tested on DuoVero/Parlor (OMAP4430) with SMSC9221.

 I can't test GPMC myself, but other than that, this set looks good to go.


 Thank you. Would you like more test coverage by other people? I would
 like to see this in -rc if possible, as it is needed to boot my OMAP4
 system.

 Well, I just think the driver clock change should be acked by
 someone who knows gpmc better than me.
 
 Hmm do we also need to fix this for other omaps? We at least have
 the following refrerences:
 
 $ git grep dummy_ck drivers/ | grep -i gpmc
 drivers/clk/ti/clk-44xx.c:  DT_CLK(5000.gpmc, fck, dummy_ck),
 drivers/clk/ti/clk-54xx.c:  DT_CLK(NULL, gpmc_ck, dummy_ck),
 drivers/clk/ti/clk-7xx.c:   DT_CLK(NULL, gpmc_ck, dummy_ck),
 

Yes, the same applies to OMAP5 and DRA7. For OMAP5, gpmc_fclk is
connected to L3MAIN2_L3_GICLK, which is a gated l3_iclk. For DRA7, I
have no idea, as the TRM is not public. Someone from  TI?

And I have no way to test this.

Cheers,
Florian
--
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 08/26] arm: Replace various irq_desc accesses

2014-02-23 Thread Thomas Gleixner
Use the proper functions. There is no need to fiddle with irq_desc.

Signed-off-by: Thomas Gleixner t...@linutronix.de
Cc: Shawn Guo shawn@linaro.org
Cc: arm linux-arm-ker...@lists.infradead.org
Cc: omap linux-omap@vger.kernel.org
Cc: Tony Lindgren t...@atomide.com
Cc: Russell King rmk+ker...@arm.linux.org.uk
---
 arch/arm/mach-imx/pm-imx6q.c|7 +++
 arch/arm/mach-omap1/ams-delta-fiq.c |7 ++-
 2 files changed, 5 insertions(+), 9 deletions(-)

Index: tip/arch/arm/mach-imx/pm-imx6q.c
===
--- tip.orig/arch/arm/mach-imx/pm-imx6q.c
+++ tip/arch/arm/mach-imx/pm-imx6q.c
@@ -120,7 +120,7 @@ static void imx6q_enable_wb(bool enable)
 
 int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode)
 {
-   struct irq_desc *iomuxc_irq_desc;
+   struct irq_data *iomuxc_irq_data = irq_get_irq_data(32);
u32 val = readl_relaxed(ccm_base + CLPCR);
 
val = ~BM_CLPCR_LPM;
@@ -167,10 +167,9 @@ int imx6q_set_lpm(enum mxc_cpu_pwr_mode
 * 3) Software should mask IRQ #32 right after CCM Low-Power mode
 *is set (set bits 0-1 of CCM_CLPCR).
 */
-   iomuxc_irq_desc = irq_to_desc(32);
-   imx_gpc_irq_unmask(iomuxc_irq_desc-irq_data);
+   imx_gpc_irq_unmask(iomuxc_irq_data);
writel_relaxed(val, ccm_base + CLPCR);
-   imx_gpc_irq_mask(iomuxc_irq_desc-irq_data);
+   imx_gpc_irq_mask(iomuxc_irq_data);
 
return 0;
 }
Index: tip/arch/arm/mach-omap1/ams-delta-fiq.c
===
--- tip.orig/arch/arm/mach-omap1/ams-delta-fiq.c
+++ tip/arch/arm/mach-omap1/ams-delta-fiq.c
@@ -44,13 +44,10 @@ static unsigned int irq_counter[16];
 
 static irqreturn_t deferred_fiq(int irq, void *dev_id)
 {
-   struct irq_desc *irq_desc;
-   struct irq_chip *irq_chip = NULL;
int gpio, irq_num, fiq_count;
+   struct irq_chip *irq_chip;
 
-   irq_desc = irq_to_desc(gpio_to_irq(AMS_DELTA_GPIO_PIN_KEYBRD_CLK));
-   if (irq_desc)
-   irq_chip = irq_desc-irq_data.chip;
+   irq_chip = irq_get_irq_chip(gpio_to_irq(AMS_DELTA_GPIO_PIN_KEYBRD_CLK));
 
/*
 * For each handled GPIO interrupt, keep calling its interrupt handler


--
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] omap3isp: Fix kerneldoc for _module_sync_is_stopping and isp_isr()

2014-02-23 Thread Laurent Pinchart
Hi Peter,

Thank you for the patch.

On Sunday 23 February 2014 18:08:55 Peter Meerwald wrote:
 Signed-off-by: Peter Meerwald pme...@pmeerw.net
 ---
  drivers/media/platform/omap3isp/isp.c | 5 +
  1 file changed, 1 insertion(+), 4 deletions(-)
 
 diff --git a/drivers/media/platform/omap3isp/isp.c
 b/drivers/media/platform/omap3isp/isp.c index 5807185..d60a4b7 100644
 --- a/drivers/media/platform/omap3isp/isp.c
 +++ b/drivers/media/platform/omap3isp/isp.c
 @@ -588,9 +588,6 @@ static void isp_isr_sbl(struct isp_device *isp)
   * @_isp: Pointer to the OMAP3 ISP device
   *
   * Handles the corresponding callback if plugged in.
 - *
 - * Returns IRQ_HANDLED when IRQ was correctly handled, or IRQ_NONE when the
 - * IRQ wasn't handled.

While I don't object to this change, doesn't it deserve a brief explanation in 
the commit message ?

   */
  static irqreturn_t isp_isr(int irq, void *_isp)
  {
 @@ -1420,7 +1417,7 @@ int omap3isp_module_sync_idle(struct media_entity *me,
 wait_queue_head_t *wait, }
 
  /*
 - * omap3isp_module_sync_is_stopped - Helper to verify if module was
 stopping + * omap3isp_module_sync_is_stopping - Helper to verify if module
 was stopping * @wait: ISP submodule's wait queue for streamoff/interrupt
 synchronization * @stopping: flag which tells module wants to stop
   *

-- 
Regards,

Laurent Pinchart

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


[PATCHv1 4/6] HSI: hsi-char: fix driver for multiport scenarios

2014-02-23 Thread Sebastian Reichel
Fix return code check of alloc_chrdev_region, which
returns 0 on success.

Signed-off-by: Sebastian Reichel s...@debian.org
---
 drivers/hsi/clients/hsi_char.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hsi/clients/hsi_char.c b/drivers/hsi/clients/hsi_char.c
index 7f64bed..f51cf45 100644
--- a/drivers/hsi/clients/hsi_char.c
+++ b/drivers/hsi/clients/hsi_char.c
@@ -706,7 +706,7 @@ static int hsc_probe(struct device *dev)
if (!hsc_major) {
ret = alloc_chrdev_region(hsc_dev, hsc_baseminor,
HSC_DEVS, devname);
-   if (ret  0)
+   if (ret == 0)
hsc_major = MAJOR(hsc_dev);
} else {
hsc_dev = MKDEV(hsc_major, hsc_baseminor);
-- 
1.8.5.3

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


[PATCHv1 3/6] HSI: hsi-char: add Device Tree support

2014-02-23 Thread Sebastian Reichel
Add of_match_table to hsi_char driver, so that it can
be referenced from Device Tree.

Signed-off-by: Sebastian Reichel s...@debian.org
---
 drivers/hsi/clients/hsi_char.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/drivers/hsi/clients/hsi_char.c b/drivers/hsi/clients/hsi_char.c
index e61e5f9..7f64bed 100644
--- a/drivers/hsi/clients/hsi_char.c
+++ b/drivers/hsi/clients/hsi_char.c
@@ -42,6 +42,7 @@
 #include linux/stat.h
 #include linux/hsi/hsi.h
 #include linux/hsi/hsi_char.h
+#include linux/of_device.h
 
 #define HSC_DEVS   16 /* Num of channels */
 #define HSC_MSGS   4
@@ -758,12 +759,22 @@ static int hsc_remove(struct device *dev)
return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id hsi_char_of_match[] = {
+   { .compatible = ssi-char, },
+   { .compatible = hsi-char, },
+   {},
+};
+MODULE_DEVICE_TABLE(of, hsi_char_of_match);
+#endif
+
 static struct hsi_client_driver hsc_driver = {
.driver = {
.name   = hsi_char,
.owner  = THIS_MODULE,
.probe  = hsc_probe,
.remove = hsc_remove,
+   .of_match_table = of_match_ptr(hsi_char_of_match),
},
 };
 
-- 
1.8.5.3

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


[PATCHv1 2/6] HSI: method to unregister clients from an hsi port

2014-02-23 Thread Sebastian Reichel
This exports a method to unregister all clients from
an hsi port.

Signed-off-by: Sebastian Reichel s...@debian.org
---
 drivers/hsi/hsi.c   | 10 ++
 include/linux/hsi/hsi.h |  1 +
 2 files changed, 11 insertions(+)

diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi.c
index 8bbc0f1..c7b842b 100644
--- a/drivers/hsi/hsi.c
+++ b/drivers/hsi/hsi.c
@@ -198,6 +198,16 @@ static void hsi_port_release(struct device *dev)
 }
 
 /**
+ * hsi_unregister_port - Unregister an HSI port
+ * @port: The HSI port to unregister
+ */
+void hsi_port_unregister_clients(struct hsi_port *port)
+{
+   device_for_each_child(port-device, NULL, hsi_remove_client);
+}
+EXPORT_SYMBOL_GPL(hsi_port_unregister_clients);
+
+/**
  * hsi_unregister_controller - Unregister an HSI controller
  * @hsi: The HSI controller to register
  */
diff --git a/include/linux/hsi/hsi.h b/include/linux/hsi/hsi.h
index fb07339..89cc6f2 100644
--- a/include/linux/hsi/hsi.h
+++ b/include/linux/hsi/hsi.h
@@ -284,6 +284,7 @@ int hsi_register_controller(struct hsi_controller *hsi);
 void hsi_unregister_controller(struct hsi_controller *hsi);
 void hsi_add_clients_from_dt(struct hsi_port *port,
struct device_node *clients);
+void hsi_port_unregister_clients(struct hsi_port *port);
 
 static inline void hsi_controller_set_drvdata(struct hsi_controller *hsi,
void *data)
-- 
1.8.5.3

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


[PATCHv1 0/6] OMAP SSI driver

2014-02-23 Thread Sebastian Reichel
Hi,

This is the fifth round of the OMAP SSI driver patches. I think the OMAP SSI
driver is ready for mainline and should be included in 3.15. I haven't heard
anything from DT binding maintainers since some months though and would like
to get some feedback about the binding from them.

Changes since RFCv4 [0]:
 * Removed patches for nokia-cmt and ssi-protocol, those are still WIP
 * tested with CONFIG_DEBUG_ATOMIC_SLEEP
 * tested with Russel's OMAP dma engine rework patchset
 * acquire clocks from DT
 * minor cleanups
  - removed unused include of omap specific dma header
 * updated patch subjects

TODO:
* Central Message Queue
  I did not yet implement a central message queue in the HSI framework.
  I will do this after Nokia N900 modem is working in the mainline kernel.
* Remove the hwmod DT hack
  This depends on some future work merging hwmod data into DT.

P.S.: It would be nice if I get some Reviewed-By/Acked-By.

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

-- Sebastian

Sebastian Reichel (6):
  HSI: add Device Tree support for HSI clients
  HSI: method to unregister clients from an hsi port
  HSI: hsi-char: add Device Tree support
  HSI: hsi-char: fix driver for multiport scenarios
  HSI: Introduce OMAP SSI driver
  Documentation: DT: omap-ssi binding documentation

 Documentation/devicetree/bindings/hsi/omap_ssi.txt |   82 ++
 .../devicetree/bindings/hsi/trivial-devices.txt|   36 +
 drivers/hsi/Kconfig|1 +
 drivers/hsi/Makefile   |1 +
 drivers/hsi/clients/hsi_char.c |   13 +-
 drivers/hsi/controllers/Kconfig|   19 +
 drivers/hsi/controllers/Makefile   |6 +
 drivers/hsi/controllers/omap_ssi.c |  618 +
 drivers/hsi/controllers/omap_ssi.h |  166 +++
 drivers/hsi/controllers/omap_ssi_port.c| 1401 
 drivers/hsi/controllers/omap_ssi_regs.h|  171 +++
 drivers/hsi/hsi.c  |   80 +-
 include/dt-bindings/hsi/hsi.h  |   17 +
 include/linux/hsi/hsi.h|3 +
 14 files changed, 2612 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/hsi/omap_ssi.txt
 create mode 100644 Documentation/devicetree/bindings/hsi/trivial-devices.txt
 create mode 100644 drivers/hsi/controllers/Kconfig
 create mode 100644 drivers/hsi/controllers/Makefile
 create mode 100644 drivers/hsi/controllers/omap_ssi.c
 create mode 100644 drivers/hsi/controllers/omap_ssi.h
 create mode 100644 drivers/hsi/controllers/omap_ssi_port.c
 create mode 100644 drivers/hsi/controllers/omap_ssi_regs.h
 create mode 100644 include/dt-bindings/hsi/hsi.h

-- 
1.8.5.3

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


[PATCHv1 6/6] Documentation: DT: omap-ssi binding documentation

2014-02-23 Thread Sebastian Reichel
Create device tree binding documentation for
OMAP Synchronous Serial Interface (SSI) device.

Signed-off-by: Sebastian Reichel s...@debian.org
---
 Documentation/devicetree/bindings/hsi/omap_ssi.txt | 82 ++
 1 file changed, 82 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hsi/omap_ssi.txt

diff --git a/Documentation/devicetree/bindings/hsi/omap_ssi.txt 
b/Documentation/devicetree/bindings/hsi/omap_ssi.txt
new file mode 100644
index 000..cfd729b
--- /dev/null
+++ b/Documentation/devicetree/bindings/hsi/omap_ssi.txt
@@ -0,0 +1,82 @@
+OMAP SSI controller bindings
+
+Required properties:
+- compatible:  Should include ti,omap3-ssi.
+- reg-names:   Contains the values sys and gdd.
+- reg: Contains a register specifier for each entry in
+   reg-names.
+- interrupt-names:  Contains the value gdd_mpu.
+- interrupts:  Contains interrupt information for each entry in
+   interrupt-names.
+- ranges:  Represents the bus address mapping between the main
+   controller node and the child nodes below.
+- clocks:  Contains clock specifiers for each entry in
+clock-names.
+- clock-names: Must include the following entries:
+  ssi_ssr_fck: The OMAP clock of that name
+  ssi_sst_fck: The OMAP clock of that name
+  ssi_ick: The OMAP clock of that name
+- #address-cells:  Should be set to 1
+- #size-cells: Should be set to 1
+
+Each port is represented as a sub-node of the ti,omap3-ssi device.
+
+Required Port sub-node properties:
+- compatible:  Should be set to the following value
+ti,omap3-ssi-port (applicable to OMAP34xx devices)
+- reg-names:   Contains the values rx and tx.
+- reg: Contains a register specifier for each entry in
+   reg-names.
+- interrupt-parent Should be a phandle for the interrupt controller
+- interrupt-names: Contains the values mpu_irq0 and mpu_irq1.
+- interrupts:  Contains interrupt information for each entry in
+   interrupt-names.
+- ti,ssi-cawake-gpio:  Defines which GPIO pin is used to signify CAWAKE
+   events for the port. This is an optional board-specific
+   property. If it's missing the port will not be
+   enabled.
+
+Example for Nokia N900:
+
+ssi-controller@48058000 {
+   compatible = ti,omap3-ssi;
+
+   /* needed until hwmod is updated to use the compatible string */
+   ti,hwmods = ssi;
+
+   reg = 0x48058000 0x1000,
+ 0x48059000 0x1000;
+   reg-names = sys,
+   gdd;
+
+   interrupts = 55;
+   interrupt-names = gdd_mpu;
+
+   clocks = ssi_ssr_fck_3430es1,
+ssi_sst_fck_3430es1,
+ssi_ick_3430es1;
+   clock-names = ssi_ssr_fck,
+ ssi_sst_fck,
+ ssi_ick;
+
+   #address-cells = 1;
+   #size-cells = 1;
+   ranges;
+
+   ssi-port@0 {
+   compatible = ti,omap3-ssi-port;
+
+   reg = 0x4805a000 0x800,
+ 0x4805a800 0x800;
+   reg-names = tx,
+   rx;
+
+   interrupt-parent = intc;
+   interrupts = 51,
+52;
+   interrupt-names = mpu_irq0,
+ mpu_irq1;
+
+   ti,ssi-cawake-gpio = gpio5 23 GPIO_ACTIVE_HIGH; /* 151 */
+   }
+}
-- 
1.8.5.3

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


[PATCHv1 1/6] HSI: add Device Tree support for HSI clients

2014-02-23 Thread Sebastian Reichel
Add new method hsi_add_clients_from_dt, which can be used
to initialize HSI clients from a device tree node.

The patch also documents the DT binding for trivial HSI
clients.

Signed-off-by: Sebastian Reichel s...@debian.org
---
 .../devicetree/bindings/hsi/trivial-devices.txt| 36 +++
 drivers/hsi/hsi.c  | 70 +-
 include/dt-bindings/hsi/hsi.h  | 17 ++
 include/linux/hsi/hsi.h|  2 +
 4 files changed, 124 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/hsi/trivial-devices.txt
 create mode 100644 include/dt-bindings/hsi/hsi.h

diff --git a/Documentation/devicetree/bindings/hsi/trivial-devices.txt 
b/Documentation/devicetree/bindings/hsi/trivial-devices.txt
new file mode 100644
index 000..1ace14a
--- /dev/null
+++ b/Documentation/devicetree/bindings/hsi/trivial-devices.txt
@@ -0,0 +1,36 @@
+This is a list of trivial hsi client devices that have simple
+device tree bindings, consisting only of a compatible field
+and the optional hsi configuration.
+
+If a device needs more specific bindings, such as properties to
+describe some aspect of it, there needs to be a specific binding
+document for it just like any other devices.
+
+Optional HSI configuration properties:
+
+- hsi,mode Bit transmission mode (STREAM or FRAME)
+   The first value is used for RX and the second one for
+   TX configuration. If only one value is provided it will
+   be used for RX and TX.
+   The assignments may be found in header file
+   dt-bindings/hsi/hsi.h.
+- hsi,channels Number of channels to use [1..16]
+   The first value is used for RX and the second one for
+   TX configuration. If only one value is provided it will
+   be used for RX and TX.
+- hsi,speedMax bit transmission speed (Kbit/s)
+   The first value is used for RX and the second one for
+   TX configuration. If only one value is provided it will
+   be used for RX and TX.
+- hsi,flow RX flow type (SYNCHRONIZED or PIPELINE)
+   The assignments may be found in header file
+   dt-bindings/hsi/hsi.h.
+- hsi,arb_mode Arbitration mode for TX frame (Round robin, priority)
+   The assignments may be found in header file
+   dt-bindings/hsi/hsi.h.
+
+This is the list of trivial client devices:
+
+Compatible Description
+== =
+hsi-char   HSI character device
diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi.c
index 749f7b5..8bbc0f1 100644
--- a/drivers/hsi/hsi.c
+++ b/drivers/hsi/hsi.c
@@ -26,6 +26,8 @@
 #include linux/slab.h
 #include linux/string.h
 #include linux/notifier.h
+#include linux/of.h
+#include linux/of_device.h
 #include hsi_core.h
 
 static ssize_t modalias_show(struct device *dev,
@@ -50,7 +52,10 @@ static int hsi_bus_uevent(struct device *dev, struct 
kobj_uevent_env *env)
 
 static int hsi_bus_match(struct device *dev, struct device_driver *driver)
 {
-   return strcmp(dev_name(dev), driver-name) == 0;
+   if (dev-of_node != NULL)
+   return of_driver_match_device(dev, driver);
+   else
+   return strcmp(dev_name(dev), driver-name) == 0;
 }
 
 static struct bus_type hsi_bus_type = {
@@ -75,6 +80,7 @@ static void hsi_new_client(struct hsi_port *port, struct 
hsi_board_info *info)
cl-tx_cfg = info-tx_cfg;
cl-rx_cfg = info-rx_cfg;
cl-device.bus = hsi_bus_type;
+
cl-device.parent = port-device;
cl-device.release = hsi_client_release;
dev_set_name(cl-device, %s, info-name);
@@ -101,6 +107,68 @@ static void hsi_scan_board_info(struct hsi_controller *hsi)
}
 }
 
+static void hsi_of_get_client_cfg_property(struct device_node *client,
+   char *name, unsigned int *rx, unsigned int *tx)
+{
+   int err;
+
+   err = of_property_read_u32_index(client, name, 0, rx);
+   if (err)
+   *rx = 0;
+
+   err = of_property_read_u32_index(client, name, 1, tx);
+   if (err)
+   *tx = *rx;
+}
+
+static void hsi_add_client_from_dt(struct hsi_port *port,
+   struct device_node *client)
+{
+   struct hsi_client *cl;
+   const char *name;
+   int err;
+
+   cl = kzalloc(sizeof(*cl), GFP_KERNEL);
+   if (!cl)
+   return;
+
+   err = of_property_read_string(client, compatible, name);
+   if (!err) {
+   dev_set_name(cl-device, %s, name);
+   } else {
+   kfree(cl);
+   return;
+   }
+
+   hsi_of_get_client_cfg_property(client, hsi,mode, 

Re: [patch 08/26] arm: Replace various irq_desc accesses

2014-02-23 Thread Shawn Guo
On Sun, Feb 23, 2014 at 09:40:12PM -, Thomas Gleixner wrote:
 Use the proper functions. There is no need to fiddle with irq_desc.
 
 Signed-off-by: Thomas Gleixner t...@linutronix.de
 Cc: Shawn Guo shawn@linaro.org
...
  arch/arm/mach-imx/pm-imx6q.c|7 +++

Acked-by: Shawn Guo shawn@linaro.org

--
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 3/6] PM / Voltagedomain: introduce voltage domain driver support

2014-02-23 Thread Mark Brown
On Tue, Feb 18, 2014 at 02:32:20PM -0600, Nishanth Menon wrote:

 The current regulator model provides the basic building blocks for the
 transitions, however SoC drivers specific to each of these devices, be
 it cpufreq/devfreq have to replicate the logic for functionality.

 To simply the logic, we can hence introduce a layer that takes care
 of the mundane transition logic, registration mechanisms to provide
 the user drivers such as cpufreq/devfreq a generic interface, whose
 details are abstracted by the device tree description for the SoC on
 which the driver operates on.

This doesn't really provide a picture of what the generic interface
that's being offered is and...

  drivers/power/voltdm/Kconfig  |5 +
  drivers/power/voltdm/Makefile |3 +
  drivers/power/voltdm/core.c   |  347 
 +++--
  drivers/power/voltdm/voltage_domain_private.h |   86 ++
  4 files changed, 424 insertions(+), 17 deletions(-)

...the diffstat doesn't make it obvious what the external interface is
either.  It would be much easier to review this with a clearer picture
of what it's aiming to implement.

 + voltdm_np = of_parse_phandle(np, prop_name, 0);
 + if (voltdm_np) {
 + ret = of_parse_phandle_with_args(np, prop_name, #voltdm-cells,
 +  0, args);
 + if (ret)
 + return ERR_PTR(ret);

There seems to be some DT stuff going on here, is the interface DT only?


signature.asc
Description: Digital signature


Re: [PATCH v2 0/2] ARM: OMAP4: Fix gpmc_fck clock

2014-02-23 Thread Florian Vaussard
On 02/23/2014 10:23 PM, Mike Turquette wrote:
 Quoting Florian Vaussard (2014-02-19 11:26:43)

 On 02/19/2014 05:22 PM, Tero Kristo wrote:
 On 02/19/2014 11:15 AM, Florian Vaussard wrote:
 Hello,

 Trying to get my SMSC9221 working on OMAP4 with DT,
 I faced a misconfigured gpmc_fck (dummy clock set to 0)
 resulting in serveral division-by-zero, misconfigured
 timings and driver lost in the La La Land.

 To solve this, patch 1 removes gpmc_fck from the dummy
 clocks, and patch 2 adds the gpmc_fck DT node and
 reference it from the gpmc node.

 Tested on DuoVero/Parlor (OMAP4430) with SMSC9221.

 I can't test GPMC myself, but other than that, this set looks good to go.


 Thank you. Would you like more test coverage by other people? I would
 like to see this in -rc if possible, as it is needed to boot my OMAP4
 system.
 
 What OMAP4 system is this? Is this a regression for board that already
 has support merged into mainline?
 

No, it is not yet merged into mainline. I was planning to post the DTS
this week, when most issues are cleared. Looking at the current mainline
boards, no one seems to use the GPMC, so I am just the first one to hit
this issue.

Regards,
Florian
--
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