Re: [PATCH 1/3] pinctrl: bindings: Add OMAP pinctrl binding

2014-08-29 Thread Linus Walleij
On Mon, Aug 25, 2014 at 9:03 PM, Nishanth Menon n...@ti.com wrote:

 ---8---
 From 74121c6a2524048eb02c3b33a25e13261edd2e99 Mon Sep 17 00:00:00 2001
 From: Nishanth Menon n...@ti.com
 Date: Thu, 22 May 2014 23:32:09 -0500
 Subject: [PATCH V2] pinctrl: bindings: Add OMAP pinctrl binding

 Add basic skeleton of OMAP pinctrl bindings. This is compatible with
 pinctrl,single bindings and is meant purely as a reference point.

 Acked-by: Tony Lindgren t...@atomide.com
 Signed-off-by: Nishanth Menon n...@ti.com

Applied this inline v2 version.

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


Re: [PATCH 3/3] pinctrl: single: AM437x: Add pinctrl compatibility

2014-08-29 Thread Linus Walleij
On Fri, Aug 22, 2014 at 4:01 PM, Nishanth Menon n...@ti.com wrote:

 From: Keerthy j-keer...@ti.com

 AM437x pinctrl definitions now differ from traditional 16 bit OMAP pin
 ctrl definitions, in that all 32 bits are used to describe a single pin

 Also the location of wakeupenable and event bits have changed.

 Signed-off-by: Keerthy j-keer...@ti.com
 [n...@ti.com: minor updates]
 Signed-off-by: Nishanth Menon n...@ti.com

Patch applied with Tony's ACK.

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


Re: [PATCH 2/3] pinctrl: single: Add DRA7 pinctrl compatibility

2014-08-29 Thread Linus Walleij
On Fri, Aug 22, 2014 at 4:01 PM, Nishanth Menon n...@ti.com wrote:

 DRA7 pinctrl definitions now differ from traditional 16 bit OMAP pin
 ctrl definitions, in that all 32 bits are used to describe a single pin

 Also the location of wakeupenable and event bits have changed.

 Signed-off-by: Nishanth Menon n...@ti.com

Patch applied with Tony's ACK.

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


[PATCH 3/4 v2] arm: omap3: Add Technexion Thunder support (TAO3530 SOM based)

2014-08-29 Thread Stefan Roese
This baseboard is equipped with the Technexion TAO35030 SOM. So
includes this dtsi. Some Thunder specific features are:

- LCD panel

Signed-off-by: Stefan Roese s...@denx.de
Cc: Thorsten Eisbein thorsten.eisb...@head-acoustics.de
Cc: Tapani Utriainen tap...@technexion.com
Cc: Tony Lindgren t...@atomide.com
---
 arch/arm/boot/dts/Makefile  |   1 +
 arch/arm/boot/dts/omap3-thunder.dts | 129 
 2 files changed, 130 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-thunder.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b8c5cd3..e00c889 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -309,6 +309,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += am3517-craneboard.dtb \
omap3-sbc-t3517.dtb \
omap3-sbc-t3530.dtb \
omap3-sbc-t3730.dtb \
+   omap3-thunder.dtb \
omap3-zoom3.dtb
 dtb-$(CONFIG_SOC_AM33XX) += am335x-base0033.dtb \
am335x-bone.dtb \
diff --git a/arch/arm/boot/dts/omap3-thunder.dts 
b/arch/arm/boot/dts/omap3-thunder.dts
new file mode 100644
index 000..d659515
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-thunder.dts
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ * Copyright (C) 2014 Stefan Roese s...@denx.de
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include omap3-tao3530.dtsi
+
+/ {
+   model = TI OMAP3 Thunder baseboard with TAO3530 SOM;
+   compatible = technexion,omap3-thunder, technexion,omap3-tao3530, 
ti,omap34xx, ti,omap3;
+};
+
+omap3_pmx_core {
+   dss_dpi_pins: pinmux_dss_dpi_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)   
/* dss_pclk.dss_pclk */
+   OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)   
/* dss_hsync.dss_hsync */
+   OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)   
/* dss_vsync.dss_vsync */
+   OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)   
/* dss_acbias.dss_acbias */
+   OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)   
/* dss_data0.dss_data0 */
+   OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)   
/* dss_data1.dss_data1 */
+   OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)   
/* dss_data2.dss_data2 */
+   OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)   
/* dss_data3.dss_data3 */
+   OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)   
/* dss_data4.dss_data4 */
+   OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)   
/* dss_data5.dss_data5 */
+   OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)   
/* dss_data6.dss_data6 */
+   OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)   
/* dss_data7.dss_data7 */
+   OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)   
/* dss_data8.dss_data8 */
+   OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)   
/* dss_data9.dss_data9 */
+   OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)   
/* dss_data10.dss_data10 */
+   OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)   
/* dss_data11.dss_data11 */
+   OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)   
/* dss_data12.dss_data12 */
+   OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)   
/* dss_data13.dss_data13 */
+   OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)   
/* dss_data14.dss_data14 */
+   OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)   
/* dss_data15.dss_data15 */
+   OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)   
/* dss_data16.dss_data16 */
+   OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)   
/* dss_data17.dss_data17 */
+   OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)   
/* dss_data18.dss_data18 */
+   OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)   
/* dss_data19.dss_data19 */
+   OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)   
/* dss_data20.dss_data20 */
+   OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)   
/* dss_data21.dss_data21 */
+   OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)   
/* dss_data22.dss_data22 */
+   OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)   
/* dss_data23.dss_data23 */
+   ;
+   };
+
+   lte430_pins: pinmux_lte430_pins {
+   pinctrl-single,pins = 
+   

[PATCH 4/4 v2] arm: omap3: Add HEAD acoustics omap3-ha.dts and omap3-ha-lcd.dts (TAO3530 based)

2014-08-29 Thread Stefan Roese
These baseboards are equipped with the Technexion TAO35030 SOM. So
they include this dtsi. The common parts are extracted into an common
dtsi file. The main difference between both boards is, that the *lcd
has DSS support enabled for the LCD.

Some HEAD acoustics specific features are:

- LED handling
- Special FPGA/DSP audio driver (not included in this series)
- powerdown GPIO

Signed-off-by: Stefan Roese s...@denx.de
Cc: Thorsten Eisbein thorsten.eisb...@head-acoustics.de
Cc: Tapani Utriainen tap...@technexion.com
Cc: Tony Lindgren t...@atomide.com
---
v2:
- Used OMAP3_CORE1_IOPAD macros for all mux entries

 arch/arm/boot/dts/Makefile |   2 +
 arch/arm/boot/dts/omap3-ha-common.dtsi |  88 ++
 arch/arm/boot/dts/omap3-ha-lcd.dts | 165 +
 arch/arm/boot/dts/omap3-ha.dts |  28 ++
 4 files changed, 283 insertions(+)
 create mode 100644 arch/arm/boot/dts/omap3-ha-common.dtsi
 create mode 100644 arch/arm/boot/dts/omap3-ha-lcd.dts
 create mode 100644 arch/arm/boot/dts/omap3-ha.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e00c889..892b7d2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -287,6 +287,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += am3517-craneboard.dtb \
omap3-evm.dtb \
omap3-evm-37xx.dtb \
omap3-gta04.dtb \
+   omap3-ha.dtb \
+   omap3-ha-lcd.dtb \
omap3-igep0020.dtb \
omap3-igep0030.dtb \
omap3-ldp.dtb \
diff --git a/arch/arm/boot/dts/omap3-ha-common.dtsi 
b/arch/arm/boot/dts/omap3-ha-common.dtsi
new file mode 100644
index 000..bd66545
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-ha-common.dtsi
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
+ * Copyright (C) 2014 Stefan Roese s...@denx.de
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include omap3-tao3530.dtsi
+
+/ {
+   gpio_poweroff {
+   pinctrl-names = default;
+   pinctrl-0 = poweroff_pins;
+
+   compatible = gpio-poweroff;
+   gpios = gpio6 8 GPIO_ACTIVE_LOW; /* GPIO 168 */
+   };
+};
+
+omap3_pmx_core {
+   sound2_pins: pinmux_sound2_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x209e, PIN_OUTPUT | MUX_MODE4)   
/* gpmc_d8 gpio_44 */
+   ;
+   };
+
+   led_blue_pins: pinmux_led_blue_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE4)   
/* cam_xclka gpio_96, LED blue */
+   ;
+   };
+
+   led_green_pins: pinmux_led_green_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x2126, PIN_OUTPUT | MUX_MODE4)   
/* cam_d8 gpio_107, LED green */
+   ;
+   };
+
+   led_red_pins: pinmux_led_red_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT_PULLUP | 
MUX_MODE4)/* cam_xclkb gpio_111, LED red */
+   ;
+   };
+
+   poweroff_pins: pinmux_poweroff_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x21be, PIN_OUTPUT_PULLUP | 
MUX_MODE4)/* i2c2_scl gpio_168 */
+   ;
+   };
+
+   powerdown_input_pins: pinmux_powerdown_input_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT_PULLUP | MUX_MODE4) 
/* i2c2_sda gpio_183 */
+   ;
+   };
+
+   fpga_boot0_pins: fpga_boot0_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4)
/* cam_d2 gpio_101 */
+   OMAP3_CORE1_IOPAD(0x211c, PIN_OUTPUT | MUX_MODE4)   
/* cam_d3 gpio_102 */
+   OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE4)   
/* cam_d4 gpio_103 */
+   OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLUP | MUX_MODE4) 
/* cam_d5 gpio_104 */
+   ;
+   };
+
+   fpga_boot1_pins: fpga_boot1_pins {
+   pinctrl-single,pins = 
+   OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE4)
/* gpmc_d10 gpio_46 */
+   OMAP3_CORE1_IOPAD(0x20a4, PIN_OUTPUT | MUX_MODE4)   
/* gpmc_d11 gpio_47 */
+   OMAP3_CORE1_IOPAD(0x20a6, PIN_OUTPUT | MUX_MODE4)   
/* gpmc_d12 gpio_48 */
+   OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT_PULLUP | MUX_MODE4) 
/* gpmc_d13 gpio_49 */
+   ;
+   };
+};
+
+/* I2C2: mux'ed with GPIO168 which is connected to nKILL_POWER */
+i2c2 {
+   status = disabled;
+};
+
+i2c3 {
+   clock-frequency = 10;
+
+   pinctrl-names = default;
+   pinctrl-0 = 

Re: [PATCH] mfd: palmas: Add support for optional wakeup

2014-08-29 Thread Lee Jones
On Tue, 19 Aug 2014, Nishanth Menon wrote:

 With the recent pinctrl-single changes, omaps can treat wake-up events
 from deeper idle states as interrupts.
 
 Let's add support for the optional second interrupt for wake-up
 events. And then SoC can wakeup and handle the event using it's
 regular handler.
 
 Finally, to pass the wake-up interrupt in the dts file,
 interrupts-extended property needs to be passed.
 
 This is similar in approach to commit 2a0b965cfb6e (serial: omap: Add
 support for optional wake-up)
 
 Signed-off-by: Nishanth Menon n...@ti.com
 ---
  Documentation/devicetree/bindings/mfd/palmas.txt |   20 

DT Ack please.

  drivers/mfd/palmas.c |   59 
 ++
  include/linux/mfd/palmas.h   |2 +
  3 files changed, 81 insertions(+)
 
 diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt 
 b/Documentation/devicetree/bindings/mfd/palmas.txt
 index eda8989..2627842 100644
 --- a/Documentation/devicetree/bindings/mfd/palmas.txt
 +++ b/Documentation/devicetree/bindings/mfd/palmas.txt
 @@ -51,3 +51,23 @@ palmas {
   
   };
  }
 +
 +Example: with interrupts extended
 + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
 + Use pinmux 0x418 as wakeup interrupt and gpio1_0 as interrupt source
 +
 +palmas {

Should this be 'palmas@40 {'?

 + compatible = ti,twl6035, ti,palmas;
 + reg = 0x48
 + interrupt-parent = intc;
 + interrupt-controller;
 + #interrupt-cells = 2;
 + #address-cells = 1;
 + #size-cells = 0;
 + interrupts-extended = gpio1 0 IRQ_TYPE_LEVEL_HIGH
 +pinmux 0x418;

Can I get a DT Ack, that this is being used correctly?  It doesn't
match the syntax given in:

  Documentation/devicetree/bindings/interrupt-controller/interrupts.txt

 + pmic {
 + compatible = ti,twl6035-pmic, ti,palmas-pmic;
 + 
 + };
 +}
 diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
 index 28cb048..11186ab 100644
 --- a/drivers/mfd/palmas.c
 +++ b/drivers/mfd/palmas.c
 @@ -24,6 +24,7 @@
  #include linux/mfd/core.h
  #include linux/mfd/palmas.h
  #include linux/of_device.h
 +#include linux/of_irq.h
  
  static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] = 
 {
   {
 @@ -326,6 +327,16 @@ static struct regmap_irq_chip tps65917_irq_chip = {
   PALMAS_INT1_MASK),
  };
  
 +static irqreturn_t palmas_wake_irq(int irq, void *_palmas)
 +{
 + /*
 +  * Return Not handled so that interrupt is disabled.
 +  * Level event ensures that the event is eventually handled
 +  * by the appropriate chip handler already registered
 +  */

This looks okay to me, but could do with a second opinion from someone
who is a little more familier with this kind of h/w.

How does this differ from threading IRQs?

 + return IRQ_NONE;
 +}
 +
  int palmas_ext_control_req_config(struct palmas *palmas,
   enum palmas_external_requestor_id id,  int ext_ctrl, bool enable)
  {
 @@ -409,6 +420,7 @@ static void palmas_dt_to_pdata(struct i2c_client *i2c,
   pdata-mux_from_pdata = 1;
   pdata-pad2 = prop;
   }
 + pdata-wakeirq = irq_of_parse_and_map(node, 1);
  
   /* The default for this register is all masked */
   ret = of_property_read_u32(node, ti,power-ctrl, prop);
 @@ -521,6 +533,7 @@ static int palmas_i2c_probe(struct i2c_client *i2c,
   i2c_set_clientdata(i2c, palmas);
   palmas-dev = i2c-dev;
   palmas-irq = i2c-irq;
 + palmas-wakeirq = pdata-wakeirq;
  
   match = of_match_device(of_palmas_match_tbl, i2c-dev);
  
 @@ -587,6 +600,22 @@ static int palmas_i2c_probe(struct i2c_client *i2c,
   if (ret  0)
   goto err_i2c;
  
 + if (!palmas-wakeirq)
 + goto no_wake_irq;
 +
 + ret = devm_request_irq(palmas-dev, palmas-wakeirq,
 +palmas_wake_irq,
 +IRQF_ONESHOT | pdata-irq_flags,
 +dev_name(palmas-dev),
 +palmas);
 + if (ret  0)
 + goto err_i2c;
 +
 + /* We use wakeirq only during suspend-resume path */
 + device_set_wakeup_capable(palmas-dev, true);
 + disable_irq_nosync(palmas-wakeirq);
 +
 +no_wake_irq:
  no_irq:
   slave = PALMAS_BASE_TO_SLAVE(PALMAS_PU_PD_OD_BASE);
   addr = PALMAS_BASE_TO_REG(PALMAS_PU_PD_OD_BASE,
 @@ -706,6 +735,34 @@ static int palmas_i2c_remove(struct i2c_client *i2c)
   return 0;
  }
  
 +static int palmas_i2c_suspend(struct i2c_client *i2c,  pm_message_t mesg)
 +{
 + struct palmas *palmas = i2c_get_clientdata(i2c);
 + struct device *dev = i2c-dev;
 +
 + if (!palmas-wakeirq)
 + return 0;
 +
 + if (device_may_wakeup(dev))
 + enable_irq(palmas-wakeirq);
 +
 + return 0;
 +}
 +
 +static int palmas_i2c_resume(struct i2c_client *i2c)
 +{
 + struct 

Re: [PATCH v4 00/15] Rework OMAP4+ HDMI audio support

2014-08-29 Thread Jyri Sarha
After discussing with Tomi we decided to turn the omap-hdmi-audio ASoC 
library into a platform device. So do not waste too much time in 
reviewing these patches. I'll mail a new series soon.


Best regards,
Jyri

On 08/25/2014 10:04 PM, Jyri Sarha wrote:

The patches are based on:
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git for-next

The base, the patches, and couple of additional not-to-be-merged
omap2plus_defconfig patches can be found here:

git://git.ti.com/~jyrisarha/ti-linux-kernel/jyrisarhas-audio-video-linux-feature-tree.git
 omap-hdmi-audio

Changes since v3:
- Move ASoC parts into library module under sound/soc/omap
- Come up with API for the library
- Some cleaning up

The patch set fixes OMAP4+ HDMI audio. The structure of the
implementation looks a bit different than before. Instead of creating
a driver specific API for a separate ASoC component driver to connect
to, these patches implement a single audio library module under
sound/soc/omap for ASoC side implementation. The library exports
omap_hdmi_audio_register() and omap_hdmi_audio_unregister()
functions. With the functions OMAPDSS HDMI implementation registers
and unregisters all ASoC components needed for OMAP HDMI audio.

The library implements cpu-dai component using the callbacks provided
by OMAPDSS. Omap-pcm is registered for platform component, dummy
hdmi-audio-codec is registered for codec component, and
asoc-simple-card is registered for machine driver.

Big part of the HDMI audio code is still unchanged and there is a need
for a cleanup there. Also there is still probably something wrong with
speaker mapping of multi-channel streams. I will get back to cleaning
up these issues later.

Best regards,
Jyri

Jyri Sarha (15):
   OMAPDSS: hdmi.h: Add HDMI_AUDIO_LAYOUT_6CH enum value
   OMAPDSS: hdmi: Remove most of OMAP[45]_DSS_HDMI_AUDIO ifdefs
   OMAPDSS: hdmi4_core: Remove unused hdmi4_audio_get_dma_port()
   OMAPDSS: hdmi_wp: Add function for getting audio dma address
   OMAPDSS: hdmi: Make hdmi structure public
   OMAPDSS: hdmi: Add exported functions for storing HDMI audio data
   OMAPDSS: hdmi: Make hdmi_mode_has_audio() more user friedly
   ASoC: omap-hdmi-audio: Add OMAP HDMI audio support library
   OMAPDSS: Kconfig: Implement options for OMAP4 and OMAP5 HDMI audio
 support
   OMAPDSS: hdmi4: Register HDMI audio with omap_hdmi_audio_register()
   OMAPDSS: hdmi5: Register HDMI audio with omap_hdmi_audio_register()
   ASoC: omap: Remove obsolete HDMI audio code and Kconfig options
   OMAPDSS: hdmi4: Remove callbacks for an external ASoC DAI driver
   OMAPDSS: hdmi5: Remove callbacks for an external ASoC DAI driver
   OMAPDSS: Remove all references to obsolete HDMI audio callbacks

  .../fbdev/omap2/displays-new/connector-hdmi.c  |   99 --
  .../fbdev/omap2/displays-new/encoder-tpd12s015.c   |   56 ---
  drivers/video/fbdev/omap2/dss/Kconfig  |   28 +-
  drivers/video/fbdev/omap2/dss/hdmi.h   |   35 +-
  drivers/video/fbdev/omap2/dss/hdmi4.c  |  233 ++---
  drivers/video/fbdev/omap2/dss/hdmi4_core.c |   14 -
  drivers/video/fbdev/omap2/dss/hdmi4_core.h |4 -
  drivers/video/fbdev/omap2/dss/hdmi5.c  |  216 +---
  drivers/video/fbdev/omap2/dss/hdmi5_core.c |6 -
  drivers/video/fbdev/omap2/dss/hdmi5_core.h |2 -
  drivers/video/fbdev/omap2/dss/hdmi_common.c|   18 +-
  drivers/video/fbdev/omap2/dss/hdmi_wp.c|8 +-
  include/sound/omap-hdmi-audio.h|   50 +++
  include/video/omapdss.h|   34 +-
  sound/soc/omap/Kconfig |   15 +-
  sound/soc/omap/Makefile|6 +-
  sound/soc/omap/omap-hdmi-audio.c   |  357 +++
  sound/soc/omap/omap-hdmi-card.c|   87 -
  sound/soc/omap/omap-hdmi.c |  364 
  sound/soc/omap/omap-hdmi.h |   38 --
  20 files changed, 676 insertions(+), 994 deletions(-)
  create mode 100644 include/sound/omap-hdmi-audio.h
  create mode 100644 sound/soc/omap/omap-hdmi-audio.c
  delete mode 100644 sound/soc/omap/omap-hdmi-card.c
  delete mode 100644 sound/soc/omap/omap-hdmi.c
  delete mode 100644 sound/soc/omap/omap-hdmi.h



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


Re: [PATCH] mfd: palmas: Add support for optional wakeup

2014-08-29 Thread Nishanth Menon
On 08/29/2014 05:56 AM, Lee Jones wrote:
 On Tue, 19 Aug 2014, Nishanth Menon wrote:
 
 With the recent pinctrl-single changes, omaps can treat wake-up events
 from deeper idle states as interrupts.

 Let's add support for the optional second interrupt for wake-up
 events. And then SoC can wakeup and handle the event using it's
 regular handler.

 Finally, to pass the wake-up interrupt in the dts file,
 interrupts-extended property needs to be passed.

 This is similar in approach to commit 2a0b965cfb6e (serial: omap: Add
 support for optional wake-up)

 Signed-off-by: Nishanth Menon n...@ti.com
 ---
  Documentation/devicetree/bindings/mfd/palmas.txt |   20 
 
 DT Ack please.
 
  drivers/mfd/palmas.c |   59 
 ++
  include/linux/mfd/palmas.h   |2 +
  3 files changed, 81 insertions(+)

 diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt 
 b/Documentation/devicetree/bindings/mfd/palmas.txt
 index eda8989..2627842 100644
 --- a/Documentation/devicetree/bindings/mfd/palmas.txt
 +++ b/Documentation/devicetree/bindings/mfd/palmas.txt
 @@ -51,3 +51,23 @@ palmas {
  
  };
  }
 +
 +Example: with interrupts extended
 + See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
 + Use pinmux 0x418 as wakeup interrupt and gpio1_0 as interrupt source
 +
 +palmas {
 
 Should this be 'palmas@40 {'?

I might have preferred that as well.. I kept the existing style in the
documentation. Would you like me to change existing doc style too?

 
 +compatible = ti,twl6035, ti,palmas;
 +reg = 0x48
 +interrupt-parent = intc;
 +interrupt-controller;
 +#interrupt-cells = 2;
 +#address-cells = 1;
 +#size-cells = 0;
 +interrupts-extended = gpio1 0 IRQ_TYPE_LEVEL_HIGH
 +   pinmux 0x418;
 
 Can I get a DT Ack, that this is being used correctly?  It doesn't
 match the syntax given in:
 
   Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
Did you mean:
gpio1 0 IRQ_TYPE_LEVEL_HIGH, pinmux 0x418;

Yes, I can fix that - sorry, both usage seem to be functional.

 
 +pmic {
 +compatible = ti,twl6035-pmic, ti,palmas-pmic;
 +
 +};
 +}
 diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
 index 28cb048..11186ab 100644
 --- a/drivers/mfd/palmas.c
 +++ b/drivers/mfd/palmas.c
 @@ -24,6 +24,7 @@
  #include linux/mfd/core.h
  #include linux/mfd/palmas.h
  #include linux/of_device.h
 +#include linux/of_irq.h
  
  static const struct regmap_config palmas_regmap_config[PALMAS_NUM_CLIENTS] 
 = {
  {
 @@ -326,6 +327,16 @@ static struct regmap_irq_chip tps65917_irq_chip = {
  PALMAS_INT1_MASK),
  };
  
 +static irqreturn_t palmas_wake_irq(int irq, void *_palmas)
 +{
 +/*
 + * Return Not handled so that interrupt is disabled.
 + * Level event ensures that the event is eventually handled
 + * by the appropriate chip handler already registered
 + */
 
 This looks okay to me, but could do with a second opinion from someone
 who is a little more familier with this kind of h/w.
 
 How does this differ from threading IRQs?

I could try with an example:
consider a GPIO block 7 gpio 4 connected to a pinctrl pin 234 as the
interrupt source for palmas.

When the system is active, the GPIO block 7, gpio 4 happily functions
as the interrupt source. However, the SoC might not capable of
achieving SoC wide deepsleep when GPIO block 7 is active, So we have
to power off GPIO block 7. However on achieving low power, the system
needs to be capable of waking backup, for this, SoC uses the hardware
at the pin itself(TI calls it control module, others have other names,
lets for the discussion, call it pinctrl), on going to sleep the
action of enabling the pinctrl irq - enables the wakeup capability of
the pin, and disabling it disabled the wakeup capability. when the
wakeup event does take place, in some cases, it might be a edge event,
where by the time we have recofigured GPIO block, the interrupt event
is long gone - to support this, pinctrl invokes the driver interrupt
handler to ensure this functions. in our case(palmas), we are level
event and can depend on GPIO block to handle it when it is configured.

Basically two interrupt sources when SoC is in deep sleep(1 to exit
from deepsleep, and other from the module handling the actual event) -
Example: powerbutton press OR palmas RTC wakeup OR Palmas GPIO
generated wakeup.

However, this is not the same as threading IRQ as the wakeup event is
involved only during suspend path.

commit 2a0b965cfb6e (serial: omap: Add support for optional wake-up)

is a good reference from serial port handling perspective.

-- 
Regards,
Nishanth Menon
--
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 05/15] tty: serial: Add 8250-core based omap driver

2014-08-29 Thread Sebastian Andrzej Siewior
On 08/16/2014 12:44 AM, Tony Lindgren wrote:

 Oh and echo mem  /sys/power/state and then hitting a key on the serial
 console won't wake the system. Does that need to be manually configured
 for device_may_wakeup()?

This is what it looks like:

/# echo enabled 
/sys/devices/6800.ocp/4902.serial/tty/ttyS2/power/wakeup

/ # date; echo mem  /sys/power/state; date
Sat Jan  1 07:01:41 UTC 2000
[  249.916503] PM: Syncing filesystems ... done.
[  252.674652] Freezing user space processes ... (elapsed 0.001 seconds)
done.
[  252.683563] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[  252.693084] Suspending console(s) (use no_console_suspend to debug)
[  252.715820] PM: suspend of devices complete after 11.688 msecs
[  252.722015] PM: late suspend of devices complete after 6.195 msecs
[  252.729187] PM: noirq suspend of devices complete after 7.110 msecs
[  252.729278] Successfully put all powerdomains to target state
[  252.733306] PM: noirq resume of devices complete after 3.967 msecs
[  252.738708] PM: early resume of devices complete after 4.425 msecs
[  252.910400] PM: resume of devices complete after 171.569 msecs
[  252.957855] Restarting tasks ... done.
Sat Jan  1 07:01:51 UTC 2000


  

Sebastian
--
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 07/15] tty: serial: 8250_dma: enqueue RX dma again on completion.

2014-08-29 Thread Sebastian Andrzej Siewior
On 08/18/2014 12:52 PM, One Thousand Gnomes wrote:
 
  if (!up-dma || dma_err)
  status = serial8250_rx_chars(up, status);
 +
 +if (dma_err  port-type == PORT_OMAP_16750)
 +serial8250_rx_dma(up, 0);
 
 Can we stick to a 'has dma' flag and port-rx_dma() type usages so that
 we don't have to rewrite it again to add them the next slightly odd DMA
 user we add 8)

I hide this behind a bug flag, something like UART_NEEDS_DMA_RX_PENDING.

Sebastian
--
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 15/15] tty: serial: 8250: omap: add dma support

2014-08-29 Thread Felipe Balbi
On Fri, Aug 29, 2014 at 11:32:36AM +0200, Sebastian Andrzej Siewior wrote:
 On 08/29/2014 12:54 AM, Tony Lindgren wrote:
  * Sebastian Andrzej Siewior bige...@linutronix.de [140828 12:37]:
  On 08/28/2014 06:46 PM, Tony Lindgren wrote:
 
  Sounds like there should be some way to clear that state.. I wonder
  if omap-serial.c had something before it's DMA support was removed?
 
  Its DMA was removed? Like there was DMA support?
  
  Yeah see commit 494574304711a86e7dd5fd3ebbc3b7024994...
 
 Interesting. I've been browsing that file and checking other trees and
 never noticed that it was there at some point. I only saw the pieces
 which looked it was there.

it was known to be broken and unused. There was no way to even enable
that code.

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 05/15] tty: serial: Add 8250-core based omap driver

2014-08-29 Thread Tony Lindgren
* Sebastian Andrzej Siewior bige...@linutronix.de [140829 08:50]:
 On 08/16/2014 12:44 AM, Tony Lindgren wrote:
 
  Oh and echo mem  /sys/power/state and then hitting a key on the serial
  console won't wake the system. Does that need to be manually configured
  for device_may_wakeup()?
 
 This is what it looks like:
 
 /# echo enabled 
 /sys/devices/6800.ocp/4902.serial/tty/ttyS2/power/wakeup
 
 / # date; echo mem  /sys/power/state; date
 Sat Jan  1 07:01:41 UTC 2000
 [  249.916503] PM: Syncing filesystems ... done.
 [  252.674652] Freezing user space processes ... (elapsed 0.001 seconds)
 done.
 [  252.683563] Freezing remaining freezable tasks ... (elapsed 0.001
 seconds) done.
 [  252.693084] Suspending console(s) (use no_console_suspend to debug)
 [  252.715820] PM: suspend of devices complete after 11.688 msecs
 [  252.722015] PM: late suspend of devices complete after 6.195 msecs
 [  252.729187] PM: noirq suspend of devices complete after 7.110 msecs
 [  252.729278] Successfully put all powerdomains to target state
 [  252.733306] PM: noirq resume of devices complete after 3.967 msecs
 [  252.738708] PM: early resume of devices complete after 4.425 msecs
 [  252.910400] PM: resume of devices complete after 171.569 msecs
 [  252.957855] Restarting tasks ... done.
 Sat Jan  1 07:01:51 UTC 2000

Yes works for me too now thanks.

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


Re: [PATCH 15/15] tty: serial: 8250: omap: add dma support

2014-08-29 Thread Tony Lindgren
* Sebastian Andrzej Siewior bige...@linutronix.de [140829 02:32]:
 On 08/29/2014 12:54 AM, Tony Lindgren wrote:
  OK thanks, I'm seeing the same issue as you. And the idlest registers
  don't show any blockers. Looking at the errata docs, seems like
  Usage Note 2.7 in sprz318f.pdf says:
  
   Details When configured for DMA operations using smartidle mode 
  (SYSC[4:3].IDLEMODE =
   0x2), the UART module will not acknowledge incoming idle requests. As a 
  consequence,
   it can prevent L4 from going to idle.
   When there are additional expected transfers, the UART should be placed in 
  force-idle
   mode.
 
 Ehm. So I haven't found an errata document for omap3630, there is
 nothing like that in that one I have for am335x or dra7. The document
 you mentioned is for AM3715. Interesting…

Yes I would not be suprised if that same bug is in all of them though..
 
  So I've added also Paul to Cc, he may have better suggestions for the
  hwmod flags to use. The experimental patch below seems to allow idling
  for me, care to give it a try?
 
 Yep, this one works. And I see DMA transfers (for RX side) after the
 core hit idle so it seems to look good :)

OK great :)

Looks like the paste bug is there for sure, doing off idle and pasting
240 characters to the console can hang the UART RX after few attempts,
and pasting 16 charactes won't show up at all if the system is idling.
So you may want to play with that too a bit :)

Regards,

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


Re: [PATCH 15/15] tty: serial: 8250: omap: add dma support

2014-08-29 Thread Sebastian Andrzej Siewior
On 08/29/2014 06:12 PM, Tony Lindgren wrote:
 Looks like the paste bug is there for sure, doing off idle and pasting
 240 characters to the console can hang the UART RX after few attempts,
 and pasting 16 charactes won't show up at all if the system is idling.
 So you may want to play with that too a bit :)

Oh. perfect. Please note that we the threshold moved from 16 to 48.
However I see that usually we lose a lot of characters before the uart
wakes up and does its job. Usually I see a couple characters but
sometimes is see broken characters which suggests that the clock was
not (yet) perfect. And I managed not get get it woken once.
So let me look at this once I am through with the review responses…

 
 Regards,
 
 Tony
 
Sebastian
--
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