Re: [PATCH V4 0/4] DRIVERS: IRQCHIP: Add support for crossbar IP

2013-11-19 Thread Linus Walleij
On Thu, Nov 14, 2013 at 1:18 PM, Sricharan R r.sricha...@ti.com wrote:

 The minimal crossbar driver to track and allocate free GIC lines and 
 configure the
 crossbar is added here, along with the DT bindings.

 V4:
Addressed a couple of comments and split the DTS file updates in to
a separate series.

I'm pretty happy with the work and effort put into this now it's looking
real elegant.
FWIW: Acked-by: Linus Walleij linus.wall...@linaro.org

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


Re: [PATCH] pinctrl: single: call pcs_soc-rearm() whenever IRQ mask is changed

2013-11-19 Thread Linus Walleij
On Thu, Nov 14, 2013 at 7:24 PM, Tony Lindgren t...@atomide.com wrote:
 * Tony Lindgren t...@atomide.com [131112 11:57]:

 The fix from Roger is still missing. You can go ahead and queue
 it, or if you prefer me to do it I can add it to my fixes.

 Actually Linus, I'll queue this with your ack as the interrupts-extended
 property is now merged in and I can also enable some minimal wake-up
 events for omap3.

OK thanks for the heads-up, go ahead.

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


Re: [RFC 01/23] gpio/omap: raw read and write endian fix

2013-11-19 Thread Linus Walleij
On Sat, Nov 16, 2013 at 1:01 AM, Taras Kondratiuk
taras.kondrat...@linaro.org wrote:

 From: Victor Kamensky victor.kamen...@linaro.org

 All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
 Need to use endian neutral functions to read/write h/w registers.
 I.e instead of __raw_read[lw] and __raw_write[lw] functions code
 need to use read[lw]_relaxed and write[lw]_relaxed functions.
 If the first simply reads/writes register, the second will byteswap
 it if host operates in BE mode.

 Changes are trivial sed like replacement of __raw_xxx functions
 with xxx_relaxed variant.

 Signed-off-by: Victor Kamensky victor.kamen...@linaro.org
 Signed-off-by: Taras Kondratiuk taras.kondrat...@linaro.org

Since I generally just dislike __raw accessors I went and applied
this. If it collides with any of Tony's fixup work I might need to
take the patch out again, no big deal.

Some ACKs would be nice, but unless there are major objections
this stays merged.

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 v2 0/3] Add support for charging battery in Nokia RX-51

2013-11-19 Thread Pali Rohár
This patch series finally bringing support for charging battery on
Nokia N900 (RX-51) without any proprietary Nokia bits in userspace.

I removed hook function from bq2415x_charger driver and replaced it
by Jenny TC power_supply notifier code. This simplify usage of
bq2415x driver and also allow adding DT support in future because
driver does not need board specific function anymore (only static data).

I tested this series with linux 3.12-rc5 on Nokia N900.

Pali Rohár (3):
  power_supply: Add power_supply notifier
  bq2415x_charger: Use power_supply notifier for automode
  RX-51: Add platform data for bq24150a charger

 arch/arm/mach-omap2/board-rx51-peripherals.c |   17 +-
 drivers/power/bq2415x_charger.c  |   77 --
 drivers/power/power_supply_core.c|   17 ++
 include/linux/power/bq2415x_charger.h|   48 ++--
 include/linux/power_supply.h |   10 
 5 files changed, 108 insertions(+), 61 deletions(-)

-- 
1.7.9.5

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


[PATCH v2 1/3] power_supply: Add power_supply notifier

2013-11-19 Thread Pali Rohár
This patch adds a notifier chain to the power_supply.
This notifier helps drivers in other subsystem to listen to
changes in power supply subsystem. This would help to take some
actions in those drivers on changing the power supply properties.
One such scenario is to increase/decrease system performance based
on the battery capacity/voltage. Another scenario is to adjust the
h/w peak current detection voltage/current thresholds based on battery
voltage/capacity. The notifier helps drivers to listen to changes
in power_suppy susbystem without polling the power_supply properties

Signed-off-by: Jenny TC jenny...@intel.com
Signed-off-by: Pali Rohár pali.ro...@gmail.com
---
 drivers/power/power_supply_core.c |   17 +
 include/linux/power_supply.h  |   10 ++
 2 files changed, 27 insertions(+)

diff --git a/drivers/power/power_supply_core.c 
b/drivers/power/power_supply_core.c
index 00e6672..08bce22 100644
--- a/drivers/power/power_supply_core.c
+++ b/drivers/power/power_supply_core.c
@@ -24,6 +24,9 @@
 struct class *power_supply_class;
 EXPORT_SYMBOL_GPL(power_supply_class);
 
+ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
+EXPORT_SYMBOL_GPL(power_supply_notifier);
+
 static struct device_type power_supply_dev_type;
 
 static bool __power_supply_is_supplied_by(struct power_supply *supplier,
@@ -80,6 +83,8 @@ static void power_supply_changed_work(struct work_struct 
*work)
class_for_each_device(power_supply_class, NULL, psy,
  __power_supply_changed_work);
power_supply_update_leds(psy);
+   atomic_notifier_call_chain(power_supply_notifier,
+   PSY_EVENT_PROP_CHANGED, psy);
kobject_uevent(psy-dev-kobj, KOBJ_CHANGE);
spin_lock_irqsave(psy-changed_lock, flags);
}
@@ -347,6 +352,18 @@ static void power_supply_dev_release(struct device *dev)
kfree(dev);
 }
 
+int power_supply_reg_notifier(struct notifier_block *nb)
+{
+   return atomic_notifier_chain_register(power_supply_notifier, nb);
+}
+EXPORT_SYMBOL_GPL(power_supply_reg_notifier);
+
+void power_supply_unreg_notifier(struct notifier_block *nb)
+{
+   atomic_notifier_chain_unregister(power_supply_notifier, nb);
+}
+EXPORT_SYMBOL_GPL(power_supply_unreg_notifier);
+
 #ifdef CONFIG_THERMAL
 static int power_supply_read_temp(struct thermal_zone_device *tzd,
unsigned long *temp)
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
index 5c26006..c6f52c0 100644
--- a/include/linux/power_supply.h
+++ b/include/linux/power_supply.h
@@ -158,6 +158,13 @@ enum power_supply_type {
POWER_SUPPLY_TYPE_USB_ACA,  /* Accessory Charger Adapters */
 };
 
+enum power_supply_notifier_events {
+   PSY_EVENT_NONE,
+   PSY_EVENT_PROP_CHANGED,
+   PSY_EVENT_BATTERY,
+   PSY_EVENT_CABLE,
+};
+
 union power_supply_propval {
int intval;
const char *strval;
@@ -235,6 +242,9 @@ struct power_supply_info {
int use_for_apm;
 };
 
+extern struct atomic_notifier_headpower_supply_notifier;
+extern int power_supply_reg_notifier(struct notifier_block *nb);
+extern void power_supply_unreg_notifier(struct notifier_block *nb);
 extern struct power_supply *power_supply_get_by_name(const char *name);
 extern void power_supply_changed(struct power_supply *psy);
 extern int power_supply_am_i_supplied(struct power_supply *psy);
-- 
1.7.9.5

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


[PATCH v2 2/3] bq2415x_charger: Use power_supply notifier for automode

2013-11-19 Thread Pali Rohár
This patch removing set_mode_hook function from board data and replacing it with
new string variable of notifier power supply device. After this change it is
possible to add DT support because driver does not need specific board function
anymore. Only static data and name of power supply device is required.

Signed-off-by: Pali Rohár pali.ro...@gmail.com
---
 drivers/power/bq2415x_charger.c   |   77 +
 include/linux/power/bq2415x_charger.h |   48 +++-
 2 files changed, 65 insertions(+), 60 deletions(-)

diff --git a/drivers/power/bq2415x_charger.c b/drivers/power/bq2415x_charger.c
index 0727f92..d89583d 100644
--- a/drivers/power/bq2415x_charger.c
+++ b/drivers/power/bq2415x_charger.c
@@ -1,7 +1,7 @@
 /*
  * bq2415x charger driver
  *
- * Copyright (C) 2011-2012  Pali Rohár pali.ro...@gmail.com
+ * Copyright (C) 2011-2013  Pali Rohár pali.ro...@gmail.com
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -170,6 +170,7 @@ struct bq2415x_device {
struct bq2415x_platform_data init_data;
struct power_supply charger;
struct delayed_work work;
+   struct notifier_block nb;
enum bq2415x_mode reported_mode;/* mode reported by hook function */
enum bq2415x_mode mode; /* current configured mode */
enum bq2415x_chip chip;
@@ -791,24 +792,53 @@ static int bq2415x_set_mode(struct bq2415x_device *bq, 
enum bq2415x_mode mode)
 
 }
 
-/* hook function called by other driver which set reported mode */
-static void bq2415x_hook_function(enum bq2415x_mode mode, void *data)
+static int bq2415x_notifier_call(struct notifier_block *nb,
+   unsigned long val, void *v)
 {
-   struct bq2415x_device *bq = data;
+   struct bq2415x_device *bq =
+   container_of(nb, struct bq2415x_device, nb);
+   struct power_supply *psy = v;
+   enum bq2415x_mode mode;
+   union power_supply_propval prop;
+   int ret;
+   int mA;
 
-   if (!bq)
-   return;
+   if (val != PSY_EVENT_PROP_CHANGED)
+   return NOTIFY_OK;
+
+   if (strcmp(psy-name, bq-init_data.notify_device) != 0)
+   return NOTIFY_OK;
+
+   dev_dbg(bq-dev, notifier call was called\n);
+
+   ret = psy-get_property(psy, POWER_SUPPLY_PROP_CURRENT_MAX, prop);
+   if (ret != 0)
+   return NOTIFY_OK;
+
+   mA = prop.intval;
+
+   if (mA == 0)
+   mode = BQ2415X_MODE_OFF;
+   else if (mA  500)
+   mode = BQ2415X_MODE_NONE;
+   else if (mA  1800)
+   mode = BQ2415X_MODE_HOST_CHARGER;
+   else
+   mode = BQ2415X_MODE_DEDICATED_CHARGER;
+
+   if (bq-reported_mode == mode)
+   return NOTIFY_OK;
 
-   dev_dbg(bq-dev, hook function was called\n);
bq-reported_mode = mode;
 
/* if automode is not enabled do not tell about reported_mode */
if (bq-automode  1)
-   return;
+   return NOTIFY_OK;
 
sysfs_notify(bq-charger.dev-kobj, NULL, reported_mode);
bq2415x_set_mode(bq, bq-reported_mode);
 
+   return NOTIFY_OK;
 }
 
 / timer functions /
@@ -1508,6 +1538,7 @@ static int bq2415x_probe(struct i2c_client *client,
int num;
char *name;
struct bq2415x_device *bq;
+   struct power_supply *psy;
 
if (!client-dev.platform_data) {
dev_err(client-dev, platform data not set\n);
@@ -1569,16 +1600,27 @@ static int bq2415x_probe(struct i2c_client *client,
goto error_4;
}
 
-   if (bq-init_data.set_mode_hook) {
-   if (bq-init_data.set_mode_hook(
-   bq2415x_hook_function, bq)) {
-   bq-automode = 1;
+   if (bq-init_data.notify_device) {
+   bq-nb.notifier_call = bq2415x_notifier_call;
+   ret = power_supply_reg_notifier(bq-nb);
+   if (ret) {
+   dev_err(bq-dev, failed to reg notifier: %d\n, ret);
+   goto error_5;
+   }
+   psy = power_supply_get_by_name(bq-init_data.notify_device);
+   if (psy) {
+   /* Query for initial reported_mode and set it */
+   bq2415x_notifier_call(bq-nb,
+   PSY_EVENT_PROP_CHANGED, psy);
bq2415x_set_mode(bq, bq-reported_mode);
-   dev_info(bq-dev, automode enabled\n);
} else {
-   bq-automode = -1;
-   dev_info(bq-dev, automode failed\n);
+   dev_info(bq-dev, notifier power supply device (%s) 
+   for automode is not registred yet... 
+   automode will not work without that device\n,
+ 

[PATCH v2 3/3] RX-51: Add platform data for bq24150a charger

2013-11-19 Thread Pali Rohár
This patch will register bq24150a charger in RX-51 board data.

So finally charging battery on Nokia N900 (RX-51) working
automatically without any proprietary Nokia bits in userspace.

Signed-off-by: Pali Rohár pali.ro...@gmail.com
---
 arch/arm/mach-omap2/board-rx51-peripherals.c |   17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c 
b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 70fcaff..95e6638 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -25,6 +25,7 @@
 #include linux/gpio_keys.h
 #include linux/mmc/host.h
 #include linux/power/isp1704_charger.h
+#include linux/power/bq2415x_charger.h
 #include linux/platform_data/spi-omap2-mcspi.h
 #include linux/platform_data/mtd-onenand-omap2.h
 #include linux/hsi/hsi.h
@@ -1275,6 +1276,16 @@ static struct aic3x_pdata rx51_aic3x_data2 = {
.gpio_reset = 60,
 };
 
+static struct bq2415x_platform_data rx51_bq24150a_platform_data = {
+   .current_limit = 100,   /* mA */
+   .weak_battery_voltage = 3400,   /* mV */
+   .battery_regulation_voltage = 4200, /* mV */
+   .charge_current = 650,  /* mA */
+   .termination_current = 100, /* mA */
+   .resistor_sense = 68,   /* m ohm */
+   .notify_device = isp1704,
+};
+
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
{
I2C_BOARD_INFO(tlv320aic3x, 0x18),
@@ -1302,7 +1313,11 @@ static struct i2c_board_info __initdata 
rx51_peripherals_i2c_board_info_2[] = {
{
I2C_BOARD_INFO(tpa6130a2, 0x60),
.platform_data = rx51_tpa6130a2_data,
-   }
+   },
+   {
+   I2C_BOARD_INFO(bq24150a, 0x6b),
+   .platform_data = rx51_bq24150a_platform_data,
+   },
 };
 
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_3[] = {
-- 
1.7.9.5

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


Re: [PATCH V3] ARM: OMAP2+: omap_device: maintain sane runtime pm status around suspend/resume

2013-11-19 Thread Ulf Hansson
On 15 November 2013 23:03, Kevin Hilman khil...@linaro.org wrote:
 Tony Lindgren t...@atomide.com writes:

 * Nishanth Menon n...@ti.com [131115 05:30]:
 On 11/15/2013 02:07 AM, Paul Walmsley wrote:
  On Thu, 14 Nov 2013, Nishanth Menon wrote:
 
  OMAP device hooks around suspend|resume_noirq ensures that hwmod
  devices are forced to idle using omap_device_idle/enable as part of
  the last stage of suspend activity.
 
  For a device such as i2c who uses autosuspend, it is possible to enter
  the suspend path with dev-power.runtime_status = RPM_ACTIVE.
 
  As part of the suspend flow, the generic runtime logic would increment
  it's dev-power.disable_depth to 1. This should prevent further
  pm_runtime_get_sync from succeeding once the runtime_status has been
  set to RPM_SUSPENDED.
 
  Now, as part of the suspend_noirq handler in omap_device, we force the
  following: if the device status is !suspended, we force the device
  to idle using omap_device_idle (clocks are cut etc..). This ensures
  that from a hardware perspective, the device is suspended. However,
  runtime_status is left to be active.
 
  *if* an operation is attempted after this point to
  pm_runtime_get_sync, runtime framework depends on runtime_status to
  indicate accurately the device status, and since it sees it to be
  ACTIVE, it assumes the module is functional and returns a non-error
  value. As a result the user will see pm_runtime_get succeed, however a
  register access will crash due to the lack of clocks.
 
  To prevent this from happening, we should ensure that runtime_status
  exactly indicates the device status. As a result of this change
  any further calls to pm_runtime_get* would return -EACCES (since
  disable_depth is 1). On resume, we restore the clocks and runtime
  status exactly as we suspended with. These operations are not expected
  to fail as we update the states after the core runtime framework has
  suspended itself and restore before the core runtime framework has
  resumed.
 
  Reported-by: J Keerthy j-keer...@ti.com
  Signed-off-by: Nishanth Menon n...@ti.com
  Acked-by: Rajendra Nayak rna...@ti.com
  Acked-by: Kevin Hilman khil...@linaro.org

Hi Kevin,

I am wondering if OMAP would benefit from letting the PM core allow
runtime suspends during system suspend, which is not the case as of
now.

My impression is that it could simplify OMAP drivers and the power
domain, but it would be interesting to hear your opinion in this. It
somewhat touches this patch. I guess.

The reason for bringing this up here, is that I wanted to highlight
that we are at the moment discussing the following RFC on the linux-pm
mailing list:

[RFC PATCH] PM / Runtime: Allow to inactivate devices during system suspend.

Kind regards
Ulf Hansson

 
  Looks reasonable to me.  Looks like this should be considered for -stable
  - Nishanth, what do you think?

 Every product kernel since 3.4 needed to be hacked (we have hacked in
 different ways so far) to work around this (since we never spend time
 digging deeper :( ), So, I do agree with your view that a -stable tag
 will be most beneficial.

 
  Tony or Kevin, do you want to take this one, or want me to?

 I can take it unless you have other fixes pending right now.

 This version looks good to me.

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

 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/
--
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 RFC 0/9] Beaglebone-Black HDMI audio

2013-11-19 Thread Jyri Sarha
This set of patches implements PCM HDMI audio driver for
Beaglebone-Black HDMI output. The patches have been rebased
on top of:
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound topic/davinci

There is couple of earlier RFC versions of the clk patch floating
around, but the one here is the latest version.

I'll send the associated dts changes shortly as a separate patch.

Best regards,
Jyri

Jyri Sarha (9):
  clk: add gpio controlled clock
  ASoC: davinci-evm: Add named clock reference to DT bindings
  ASoC: davinci-evm: HDMI audio support for TDA998x trough McASP I2S
bus
  ASoC: hdmi-codec: Add devicetree binding with documentation
  ASoC: hdmi-codec: Add SNDRV_PCM_FMTBIT_32_LE playback format
  ASoC: davinci: HDMI audio build for AM33XX and TDA998x
  drm/tilcdc: Add I2C HDMI audio config for tda998x
  ARM: OMAP2+: omap2plus_defconfig: Enable tilcdc and TDA998X HDMI
support
  ARM: OMAP2+: omap2plus_defconfig: Enable BeagleBone Black HDMI audio
support

 .../devicetree/bindings/clock/gpio-clock.txt   |   21 ++
 .../bindings/sound/davinci-evm-audio.txt   |   12 +-
 Documentation/devicetree/bindings/sound/hdmi.txt   |   17 ++
 arch/arm/configs/omap2plus_defconfig   |5 +
 drivers/clk/Makefile   |1 +
 drivers/clk/clk-gpio.c |  209 ++
 drivers/gpu/drm/tilcdc/tilcdc_slave.c  |   24 ++-
 include/linux/clk-provider.h   |   25 +++
 sound/soc/codecs/hdmi.c|   12 +-
 sound/soc/davinci/Kconfig  |   12 ++
 sound/soc/davinci/Makefile |1 +
 sound/soc/davinci/davinci-evm.c|  227 +++-
 12 files changed, 558 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/gpio-clock.txt
 create mode 100644 Documentation/devicetree/bindings/sound/hdmi.txt
 create mode 100644 drivers/clk/clk-gpio.c

-- 
1.7.9.5

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


[PATCH RFC 6/9] ASoC: davinci: HDMI audio build for AM33XX and TDA998x

2013-11-19 Thread Jyri Sarha
Adds configuration option for HDMI audio support for AM33XX based
boards with NXP TDA998x HDMI transmitter. The audio is connected to
NXP TDA998x trough McASP running in i2s mode.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
 sound/soc/davinci/Kconfig  |   12 
 sound/soc/davinci/Makefile |1 +
 2 files changed, 13 insertions(+)

diff --git a/sound/soc/davinci/Kconfig b/sound/soc/davinci/Kconfig
index a8ec1fc..40dd5d1 100644
--- a/sound/soc/davinci/Kconfig
+++ b/sound/soc/davinci/Kconfig
@@ -26,6 +26,18 @@ config SND_AM33XX_SOC_EVM
  AM335X-EVMSK, and BeagelBone with AudioCape boards have this
  setup.
 
+config SND_AM335X_SOC_NXPTDA_EVM
+   tristate HDMI Audio for the AM33XX chip based boards with TDA998x
+   depends on SND_DAVINCI_SOC  SOC_AM33XX
+   depends on DRM_TILCDC  DRM_I2C_NXP_TDA998X
+   select SND_SOC_HDMI_CODEC
+   select SND_DAVINCI_SOC_MCASP
+   help
+ Say Y or M if you want to add support for HDMI SoC audio on
+ AM33XX boards with NXP TDA998x HDMI transmitter. For example
+ BeagleBoneBack. The audio is connected to NXP TDA998x trough
+ McASP running in i2s mode.
+
 config SND_DAVINCI_SOC_EVM
tristate SoC Audio support for DaVinci DM6446, DM355 or DM365 EVM
depends on SND_DAVINCI_SOC
diff --git a/sound/soc/davinci/Makefile b/sound/soc/davinci/Makefile
index 744d4d9..7587a70 100644
--- a/sound/soc/davinci/Makefile
+++ b/sound/soc/davinci/Makefile
@@ -13,3 +13,4 @@ obj-$(CONFIG_SND_DAVINCI_SOC_VCIF) += snd-soc-davinci-vcif.o
 snd-soc-evm-objs := davinci-evm.o
 
 obj-$(CONFIG_SND_DAVINCI_SOC_GENERIC_EVM) += snd-soc-evm.o
+obj-$(CONFIG_SND_AM335X_SOC_NXPTDA_EVM) += snd-soc-evm.o
-- 
1.7.9.5

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


[PATCH RFC 3/9] ASoC: davinci-evm: HDMI audio support for TDA998x trough McASP I2S bus

2013-11-19 Thread Jyri Sarha
Add machine driver support for BeagleBone-Black and other boards with
tilcdc support and NXP TDA998X HDMI transmitter connected to McASP
port in I2S mode. The 44100 Hz sample-rate and it's multiples can not
be supported on Beaglebone-Black because of limited clock-rate
support. The only supported sample format is SNDRV_PCM_FORMAT_S32_LE.
The 8 least significant bits are ignored.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
 .../bindings/sound/davinci-evm-audio.txt   |3 +-
 sound/soc/davinci/davinci-evm.c|  167 +++-
 2 files changed, 167 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt 
b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
index 4aa00f6..2abc4c2 100644
--- a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
+++ b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
@@ -1,7 +1,8 @@
 * Texas Instruments SoC audio setups with TLV320AIC3X Codec
 
 Required properties:
-- compatible : ti,da830-evm-audio : forDM365/DA8xx/OMAPL1x/AM33xx
+- compatible : ti,da830-evm-audio : for DM365/DA8xx/OMAPL1x/AM33xx
+   ti,am33xx-beaglebone-black : for Beaglebone-black HDMI audio
 - ti,model : The user-visible name of this sound complex.
 - ti,audio-codec : The phandle of the TLV320AIC3x audio codec
 - ti,mcasp-controller : The phandle of the McASP controller
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index b28c9fd..71496b6 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -21,6 +21,7 @@
 #include sound/core.h
 #include sound/pcm.h
 #include sound/soc.h
+#include sound/pcm_params.h
 
 #include asm/dma.h
 #include asm/mach-types.h
@@ -33,8 +34,13 @@
 struct snd_soc_card_drvdata_davinci {
struct clk *mclk;
unsigned sysclk;
+   struct snd_pcm_hw_constraint_list *rate_constraint;
 };
 
+/* If changing sample format the tda998x configuration (REG_CTS_N) needs
+   to be changed. */
+#define TDA998X_SAMPLE_FORMAT SNDRV_PCM_FORMAT_S32_LE
+
 static int evm_startup(struct snd_pcm_substream *substream)
 {
struct snd_soc_pcm_runtime *rtd = substream-private_data;
@@ -80,12 +86,80 @@ static int evm_hw_params(struct snd_pcm_substream 
*substream,
return 0;
 }
 
+static int evm_tda998x_startup(struct snd_pcm_substream *substream)
+{
+   struct snd_pcm_runtime *runtime = substream-runtime;
+   struct snd_soc_pcm_runtime *rtd = substream-private_data;
+   struct snd_soc_card *soc_card = rtd-codec-card;
+   struct snd_soc_card_drvdata_davinci *drvdata =
+   (struct snd_soc_card_drvdata_davinci *)
+   snd_soc_card_get_drvdata(soc_card);
+   struct snd_mask *fmt = constrs_mask(runtime-hw_constraints,
+   SNDRV_PCM_HW_PARAM_FORMAT);
+   snd_mask_none(fmt);
+   snd_mask_set(fmt, TDA998X_SAMPLE_FORMAT);
+
+   runtime-hw.rate_min = drvdata-rate_constraint-list[0];
+   runtime-hw.rate_max = drvdata-rate_constraint-list[
+   drvdata-rate_constraint-count - 1];
+   runtime-hw.rates = SNDRV_PCM_RATE_KNOT;
+
+   snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
+  drvdata-rate_constraint);
+   snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_CHANNELS,
+2, 2);
+
+   return evm_startup(substream);
+}
+
+static unsigned int evm_get_bclk(struct snd_pcm_hw_params *params)
+{
+   int sample_size = snd_pcm_format_width(params_format(params));
+   int rate = params_rate(params);
+   int channels = params_channels(params);
+
+   return sample_size * channels * rate;
+}
+
+static int evm_tda998x_hw_params(struct snd_pcm_substream *substream,
+struct snd_pcm_hw_params *params)
+{
+   struct snd_soc_pcm_runtime *rtd = substream-private_data;
+   struct snd_soc_dai *cpu_dai = rtd-cpu_dai;
+   struct snd_soc_codec *codec = rtd-codec;
+   struct snd_soc_card *soc_card = codec-card;
+   struct platform_device *pdev = to_platform_device(soc_card-dev);
+   unsigned int bclk_freq = evm_get_bclk(params);
+   unsigned sysclk = ((struct snd_soc_card_drvdata_davinci *)
+  snd_soc_card_get_drvdata(soc_card))-sysclk;
+   int ret;
+
+   ret = snd_soc_dai_set_clkdiv(cpu_dai, 1, sysclk / bclk_freq);
+   if (ret  0) {
+   dev_err(pdev-dev, can't set CPU DAI clock divider %d\n,
+   ret);
+   return ret;
+   }
+
+   ret = snd_soc_dai_set_sysclk(cpu_dai, 0, sysclk, SND_SOC_CLOCK_IN);
+   if (ret  0)
+   return ret;
+
+   return ret;
+}
+
 static struct snd_soc_ops evm_ops = {
.startup = evm_startup,
.shutdown = evm_shutdown,
.hw_params = evm_hw_params,
 };
 
+static struct snd_soc_ops evm_tda998x_ops 

[PATCH RFC 9/9] ARM: OMAP2+: omap2plus_defconfig: Enable BeagleBone Black HDMI audio support

2013-11-19 Thread Jyri Sarha
Select following:
CONFIG_SND_DAVINCI_SOC=m
CONFIG_SND_AM335X_SOC_NXPTDA_EVM=m

Signed-off-by: Jyri Sarha jsa...@ti.com
cc: t...@atomide.com
---
 arch/arm/configs/omap2plus_defconfig |2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/configs/omap2plus_defconfig 
b/arch/arm/configs/omap2plus_defconfig
index 52b0d92..c1a9730 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -216,6 +216,8 @@ CONFIG_SND_OMAP_SOC=m
 CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
 CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
 CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
+CONFIG_SND_DAVINCI_SOC=m
+CONFIG_SND_AM335X_SOC_NXPTDA_EVM=m
 CONFIG_USB=y
 CONFIG_USB_DEBUG=y
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-- 
1.7.9.5

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


[PATCH RFC 7/9] drm/tilcdc: Add I2C HDMI audio config for tda998x

2013-11-19 Thread Jyri Sarha
The configuration is needed for HDMI audio. The swap and mirr
parameters have to be correctly set in the configuration in order to
have proper colors in the HDMI picture.

Signed-off-by: Jyri Sarha jsa...@ti.com
cc: airl...@linux.ie
---
 drivers/gpu/drm/tilcdc/tilcdc_slave.c |   24 +++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c 
b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
index 595068b..e43240a 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c
@@ -19,6 +19,7 @@
 #include linux/pinctrl/pinmux.h
 #include linux/pinctrl/consumer.h
 #include drm/drm_encoder_slave.h
+#include drm/i2c/tda998x.h
 
 #include tilcdc_drv.h
 
@@ -111,8 +112,29 @@ static const struct drm_encoder_helper_funcs 
slave_encoder_helper_funcs = {
.restore= drm_i2c_encoder_restore,
 };
 
+static struct tda998x_encoder_params tda998x_pdata = {
+   .swap_b = 0x3,
+   .mirr_b = 0x0,
+   .swap_a = 0x2,
+   .mirr_a = 0x0,
+   .swap_d = 0x1,
+   .mirr_d = 0x0,
+   .swap_c = 0x0,
+   .mirr_c = 0x0,
+   .swap_f = 0x5,
+   .mirr_f = 0x0,
+   .swap_e = 0x4,
+   .mirr_e = 0x0,
+   .audio_cfg = 0x3,   /* I2S mode */
+   .audio_clk_cfg = 1, /* select clock pin */
+   .audio_frame[1] = 1,/* channels - 1 */
+   .audio_format = AFMT_I2S,
+   .audio_sample_rate = 48000,
+};
+
 static const struct i2c_board_info info = {
-   I2C_BOARD_INFO(tda998x, 0x70)
+   I2C_BOARD_INFO(tda998x, 0x70),
+   .platform_data = tda998x_pdata,
 };
 
 static struct drm_encoder *slave_encoder_create(struct drm_device *dev,
-- 
1.7.9.5

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


[PATCH RFC 2/9] ASoC: davinci-evm: Add named clock reference to DT bindings

2013-11-19 Thread Jyri Sarha
The referenced clock is used to get codec clock rate and the clock is
disabled and enabled in startup and shutdown snd_soc_ops call
backs. The change is also documented in DT bindigs document.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
 .../bindings/sound/davinci-evm-audio.txt   |9 ++-
 sound/soc/davinci/davinci-evm.c|   60 +++-
 2 files changed, 66 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt 
b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
index 865178d..4aa00f6 100644
--- a/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
+++ b/Documentation/devicetree/bindings/sound/davinci-evm-audio.txt
@@ -5,12 +5,19 @@ Required properties:
 - ti,model : The user-visible name of this sound complex.
 - ti,audio-codec : The phandle of the TLV320AIC3x audio codec
 - ti,mcasp-controller : The phandle of the McASP controller
-- ti,codec-clock-rate : The Codec Clock rate (in Hz) applied to the Codec
 - ti,audio-routing : A list of the connections between audio components.
   Each entry is a pair of strings, the first being the connection's sink,
   the second being the connection's source. Valid names for sources and
   sinks are the codec's pins, and the jacks on the board:
 
+Optional properties:
+- ti,codec-clock-rate : The Codec Clock rate (in Hz) applied to the Codec.
+- clocks : Reference to the clock used as codec clock
+- clock-names : The codec clock should be named ti,codec-clock
+- Either codec-clock-rate or the codec-clock reference has to be defined. If
+  the both are defined the driver attempts to set referenced clock to the
+  defined rate and takes the rate from the clock reference.
+
   Board connectors:
 
   * Headphone Jack
diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
index 70ff377..b28c9fd 100644
--- a/sound/soc/davinci/davinci-evm.c
+++ b/sound/soc/davinci/davinci-evm.c
@@ -17,6 +17,7 @@
 #include linux/platform_data/edma.h
 #include linux/i2c.h
 #include linux/of_platform.h
+#include linux/clk.h
 #include sound/core.h
 #include sound/pcm.h
 #include sound/soc.h
@@ -30,9 +31,30 @@
 #include davinci-i2s.h
 
 struct snd_soc_card_drvdata_davinci {
+   struct clk *mclk;
unsigned sysclk;
 };
 
+static int evm_startup(struct snd_pcm_substream *substream)
+{
+   struct snd_soc_pcm_runtime *rtd = substream-private_data;
+   struct snd_soc_card *soc_card = rtd-codec-card;
+   struct clk *mclk = ((struct snd_soc_card_drvdata_davinci *)
+   snd_soc_card_get_drvdata(soc_card))-mclk;
+
+   return clk_prepare_enable(mclk);
+}
+
+static void evm_shutdown(struct snd_pcm_substream *substream)
+{
+   struct snd_soc_pcm_runtime *rtd = substream-private_data;
+   struct snd_soc_card *soc_card = rtd-codec-card;
+   struct clk *mclk = ((struct snd_soc_card_drvdata_davinci *)
+   snd_soc_card_get_drvdata(soc_card))-mclk;
+
+   clk_disable_unprepare(mclk);
+}
+
 static int evm_hw_params(struct snd_pcm_substream *substream,
 struct snd_pcm_hw_params *params)
 {
@@ -59,6 +81,8 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
 }
 
 static struct snd_soc_ops evm_ops = {
+   .startup = evm_startup,
+   .shutdown = evm_shutdown,
.hw_params = evm_hw_params,
 };
 
@@ -348,6 +372,7 @@ static int davinci_evm_probe(struct platform_device *pdev)
of_match_device(of_match_ptr(davinci_evm_dt_ids), pdev-dev);
struct snd_soc_dai_link *dai = (struct snd_soc_dai_link *) match-data;
struct snd_soc_card_drvdata_davinci *drvdata = NULL;
+   struct clk *mclk;
int ret = 0;
 
evm_soc_card.dai_link = dai;
@@ -367,13 +392,38 @@ static int davinci_evm_probe(struct platform_device *pdev)
if (ret)
return ret;
 
+   mclk = of_clk_get_by_name(np, ti,codec-clock);
+   if (PTR_ERR(mclk) == -EPROBE_DEFER) {
+   return -EPROBE_DEFER;
+   } else if (IS_ERR(mclk)) {
+   dev_dbg(pdev-dev, Codec clock not found.\n);
+   mclk = NULL;
+   }
+
drvdata = devm_kzalloc(pdev-dev, sizeof(*drvdata), GFP_KERNEL);
if (!drvdata)
return -ENOMEM;
 
+   drvdata-mclk = mclk;
+
ret = of_property_read_u32(np, ti,codec-clock-rate, drvdata-sysclk);
-   if (ret  0)
-   return -EINVAL;
+
+   if (ret  0) {
+   if (!drvdata-mclk) {
+   dev_err(pdev-dev,
+   No clock or clock rate defined.\n);
+   return -EINVAL;
+   }
+   drvdata-sysclk = clk_get_rate(drvdata-mclk);
+   } else if (drvdata-mclk) {
+   unsigned int requestd_rate = drvdata-sysclk;
+   clk_set_rate(drvdata-mclk, drvdata-sysclk);
+   drvdata-sysclk = clk_get_rate(drvdata-mclk);
+ 

[PATCH RFC 1/9] clk: add gpio controlled clock

2013-11-19 Thread Jyri Sarha
The added clk-gpio is a basic clock that can be enabled and disabled
trough a gpio output. The DT binding document for the clock is also
added. For EPROBE_DEFER handling the registering of the clock has to
be delayed until of_clk_get() call time.

Signed-off-by: Jyri Sarha jsa...@ti.com
cc: mturque...@linaro.org
---
 .../devicetree/bindings/clock/gpio-clock.txt   |   21 ++
 drivers/clk/Makefile   |1 +
 drivers/clk/clk-gpio.c |  209 
 include/linux/clk-provider.h   |   25 +++
 4 files changed, 256 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/gpio-clock.txt
 create mode 100644 drivers/clk/clk-gpio.c

diff --git a/Documentation/devicetree/bindings/clock/gpio-clock.txt 
b/Documentation/devicetree/bindings/clock/gpio-clock.txt
new file mode 100644
index 000..54fea39
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/gpio-clock.txt
@@ -0,0 +1,21 @@
+Binding for simple gpio controlled clock.
+
+This binding uses the common clock binding[1].
+
+[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+Required properties:
+- compatible : shall be gpio-clock.
+- #clock-cells : from common clock binding; shall be set to 0.
+- enable-gpios : GPIO reference for enabling and disabling the clock.
+
+Optional properties:
+- clocks: Maximum of one parent clock is supported.
+
+Example:
+   clock {
+   compatible = gpio-clock;
+   clocks = parentclk;
+   #clock-cells = 0;
+   enable-gpios = gpio 1 GPIO_ACTIVE_HIGH;
+   };
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 7b11106..568b7be 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_COMMON_CLK)+= clk-fixed-rate.o
 obj-$(CONFIG_COMMON_CLK)   += clk-gate.o
 obj-$(CONFIG_COMMON_CLK)   += clk-mux.o
 obj-$(CONFIG_COMMON_CLK)   += clk-composite.o
+obj-$(CONFIG_COMMON_CLK)   += clk-gpio.o
 
 # SoCs specific
 obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835.o
diff --git a/drivers/clk/clk-gpio.c b/drivers/clk/clk-gpio.c
new file mode 100644
index 000..992d13f
--- /dev/null
+++ b/drivers/clk/clk-gpio.c
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2012 Texas Instruments
+ * Author: Jyri Sarha jsa...@ti.com
+ *
+ * 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.
+ *
+ * Gpio controlled clock implementation
+ */
+
+#include linux/clk-provider.h
+#include linux/module.h
+#include linux/slab.h
+#include linux/gpio.h
+#include linux/of_gpio.h
+#include linux/err.h
+#include linux/device.h
+
+/**
+ * DOC: basic gpio controlled clock which can be enabled and disabled
+ *  with gpio output
+ * Traits of this clock:
+ * prepare - clk_(un)prepare only ensures parent is (un)prepared
+ * enable - clk_enable and clk_disable are functional  control gpio
+ * rate - inherits rate from parent.  No clk_set_rate support
+ * parent - fixed parent.  No clk_set_parent support
+ */
+
+#define to_clk_gpio(_hw) container_of(_hw, struct clk_gpio, hw)
+
+static int clk_gpio_enable(struct clk_hw *hw)
+{
+   struct clk_gpio *gpio = to_clk_gpio(hw);
+   int value = gpio-active_low ? 0 : 1;
+
+   gpio_set_value(gpio-gpio, value);
+
+   return 0;
+}
+
+static void clk_gpio_disable(struct clk_hw *hw)
+{
+   struct clk_gpio *gpio = to_clk_gpio(hw);
+   int value = gpio-active_low ? 1 : 0;
+
+   gpio_set_value(gpio-gpio, value);
+}
+
+static int clk_gpio_is_enabled(struct clk_hw *hw)
+{
+   struct clk_gpio *gpio = to_clk_gpio(hw);
+   int value = gpio_get_value(gpio-gpio);
+
+   return gpio-active_low ? !value : value;
+}
+
+const struct clk_ops clk_gpio_ops = {
+   .enable = clk_gpio_enable,
+   .disable = clk_gpio_disable,
+   .is_enabled = clk_gpio_is_enabled,
+};
+EXPORT_SYMBOL_GPL(clk_gpio_ops);
+
+/**
+ * clk_register_gpio - register a gpip clock with the clock framework
+ * @dev: device that is registering this clock
+ * @name: name of this clock
+ * @parent_name: name of this clock's parent
+ * @flags: framework-specific flags for this clock
+ * @gpio: gpio to control this clock
+ * @active_low: gpio polarity
+ */
+struct clk *clk_register_gpio(struct device *dev, const char *name,
+   const char *parent_name, unsigned long flags,
+   unsigned int gpio, bool active_low)
+{
+   struct clk_gpio *clk_gpio;
+   struct clk *clk = ERR_PTR(-EINVAL);
+   struct clk_init_data init = { NULL };
+   unsigned long gpio_flags;
+   int err;
+
+   if (active_low)
+   gpio_flags = GPIOF_OUT_INIT_LOW;
+   else
+   gpio_flags = GPIOF_OUT_INIT_HIGH;
+
+   err = gpio_request_one(gpio, gpio_flags, name);
+
+   if (err) {
+   pr_err(%s: %s: Error requesting clock 

[PATCH RFC 4/9] ASoC: hdmi-codec: Add devicetree binding with documentation

2013-11-19 Thread Jyri Sarha
Signed-off-by: Jyri Sarha jsa...@ti.com
---
 Documentation/devicetree/bindings/sound/hdmi.txt |   17 +
 sound/soc/codecs/hdmi.c  |   10 ++
 2 files changed, 27 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/hdmi.txt

diff --git a/Documentation/devicetree/bindings/sound/hdmi.txt 
b/Documentation/devicetree/bindings/sound/hdmi.txt
new file mode 100644
index 000..31af7bc
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/hdmi.txt
@@ -0,0 +1,17 @@
+Device-Tree bindings for dummy HDMI codec
+
+Required properties:
+   - compatible: should be linux,hdmi-audio.
+
+CODEC output pins:
+  * TX
+
+CODEC input pins:
+  * RX
+
+Example node:
+
+   hdmi_audio: hdmi_audio@0 {
+   compatible = linux,hdmi-audio;
+   status = okay;
+   };
diff --git a/sound/soc/codecs/hdmi.c b/sound/soc/codecs/hdmi.c
index 68342b1..6d2fcf1 100644
--- a/sound/soc/codecs/hdmi.c
+++ b/sound/soc/codecs/hdmi.c
@@ -20,6 +20,7 @@
  */
 #include linux/module.h
 #include sound/soc.h
+#include linux/of_device.h
 
 #define DRV_NAME hdmi-audio-codec
 
@@ -60,6 +61,14 @@ static struct snd_soc_dai_driver hdmi_codec_dai = {
 
 };
 
+#ifdef CONFIG_OF
+static const struct of_device_id hdmi_audio_codec_ids[] = {
+   { .compatible = linux,hdmi-audio, },
+   { }
+};
+MODULE_DEVICE_TABLE(of, hdmi_audio_codec_ids);
+#endif
+
 static struct snd_soc_codec_driver hdmi_codec = {
.dapm_widgets = hdmi_widgets,
.num_dapm_widgets = ARRAY_SIZE(hdmi_widgets),
@@ -83,6 +92,7 @@ static struct platform_driver hdmi_codec_driver = {
.driver = {
.name   = DRV_NAME,
.owner  = THIS_MODULE,
+   .of_match_table = of_match_ptr(hdmi_audio_codec_ids),
},
 
.probe  = hdmi_codec_probe,
-- 
1.7.9.5

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


[PATCH RFC 5/9] ASoC: hdmi-codec: Add SNDRV_PCM_FMTBIT_32_LE playback format

2013-11-19 Thread Jyri Sarha
The new playback format is needed for tda998x HDMI audio support. At
the moment the only other user of this codec is omap-hdmi-audio. This
change should not break anything because omap-hdmi-audio-dai, the
cpu-dai of omap-hdmi-audio, enforces sufficient constraints to
available sample formats.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
 sound/soc/codecs/hdmi.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/codecs/hdmi.c b/sound/soc/codecs/hdmi.c
index 6d2fcf1..9cb1c7d 100644
--- a/sound/soc/codecs/hdmi.c
+++ b/sound/soc/codecs/hdmi.c
@@ -45,7 +45,7 @@ static struct snd_soc_dai_driver hdmi_codec_dai = {
SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 |
SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000,
.formats = SNDRV_PCM_FMTBIT_S16_LE |
-   SNDRV_PCM_FMTBIT_S24_LE,
+   SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE,
},
.capture = {
.stream_name = Capture,
-- 
1.7.9.5

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


[PATCH RFC 8/9] ARM: OMAP2+: omap2plus_defconfig: Enable tilcdc and TDA998X HDMI support

2013-11-19 Thread Jyri Sarha
This enables HDMI video support on Beaglebone-Black.

Signed-off-by: Jyri Sarha jsa...@ti.com
cc: t...@atomide.com
---
 arch/arm/configs/omap2plus_defconfig |3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/configs/omap2plus_defconfig 
b/arch/arm/configs/omap2plus_defconfig
index 254cf05..52b0d92 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -176,6 +176,9 @@ CONFIG_REGULATOR_TPS65023=y
 CONFIG_REGULATOR_TPS6507X=y
 CONFIG_REGULATOR_TPS65217=y
 CONFIG_REGULATOR_TPS65910=y
+CONFIG_DRM=m
+CONFIG_DRM_I2C_NXP_TDA998X=m
+CONFIG_DRM_TILCDC=m
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
 CONFIG_FB_MODE_HELPERS=y
-- 
1.7.9.5

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


[PATCH RFC] DTS Changes for Beaglebone-Black HDMI audio

2013-11-19 Thread Jyri Sarha
The associated code changes can be found here:
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-November/068920.html

Jyri Sarha (1):
  ARM/dts: am335x-boneblack: Add HDMI audio support

 arch/arm/boot/dts/am335x-boneblack.dts |   52 
 1 file changed, 52 insertions(+)

-- 
1.7.9.5

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


[PATCH RFC] ARM/dts: am335x-boneblack: Add HDMI audio support

2013-11-19 Thread Jyri Sarha
Adds mcasp0_pins, clk_mcasp0_fixed, clk_mcasp0, mcasp0, hdmi_audio,
and sound nodes.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
 arch/arm/boot/dts/am335x-boneblack.dts |   52 
 1 file changed, 52 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-boneblack.dts 
b/arch/arm/boot/dts/am335x-boneblack.dts
index 6b71ad9..b5a2404 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -60,12 +60,35 @@
0x1b0 0x03  /* xdma_event_intr0, OMAP_MUX_MODE3 | 
AM33XX_PIN_OUTPUT */
;
};
+
+   mcasp0_pins: mcasp0_pins {
+   pinctrl-single,pins = 
+   0x1ac (PIN_INPUT_PULLUP | MUX_MODE0) /* 
mcasp0_ahclkx.mcasp0_ahclkx */
+   0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* 
mcasp0_ahclkr.mcasp0_axr2 */
+   0x194 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* 
mcasp0_fsx.mcasp0_fsx */
+   0x190 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* 
mcasp0_aclkx.mcasp0_aclkx */
+   0x06c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* 
gpmc_a11.gpio1_27 */
+   ;
+   };
 };
 
 lcdc {
status = okay;
 };
 
+mcasp0{
+   pinctrl-names = default;
+   pinctrl-0 = mcasp0_pins;
+   status = okay;
+   op-mode = 0;  /* MCASP_IIS_MODE */
+   tdm-slots = 2;
+   serial-dir =   /* 0: INACTIVE, 1: TX, 2: RX */
+   0 0 1 0
+   ;
+   tx-num-evt = 1;
+   rx-num-evt = 1;
+};
+
 / {
hdmi {
compatible = ti,tilcdc,slave;
@@ -75,4 +98,33 @@
pinctrl-1 = nxp_hdmi_bonelt_off_pins;
status = okay;
};
+
+   clk_mcasp0_fixed: clk_mcasp0_fixed {
+   #clock-cells = 0;
+   compatible = fixed-clock;
+   clock-frequency = 24576000;
+   };
+
+   clk_mcasp0: clk_mcasp0 {
+   #clock-cells = 0;
+   compatible = gpio-clock;
+   clocks = clk_mcasp0_fixed;
+   enable-gpios = gpio1 27 GPIO_ACTIVE_HIGH; /* BeagleBone 
Black Clk enable on GPIO1_27 */
+   };
+
+   hdmi_audio: hdmi_audio@0 {
+  compatible = linux,hdmi-audio;
+  status = okay;
+   };
+
+   sound {
+   compatible = ti,am33xx-beaglebone-black;
+   ti,model = TI BeagleBone Black;
+   ti,audio-codec = hdmi_audio;
+   ti,mcasp-controller = mcasp0;
+   ti,audio-routing =
+   HDMI Out, TX;
+   clocks = clk_mcasp0;
+   clock-names = ti,codec-clock;
+   };
 };
-- 
1.7.9.5

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


Re: [PATCH RFC] ARM/dts: am335x-boneblack: Add HDMI audio support

2013-11-19 Thread Benoit Cousson

Hi Jyri,

A side question related to audio cape support on BBB. In the official 
3.8.13 CircuitCo version the HDMI audio support was breaking the 
audio-cape support due to some bad hacks in the mcasp driver.


Is this still the case with you series?

Thanks,
Benoit


On 19/11/2013 13:21, Jyri Sarha wrote:

Adds mcasp0_pins, clk_mcasp0_fixed, clk_mcasp0, mcasp0, hdmi_audio,
and sound nodes.

Signed-off-by: Jyri Sarha jsa...@ti.com
---
  arch/arm/boot/dts/am335x-boneblack.dts |   52 
  1 file changed, 52 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-boneblack.dts 
b/arch/arm/boot/dts/am335x-boneblack.dts
index 6b71ad9..b5a2404 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -60,12 +60,35 @@
0x1b0 0x03  /* xdma_event_intr0, OMAP_MUX_MODE3 | 
AM33XX_PIN_OUTPUT */
;
};
+
+   mcasp0_pins: mcasp0_pins {
+   pinctrl-single,pins = 
+   0x1ac (PIN_INPUT_PULLUP | MUX_MODE0) /* 
mcasp0_ahclkx.mcasp0_ahclkx */
+   0x19c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* 
mcasp0_ahclkr.mcasp0_axr2 */
+   0x194 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* 
mcasp0_fsx.mcasp0_fsx */
+   0x190 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* 
mcasp0_aclkx.mcasp0_aclkx */
+   0x06c (PIN_OUTPUT_PULLUP | MUX_MODE7) /* 
gpmc_a11.gpio1_27 */
+   ;
+   };
  };

  lcdc {
status = okay;
  };

+mcasp0{
+   pinctrl-names = default;
+   pinctrl-0 = mcasp0_pins;
+   status = okay;
+   op-mode = 0;/* MCASP_IIS_MODE */
+   tdm-slots = 2;
+   serial-dir =/* 0: INACTIVE, 1: TX, 2: RX */
+   0 0 1 0
+   ;
+   tx-num-evt = 1;
+   rx-num-evt = 1;
+};
+
  / {
hdmi {
compatible = ti,tilcdc,slave;
@@ -75,4 +98,33 @@
pinctrl-1 = nxp_hdmi_bonelt_off_pins;
status = okay;
};
+
+   clk_mcasp0_fixed: clk_mcasp0_fixed {
+   #clock-cells = 0;
+   compatible = fixed-clock;
+   clock-frequency = 24576000;
+   };
+
+   clk_mcasp0: clk_mcasp0 {
+   #clock-cells = 0;
+   compatible = gpio-clock;
+   clocks = clk_mcasp0_fixed;
+   enable-gpios = gpio1 27 GPIO_ACTIVE_HIGH; /* BeagleBone 
Black Clk enable on GPIO1_27 */
+   };
+
+   hdmi_audio: hdmi_audio@0 {
+  compatible = linux,hdmi-audio;
+  status = okay;
+   };
+
+   sound {
+   compatible = ti,am33xx-beaglebone-black;
+   ti,model = TI BeagleBone Black;
+   ti,audio-codec = hdmi_audio;
+   ti,mcasp-controller = mcasp0;
+   ti,audio-routing =
+   HDMI Out,   TX;
+   clocks = clk_mcasp0;
+   clock-names = ti,codec-clock;
+   };
  };




--
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] power_supply: Add power_supply notifier

2013-11-19 Thread Pavel Machek
On Tue 2013-11-19 11:18:03, Pali Rohár wrote:
 This patch adds a notifier chain to the power_supply.
 This notifier helps drivers in other subsystem to listen to
 changes in power supply subsystem. This would help to take some
 actions in those drivers on changing the power supply properties.
 One such scenario is to increase/decrease system performance based
 on the battery capacity/voltage. Another scenario is to adjust the
 h/w peak current detection voltage/current thresholds based on battery
 voltage/capacity. The notifier helps drivers to listen to changes
 in power_suppy susbystem without polling the power_supply properties
 
 Signed-off-by: Jenny TC jenny...@intel.com
 Signed-off-by: Pali Rohár pali.ro...@gmail.com

Reviewed-by: Pavel Machek pa...@ucw.cz

 +extern struct atomic_notifier_headpower_supply_notifier;

You may want to delete some spaces here.

Thanks,
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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 v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Ulf Hansson
On 18 November 2013 08:53, Andreas Fenkart afenk...@gmail.com wrote:
 The am335x can't detect pending cirq in PM runtime suspend.
 This patch reconfigures dat1 as a GPIO before going to suspend.
 SDIO interrupts are detected with the GPIO, the GPIO will only wake
 the module from suspend, SDIO irq detection will still happen through the
 IP block.

 Idea of remuxing the pins by Tony Lindgren as well as the implementation
 of omap_hsmmc_pin_init.

 Signed-off-by: Andreas Fenkart afenk...@gmail.com

 diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt 
 b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
 index 1136e6b..146f3ad 100644
 --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
 +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
 @@ -21,8 +21,11 @@ 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
  ti,quirk-swakup-missing: SOC missing the swakeup line, will not detect
 -SDIO irq while in suspend. Fallback to polling. Affected chips are
 -am335x,
 +SDIO irq while in suspend. The workaround is to reconfigure the dat1 line as 
 a
 +GPIO upon suspend. Beyond this option and the GPIO config, you also need to 
 set
 +named pinctrl states default, active and idle , see example below.  The
 +MMC driver will then then toggle between default and idle during the runtime
 +Affected chips are am335x,

  --
  | PRCM |
 @@ -49,3 +52,24 @@ Example:
 vmmc-supply = vmmc; /* phandle to regulator node */
 ti,non-removable;
 };
 +
 +[am335x with with gpio for sdio irq]
 +
 +   mmc1_cirq_pin: pinmux_cirq_pin {
 +   pinctrl-single,pins = 
 +   0x0f8 0x3f  /* MMC0_DAT1 as GPIO2_28 */
 +   ;
 +   };
 +
 +   mmc1: mmc@4806 {
 +   ti,non-removable;
 +   bus-width = 4;
 +   vmmc-supply = ldo2_reg;
 +   vmmc_aux-supply = vmmc;
 +   ti,quirk-swakeup-missing;
 +   pinctrl-names = default, active, idle;
 +   pinctrl-0 = mmc1_pins;
 +   pinctrl-1 = mmc1_pins;
 +   pinctrl-2 = mmc1_cirq_pin;
 +   ti,cirq-gpio = gpio3 28 0;
 +   };
 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
 index 6b0ec55..b94ab08 100644
 --- a/drivers/mmc/host/omap_hsmmc.c
 +++ b/drivers/mmc/host/omap_hsmmc.c
 @@ -36,6 +36,7 @@
  #include linux/mmc/core.h
  #include linux/mmc/mmc.h
  #include linux/io.h
 +#include linux/irq.h
  #include linux/gpio.h
  #include linux/regulator/consumer.h
  #include linux/pinctrl/consumer.h
 @@ -213,11 +214,32 @@ struct omap_hsmmc_host {
 int req_in_progress;
 int flags;
  #define HSMMC_SDIO_IRQ_ENABLED (1  0)/* SDIO irq enabled */
 +#define HSMMC_SWAKEUP_QUIRK(1  1)
 +#define HSMMC_CIRQ_GPIO_ENABLED (1  2)

 struct omap_hsmmc_next  next_data;
 +   struct pinctrl  *pinctrl;
 +   struct pinctrl_state*fixed, *active, *idle;
 struct  omap_mmc_platform_data  *pdata;
  };

 +static irqreturn_t omap_hsmmc_cirq(int irq, void *dev_id)
 +{
 +   struct omap_hsmmc_host *host = dev_id;
 +   unsigned long flags;
 +
 +   spin_lock_irqsave(host-irq_lock, flags);
 +   if (host-flags  HSMMC_CIRQ_GPIO_ENABLED) {
 +   disable_irq_nosync(mmc_slot(host).sdio_irq);
 +   host-flags = ~HSMMC_CIRQ_GPIO_ENABLED;
 +   }
 +   spin_unlock_irqrestore(host-irq_lock, flags);
 +
 +   pm_request_resume(host-dev); /* no use counter */

In the case were you are not waking up from system suspend, but from
runtime suspend, you likely want to signal the SDIO irq as soon as
possible. Then you should use mmc_signal_sdio_irq instead.

In the other case, when waking up from system suspend, you should be
able to completely rely on that the mmc_sdio_resume from the core
layer, will handle the IRQ.

Kind regards
Ulf Hansson

 +
 +   return IRQ_HANDLED;
 +}
 +
  static int omap_hsmmc_card_detect(struct device *dev, int slot)
  {
 struct omap_hsmmc_host *host = dev_get_drvdata(dev);
 @@ -452,10 +474,25 @@ static int omap_hsmmc_gpio_init(struct 
 omap_mmc_platform_data *pdata)
 } else
 pdata-slots[0].gpio_wp = -EINVAL;

 +   if (gpio_is_valid(pdata-slots[0].gpio_cirq)) {
 +   pdata-slots[0].sdio_irq =
 +   gpio_to_irq(pdata-slots[0].gpio_cirq);
 +   ret = gpio_request_one(pdata-slots[0].gpio_cirq, 
 GPIOF_DIR_IN,
 +  sdio_cirq);
 +   if (ret)
 +   goto err_free_ro;
 +
 +   } else {
 +   pdata-slots[0].gpio_cirq = -EINVAL;
 +   }
 +
 +
 

Re: [PATCH v2 1/3] power_supply: Add power_supply notifier

2013-11-19 Thread Pali Rohár
On Tuesday 19 November 2013 14:10:06 Pavel Machek wrote:
 On Tue 2013-11-19 11:18:03, Pali Rohár wrote:
  This patch adds a notifier chain to the power_supply.
  This notifier helps drivers in other subsystem to listen to
  changes in power supply subsystem. This would help to take
  some actions in those drivers on changing the power supply
  properties. One such scenario is to increase/decrease
  system performance based on the battery capacity/voltage.
  Another scenario is to adjust the h/w peak current
  detection voltage/current thresholds based on battery
  voltage/capacity. The notifier helps drivers to listen to
  changes in power_suppy susbystem without polling the
  power_supply properties
  
  Signed-off-by: Jenny TC jenny...@intel.com
  Signed-off-by: Pali Rohár pali.ro...@gmail.com
 
 Reviewed-by: Pavel Machek pa...@ucw.cz
 
  +extern struct atomic_notifier_head   
  power_supply_notifier;
 
 You may want to delete some spaces here.
 
 Thanks,
   Pavel

Ok, note that this patch I copied from: 
https://lkml.org/lkml/2013/9/23/181

-- 
Pali Rohár
pali.ro...@gmail.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/3] bq2415x_charger: Use power_supply notifier for automode

2013-11-19 Thread Pavel Machek
On Tue 2013-11-19 11:18:04, Pali Rohár wrote:
 This patch removing set_mode_hook function from board data and replacing it 
 with
 new string variable of notifier power supply device. After this change it is
 possible to add DT support because driver does not need specific board 
 function
 anymore. Only static data and name of power supply device is required.
 
 Signed-off-by: Pali Rohár pali.ro...@gmail.com

Reviewed-by: Pavel Machek pa...@ucw.cz
Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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 RFC] ARM/dts: am335x-boneblack: Add HDMI audio support

2013-11-19 Thread Jyri Sarha

On 11/19/2013 03:02 PM, Benoit Cousson wrote:

A side question related to audio cape support on BBB. In the official
3.8.13 CircuitCo version the HDMI audio support was breaking the
audio-cape support due to some bad hacks in the mcasp driver.

Is this still the case with you series?


My patches do not touch davinci-mcasp at all and the davinci-evm changes 
should be backwards compatible. So if the audio-cape was working before 
my patches should not break it.


Best regards,
Jyri
--
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 3/3] RX-51: Add platform data for bq24150a charger

2013-11-19 Thread Pavel Machek
On Tue 2013-11-19 11:18:05, Pali Rohár wrote:
 This patch will register bq24150a charger in RX-51 board data.
 
 So finally charging battery on Nokia N900 (RX-51) working
 automatically without any proprietary Nokia bits in userspace.
 
 Signed-off-by: Pali Rohár pali.ro...@gmail.com

Reviewed-by: Pavel Machek pa...@ucw.cz

Pavel
BTW, current code says:

That seems to limit charging voltage to 3.9V, with comment saying
4.11V... which means battery will not be charged fully. does it make
sense to raise limit to 4.11V here?

Aha, and actually will not 4.2V requested by
rx51_bq24150a_platform_data trigger -EINVAL?

/* set battery regulation voltage in mV */
static int bq2415x_set_battery_regulation_voltage(struct
bq2415x_device *bq,
  int mV)
{
int val = (mV/10 - 350) / 2;

if (val  0)
val = 0;
else if (val  94) /* FIXME: Max is 94 or 122 ? Set max value
? */
return -EINVAL;

return bq2415x_i2c_write_mask(bq, BQ2415X_REG_VOLTAGE, val,
BQ2415X_MASK_VO, BQ2415X_SHIFT_VO);
}

 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c
 +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
 @@ -1275,6 +1276,16 @@ static struct aic3x_pdata rx51_aic3x_data2 = {
   .gpio_reset = 60,
  };
  
 +static struct bq2415x_platform_data rx51_bq24150a_platform_data = {
 + .current_limit = 100,   /* mA */
 + .weak_battery_voltage = 3400,   /* mV */
 + .battery_regulation_voltage = 4200, /* mV */
 + .charge_current = 650,  /* mA */
 + .termination_current = 100, /* mA */
 + .resistor_sense = 68,   /* m ohm */
 + .notify_device = isp1704,
 +};
 +
  static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] 
 = {
   {
   I2C_BOARD_INFO(tlv320aic3x, 0x18),

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.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 v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Andreas Fenkart
Hi Ulf,

2013/11/19 Ulf Hansson ulf.hans...@linaro.org:
 On 18 November 2013 08:53, Andreas Fenkart afenk...@gmail.com wrote:


 +static irqreturn_t omap_hsmmc_cirq(int irq, void *dev_id)
 +{
 +   struct omap_hsmmc_host *host = dev_id;
 +   unsigned long flags;
 +
 +   spin_lock_irqsave(host-irq_lock, flags);
 +   if (host-flags  HSMMC_CIRQ_GPIO_ENABLED) {
 +   disable_irq_nosync(mmc_slot(host).sdio_irq);
 +   host-flags = ~HSMMC_CIRQ_GPIO_ENABLED;
 +   }
 +   spin_unlock_irqrestore(host-irq_lock, flags);
 +
 +   pm_request_resume(host-dev); /* no use counter */

 In the case were you are not waking up from system suspend, but from
 runtime suspend, you likely want to signal the SDIO irq as soon as
 possible. Then you should use mmc_signal_sdio_irq instead.

That was my intention first as well, and previous patches worked that way.
SDIO IRQ while in pm_suspend is a rare event, compard to SDIO irq
while in pm_active state.

cat /proc/interrupts
   CPU0
 80:  68349  INTC  64  mmc0
236:   4352  GPIO  28  mmc0

Here the Wifi module is just connected, not being pinged or iperf
running. So the benefit will not be as big as you imagine.

On the other side the optimisations is not without problems, while in
pm_suspend the functional clock is off and you must not access the
registers of the module.

But this is exactly whapt happens when you call mmc_signal_sdio_irq,
it will call back into the drivers omap_hsmmc_enable_sdio_irq trying to
disable the SDIO irq. So you must add special state machines there.

After all it's doable but error prone, and I consider not worth the troubles
for no noticeable speedup.

Also have a look here, Balaji T K had a similar remark to yours
http://www.spinics.net/lists/linux-omap/msg99832.html


 In the other case, when waking up from system suspend, you should be
 able to completely rely on that the mmc_sdio_resume from the core
 layer, will handle the IRQ.

 Kind regards
 Ulf Hansson

--
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: [BUG] PandaBoard hangs before starting init while booting v3.12

2013-11-19 Thread Ben Gamari
Lokesh Vutla lokeshvu...@ti.com writes:

 Hi Ben,
 On Monday 18 November 2013 08:44 PM, Ben Gamari wrote:
 I'm having difficulty getting a PandaBoard ES rev. B1 to boot v3.12 and
 linux-next (30121118). I'm booting with a brand new u-boot
 (c2e5e802ecb7ab668ce9911b210ed68c804b349f).
 
 In both cases the device appears to hang shortly before one would expect
 init to start as seen in the boot output below. I'm booting with the
 omap4-panda-es devicetree. As far as I can tell, the machine is
 completely dead and will not respond to even sysrq. I have a PandaBoard
 A4 which apparently has no trouble with the same kernel image.
 
 Which defconfig are you using ?

I derived the config from RobertCNelson's Debian Wheezy image. It did
require some modification, however.

 Can you see if CPU_IDLE is enabled in your defconfig?

Yes, CPU_IDLE is enabled.

 I saw a similar failure on my panda es when CPU_IDLE is enabled.
 If this is the case for you please apply this[1] patch and give a try.


Indeed that did the trick. Thanks for the reference!

I do however now see periodic messages of the form,

[   42.143005] gic_timer_retrigger: lost localtimer interrupt

Any idea what this might be due to?

Cheers,

- Ben



pgpubspGDYvbs.pgp
Description: PGP signature


Re: [PATCH v2 0/3] Add support for charging battery in Nokia RX-51

2013-11-19 Thread Sebastian Reichel
Hi Pali,

On Tue, Nov 19, 2013 at 11:18:02AM +0100, Pali Rohár wrote:
 This patch series finally bringing support for charging battery on
 Nokia N900 (RX-51) without any proprietary Nokia bits in userspace.

YAY! :)

 I removed hook function from bq2415x_charger driver and replaced it
 by Jenny TC power_supply notifier code. This simplify usage of
 bq2415x driver and also allow adding DT support in future because
 driver does not need board specific function anymore (only static data).
 
 I tested this series with linux 3.12-rc5 on Nokia N900.

cool :)

Do you want me to take this up and add DT support?

-- Sebastian


signature.asc
Description: Digital signature


cpufreq on PandaBoard

2013-11-19 Thread Ben Gamari

Booting a PandaBoard with a recent kernel and devicetree appears to be a
rather messy process. There are dozens of devicetree-related warnings
spewed on boot (many pertaining to missing regulators). At the moment,
however, I'm most interested in this,

cpufreq-cpu0 cpufreq-cpu0.0: no of_node; not parsing pinctrl DT
cpu cpu0: dummy supplies not allowed
cpufreq_cpu0: failed to get cpu0 regulator: -19
cpufreq_cpu0: failed to get cpu0 clock: -2
cpufreq-cpu0: probe of cpufreq-cpu0.0 failed with error -2

What is the status of cpufreq on the PandaBoard? Is this expected to
work?

More generally, if one wants a fairly recent kernel supporting the
PandaBoard's hardware what kernel tree should be used? Is mainline not
yet appropriate? Is linux-next preferred? Perhaps a ti-maintained tree?

Cheers,

- Ben


pgp9fQiwRN8sy.pgp
Description: PGP signature


Re: cpufreq on PandaBoard

2013-11-19 Thread Nishanth Menon
On 11/19/2013 08:59 AM, Ben Gamari wrote:
 
 Booting a PandaBoard with a recent kernel and devicetree appears to be a
 rather messy process. There are dozens of devicetree-related warnings
 spewed on boot (many pertaining to missing regulators). At the moment,
 however, I'm most interested in this,
 
 cpufreq-cpu0 cpufreq-cpu0.0: no of_node; not parsing pinctrl DT
 cpu cpu0: dummy supplies not allowed
 cpufreq_cpu0: failed to get cpu0 regulator: -19
 cpufreq_cpu0: failed to get cpu0 clock: -2
 cpufreq-cpu0: probe of cpufreq-cpu0.0 failed with error -2
 
 What is the status of cpufreq on the PandaBoard? Is this expected to
 work?
 
 More generally, if one wants a fairly recent kernel supporting the
 PandaBoard's hardware what kernel tree should be used? Is mainline not
 yet appropriate? Is linux-next preferred? Perhaps a ti-maintained tree?
for upstream: Wait for the clock nodes to get merged.. we are at v9 of
discussion thread here[1].

for ti-maintained tree, you need to talk to TI support folks for
appropriate kernel for your product line.

[1] http://marc.info/?t=13827167252r=1w=2
-- 
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 v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Ulf Hansson
On 19 November 2013 14:37, Andreas Fenkart afenk...@gmail.com wrote:
 Hi Ulf,

 2013/11/19 Ulf Hansson ulf.hans...@linaro.org:
 On 18 November 2013 08:53, Andreas Fenkart afenk...@gmail.com wrote:


 +static irqreturn_t omap_hsmmc_cirq(int irq, void *dev_id)
 +{
 +   struct omap_hsmmc_host *host = dev_id;
 +   unsigned long flags;
 +
 +   spin_lock_irqsave(host-irq_lock, flags);
 +   if (host-flags  HSMMC_CIRQ_GPIO_ENABLED) {
 +   disable_irq_nosync(mmc_slot(host).sdio_irq);
 +   host-flags = ~HSMMC_CIRQ_GPIO_ENABLED;
 +   }
 +   spin_unlock_irqrestore(host-irq_lock, flags);
 +
 +   pm_request_resume(host-dev); /* no use counter */

 In the case were you are not waking up from system suspend, but from
 runtime suspend, you likely want to signal the SDIO irq as soon as
 possible. Then you should use mmc_signal_sdio_irq instead.

 That was my intention first as well, and previous patches worked that way.
 SDIO IRQ while in pm_suspend is a rare event, compard to SDIO irq
 while in pm_active state.

 cat /proc/interrupts
CPU0
  80:  68349  INTC  64  mmc0
 236:   4352  GPIO  28  mmc0

 Here the Wifi module is just connected, not being pinged or iperf
 running. So the benefit will not be as big as you imagine.

You are right.


 On the other side the optimisations is not without problems, while in
 pm_suspend the functional clock is off and you must not access the
 registers of the module.

 But this is exactly whapt happens when you call mmc_signal_sdio_irq,
 it will call back into the drivers omap_hsmmc_enable_sdio_irq trying to
 disable the SDIO irq. So you must add special state machines there.

Yes, it will be somewhat complicated - I guess.


 After all it's doable but error prone, and I consider not worth the troubles
 for no noticeable speedup.

 Also have a look here, Balaji T K had a similar remark to yours
 http://www.spinics.net/lists/linux-omap/msg99832.html

Thanks, I should have looked that first. :-)

Kind regards
Ulf Hansson



 In the other case, when waking up from system suspend, you should be
 able to completely rely on that the mmc_sdio_resume from the core
 layer, will handle the IRQ.

 Kind regards
 Ulf Hansson

--
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 RFC 3/9] ASoC: davinci-evm: HDMI audio support for TDA998x trough McASP I2S bus

2013-11-19 Thread Thomas Petazzoni
Dear Jyri Sarha,

On Tue, 19 Nov 2013 14:12:23 +0200, Jyri Sarha wrote:

 -- compatible : ti,da830-evm-audio : forDM365/DA8xx/OMAPL1x/AM33xx
 +- compatible : ti,da830-evm-audio : for DM365/DA8xx/OMAPL1x/AM33xx
 +   ti,am33xx-beaglebone-black : for Beaglebone-black HDMI audio

The compatible string namespace is a global namespace, and in the
compatible string you've chosen, there's nothing that makes it specific
to audio. ti,am33xx-beaglebone-black could be used for any other
device, or even for the board as a whole, no? Maybe you need to suffix
it with -audio, like the existing compatible string for audio in this
driver.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 0/3] Add support for charging battery in Nokia RX-51

2013-11-19 Thread Tony Lindgren
* Sebastian Reichel s...@debian.org [131119 06:45]:
 Hi Pali,
 
 On Tue, Nov 19, 2013 at 11:18:02AM +0100, Pali Rohár wrote:
  This patch series finally bringing support for charging battery on
  Nokia N900 (RX-51) without any proprietary Nokia bits in userspace.
 
 YAY! :)
 
  I removed hook function from bq2415x_charger driver and replaced it
  by Jenny TC power_supply notifier code. This simplify usage of
  bq2415x driver and also allow adding DT support in future because
  driver does not need board specific function anymore (only static data).
  
  I tested this series with linux 3.12-rc5 on Nokia N900.
 
 cool :)
 
 Do you want me to take this up and add DT support?

Great news, yeah let's add this with DT support instead as we're
planning to switch over to DT only booting anyways. The values can be
probably set directly in the charger driver based on the compatible
flag.

Note that we can also still add the I2C devices as needed from
the pdata-quirks.c, but in this case there should not be any need
for it :)

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: [RFC 01/23] gpio/omap: raw read and write endian fix

2013-11-19 Thread Tony Lindgren
* Linus Walleij linus.wall...@linaro.org [131119 01:29]:
 On Sat, Nov 16, 2013 at 1:01 AM, Taras Kondratiuk
 taras.kondrat...@linaro.org wrote:
 
  From: Victor Kamensky victor.kamen...@linaro.org
 
  All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
  Need to use endian neutral functions to read/write h/w registers.
  I.e instead of __raw_read[lw] and __raw_write[lw] functions code
  need to use read[lw]_relaxed and write[lw]_relaxed functions.
  If the first simply reads/writes register, the second will byteswap
  it if host operates in BE mode.
 
  Changes are trivial sed like replacement of __raw_xxx functions
  with xxx_relaxed variant.
 
  Signed-off-by: Victor Kamensky victor.kamen...@linaro.org
  Signed-off-by: Taras Kondratiuk taras.kondrat...@linaro.org
 
 Since I generally just dislike __raw accessors I went and applied
 this. If it collides with any of Tony's fixup work I might need to
 take the patch out again, no big deal.

Thanks, this should not conflict with what I have. I just had few
fixes for the twl4030-gpio for older omaps and I doubt that I have
further driver dependencies beyond that for my clean-up work.
 
 Some ACKs would be nice, but unless there are major objections
 this stays merged.

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


Re: [PATCH v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Tony Lindgren
* Balaji T K balaj...@ti.com [131118 08:23]:
 On Monday 18 November 2013 05:45 PM, Andreas Fenkart wrote:
 2013/11/18 Michael Trimarchi mich...@amarulasolutions.com:
 On Mon, Nov 18, 2013 at 8:53 AM, Andreas Fenkart afenk...@gmail.com wrote:
   static int omap_hsmmc_card_detect(struct device *dev, int slot)
   {
  struct omap_hsmmc_host *host = dev_get_drvdata(dev);
 @@ -452,10 +474,25 @@ static int omap_hsmmc_gpio_init(struct 
 omap_mmc_platform_data *pdata)
  } else
  pdata-slots[0].gpio_wp = -EINVAL;
 
 +   if (gpio_is_valid(pdata-slots[0].gpio_cirq)) {
 +   pdata-slots[0].sdio_irq =
 +   gpio_to_irq(pdata-slots[0].gpio_cirq);
 
 What is this? re-assign the platform data?
 
 Seems like, I didn't pay attention to this.
 Simply kept in line how the write protection/read only pins are managed.
 I'd rather not change this part, or not changing it as part of adding
 sdio IRQ support it.
 
 Maybe somebody else on the list can explain why the platform data
 contains elements
 that are modified during runtime.
 
 - set_power / get_ro function callbacks
 - ocr_mask.
 
 Hi,
 
 few params were passed via platform data in non-DT case and never cached
 in internal data structure, with non-dt support going away soon, I am
 planning to cleanup pdata usage in the driver when it gets to DT only support.

The issue of pdata tinkering needs to be fixed first as it will cause nasty
issues when the module is reprobed. 

Note that it's still possible to pass platform data in the device tree case
as auxdata. And we probably need to do that for the pbias register handling
until we have a driver for that.

Talking of the pbias driver, any news on it?

To recap, we basically we need a minimal separate driver that exposes the
control module pbias register as a regulator to the hsmmc driver. I don't see
that we can remove the platform data from the driver before that's done.

Regards,

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


Re: [PATCH v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Balaji T K

On Tuesday 19 November 2013 09:19 PM, Tony Lindgren wrote:

* Balaji T K balaj...@ti.com [131118 08:23]:

On Monday 18 November 2013 05:45 PM, Andreas Fenkart wrote:

2013/11/18 Michael Trimarchi mich...@amarulasolutions.com:

On Mon, Nov 18, 2013 at 8:53 AM, Andreas Fenkart afenk...@gmail.com wrote:

  static int omap_hsmmc_card_detect(struct device *dev, int slot)
  {
 struct omap_hsmmc_host *host = dev_get_drvdata(dev);
@@ -452,10 +474,25 @@ static int omap_hsmmc_gpio_init(struct 
omap_mmc_platform_data *pdata)
 } else
 pdata-slots[0].gpio_wp = -EINVAL;

+   if (gpio_is_valid(pdata-slots[0].gpio_cirq)) {
+   pdata-slots[0].sdio_irq =
+   gpio_to_irq(pdata-slots[0].gpio_cirq);


What is this? re-assign the platform data?


Seems like, I didn't pay attention to this.
Simply kept in line how the write protection/read only pins are managed.
I'd rather not change this part, or not changing it as part of adding
sdio IRQ support it.

Maybe somebody else on the list can explain why the platform data
contains elements
that are modified during runtime.

- set_power / get_ro function callbacks
- ocr_mask.


Hi,

few params were passed via platform data in non-DT case and never cached
in internal data structure, with non-dt support going away soon, I am
planning to cleanup pdata usage in the driver when it gets to DT only support.


The issue of pdata tinkering needs to be fixed first as it will cause nasty
issues when the module is reprobed.


Agree that pdata usage needs to be fixed, but currently module
reprobe is working fine.



Note that it's still possible to pass platform data in the device tree case
as auxdata. And we probably need to do that for the pbias register handling
until we have a driver for that.

Talking of the pbias driver, any news on it?


Almost there, will post the patches soon.
Do you have a branch with updated board files, for me to base pbias patches on
else I can base the patches on rc1 too.



To recap, we basically we need a minimal separate driver that exposes the
control module pbias register as a regulator to the hsmmc driver. I don't see
that we can remove the platform data from the driver before that's done.

Regards,

Tony


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


Re: [PATCH v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2013-11-19 Thread Tony Lindgren
* Balaji T K balaj...@ti.com [131119 08:00]:
 On Tuesday 19 November 2013 09:19 PM, Tony Lindgren wrote:
 * Balaji T K balaj...@ti.com [131118 08:23]:
 
 few params were passed via platform data in non-DT case and never cached
 in internal data structure, with non-dt support going away soon, I am
 planning to cleanup pdata usage in the driver when it gets to DT only 
 support.
 
 The issue of pdata tinkering needs to be fixed first as it will cause nasty
 issues when the module is reprobed.
 
 Agree that pdata usage needs to be fixed, but currently module
 reprobe is working fine.

OK. The sdio_irq should be just set in struct omap_hsmmc_host instead.

 Note that it's still possible to pass platform data in the device tree case
 as auxdata. And we probably need to do that for the pbias register handling
 until we have a driver for that.
 
 Talking of the pbias driver, any news on it?
 
 Almost there, will post the patches soon.
 Do you have a branch with updated board files, for me to base pbias patches on
 else I can base the patches on rc1 too.

Great. How about make the pbias driver DT only? Let's not touch the board-*.c
files any longer as those will be going away for v3.14. We can probably keep
the old callback support in place also, and then remove it for v3.15.

And after that it would certainly make sense to rip out the platform data
fomr hsmmc driver just to get rid of the legacy support for multiplexing slots
that's not needed in this driver. That would allow replacing all mmc-slots[0]
accesses with something more standard.

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: OMAP2+: Remove legacy mux code for display.c

2013-11-19 Thread Tony Lindgren
This is all omap4 specific, which is device tree based
nowadays and should use pinctrl-single instead.

Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/display.c | 78 ---
 1 file changed, 78 deletions(-)

diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index a4e536b..58347bb 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -32,7 +32,6 @@
 
 #include soc.h
 #include iomap.h
-#include mux.h
 #include control.h
 #include display.h
 #include prm.h
@@ -102,90 +101,13 @@ static const struct omap_dss_hwmod_data 
omap4_dss_hwmod_data[] __initconst = {
{ dss_hdmi, omapdss_hdmi, -1 },
 };
 
-static void __init omap4_tpd12s015_mux_pads(void)
-{
-   omap_mux_init_signal(hdmi_cec,
-   OMAP_PIN_INPUT_PULLUP);
-   omap_mux_init_signal(hdmi_ddc_scl,
-   OMAP_PIN_INPUT_PULLUP);
-   omap_mux_init_signal(hdmi_ddc_sda,
-   OMAP_PIN_INPUT_PULLUP);
-}
-
-static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags)
-{
-   u32 reg;
-   u16 control_i2c_1;
-
-   /*
-* CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and
-* HDMI_DDC_SCL_PULLUPRESX (bit 24) are set to disable
-* internal pull up resistor.
-*/
-   if (flags  OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP) {
-   control_i2c_1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_1;
-   reg = omap4_ctrl_pad_readl(control_i2c_1);
-   reg |= (OMAP4_HDMI_DDC_SDA_PULLUPRESX_MASK |
-   OMAP4_HDMI_DDC_SCL_PULLUPRESX_MASK);
-   omap4_ctrl_pad_writel(reg, control_i2c_1);
-   }
-}
-
-static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
-{
-   u32 enable_mask, enable_shift;
-   u32 pipd_mask, pipd_shift;
-   u32 reg;
-
-   if (dsi_id == 0) {
-   enable_mask = OMAP4_DSI1_LANEENABLE_MASK;
-   enable_shift = OMAP4_DSI1_LANEENABLE_SHIFT;
-   pipd_mask = OMAP4_DSI1_PIPD_MASK;
-   pipd_shift = OMAP4_DSI1_PIPD_SHIFT;
-   } else if (dsi_id == 1) {
-   enable_mask = OMAP4_DSI2_LANEENABLE_MASK;
-   enable_shift = OMAP4_DSI2_LANEENABLE_SHIFT;
-   pipd_mask = OMAP4_DSI2_PIPD_MASK;
-   pipd_shift = OMAP4_DSI2_PIPD_SHIFT;
-   } else {
-   return -ENODEV;
-   }
-
-   reg = omap4_ctrl_pad_readl(OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_DSIPHY);
-
-   reg = ~enable_mask;
-   reg = ~pipd_mask;
-
-   reg |= (lanes  enable_shift)  enable_mask;
-   reg |= (lanes  pipd_shift)  pipd_mask;
-
-   omap4_ctrl_pad_writel(reg, OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_DSIPHY);
-
-   return 0;
-}
-
-int __init omap_hdmi_init(enum omap_hdmi_flags flags)
-{
-   if (cpu_is_omap44xx()) {
-   omap4_hdmi_mux_pads(flags);
-   omap4_tpd12s015_mux_pads();
-   }
-
-   return 0;
-}
-
 static int omap_dsi_enable_pads(int dsi_id, unsigned lane_mask)
 {
-   if (cpu_is_omap44xx())
-   return omap4_dsi_mux_pads(dsi_id, lane_mask);
-
return 0;
 }
 
 static void omap_dsi_disable_pads(int dsi_id, unsigned lane_mask)
 {
-   if (cpu_is_omap44xx())
-   omap4_dsi_mux_pads(dsi_id, 0);
 }
 
 static int omap_dss_set_min_bus_tput(struct device *dev, unsigned long tput)
-- 
1.8.1.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/2] ARM: OMAP2+: Remove legacy omap4_twl6030_hsmmc_init

2013-11-19 Thread Tony Lindgren
This is no longer used, omap4 is device tree based now.

Signed-off-by: Tony Lindgren t...@atomide.com
---
 arch/arm/mach-omap2/common.h   |  1 -
 arch/arm/mach-omap2/omap4-common.c | 57 --
 2 files changed, 58 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index f7644fe..e30ef67 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -299,7 +299,6 @@ struct omap_sdrc_params;
 extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
  struct omap_sdrc_params *sdrc_cs1);
 struct omap2_hsmmc_info;
-extern int omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers);
 extern void omap_reserve(void);
 
 struct omap_hwmod;
diff --git a/arch/arm/mach-omap2/omap4-common.c 
b/arch/arm/mach-omap2/omap4-common.c
index 5791143..b39efd4 100644
--- a/arch/arm/mach-omap2/omap4-common.c
+++ b/arch/arm/mach-omap2/omap4-common.c
@@ -35,7 +35,6 @@
 #include iomap.h
 #include common.h
 #include mmc.h
-#include hsmmc.h
 #include prminst44xx.h
 #include prcm_mpu44xx.h
 #include omap4-sar-layout.h
@@ -284,59 +283,3 @@ skip_errata_init:
omap_wakeupgen_init();
irqchip_init();
 }
-
-#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
-static int omap4_twl6030_hsmmc_late_init(struct device *dev)
-{
-   int irq = 0;
-   struct platform_device *pdev = container_of(dev,
-   struct platform_device, dev);
-   struct omap_mmc_platform_data *pdata = dev-platform_data;
-
-   /* Setting MMC1 Card detect Irq */
-   if (pdev-id == 0) {
-   irq = twl6030_mmc_card_detect_config();
-   if (irq  0) {
-   dev_err(dev, %s: Error card detect config(%d)\n,
-   __func__, irq);
-   return irq;
-   }
-   pdata-slots[0].card_detect_irq = irq;
-   pdata-slots[0].card_detect = twl6030_mmc_card_detect;
-   }
-   return 0;
-}
-
-static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev)
-{
-   struct omap_mmc_platform_data *pdata;
-
-   /* dev can be null if CONFIG_MMC_OMAP_HS is not set */
-   if (!dev) {
-   pr_err(Failed %s\n, __func__);
-   return;
-   }
-   pdata = dev-platform_data;
-   pdata-init =   omap4_twl6030_hsmmc_late_init;
-}
-
-int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
-{
-   struct omap2_hsmmc_info *c;
-
-   omap_hsmmc_init(controllers);
-   for (c = controllers; c-mmc; c++) {
-   /* pdev can be null if CONFIG_MMC_OMAP_HS is not set */
-   if (!c-pdev)
-   continue;
-   omap4_twl6030_hsmmc_set_late_init(c-pdev-dev);
-   }
-
-   return 0;
-}
-#else
-int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
-{
-   return 0;
-}
-#endif
-- 
1.8.1.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 0/2] Remove some dead code for omaps

2013-11-19 Thread Tony Lindgren
Hi all,

I noticed we have some dead code left over after we made omap4
to boot in device tree only mode, so let's just remove it.

Regards,

Tony


Tony Lindgren (2):
  ARM: OMAP2+: Remove legacy mux code for display.c
  ARM: OMAP2+: Remove legacy omap4_twl6030_hsmmc_init

 arch/arm/mach-omap2/common.h   |  1 -
 arch/arm/mach-omap2/display.c  | 78 --
 arch/arm/mach-omap2/omap4-common.c | 57 
 3 files changed, 136 deletions(-)

-- 
1.8.1.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: [RFC 01/23] gpio/omap: raw read and write endian fix

2013-11-19 Thread Javier Martinez Canillas
On 11/19/2013 10:29 AM, Linus Walleij wrote:
 On Sat, Nov 16, 2013 at 1:01 AM, Taras Kondratiuk
 taras.kondrat...@linaro.org wrote:
 
 From: Victor Kamensky victor.kamen...@linaro.org

 All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
 Need to use endian neutral functions to read/write h/w registers.
 I.e instead of __raw_read[lw] and __raw_write[lw] functions code
 need to use read[lw]_relaxed and write[lw]_relaxed functions.
 If the first simply reads/writes register, the second will byteswap
 it if host operates in BE mode.

 Changes are trivial sed like replacement of __raw_xxx functions
 with xxx_relaxed variant.

 Signed-off-by: Victor Kamensky victor.kamen...@linaro.org
 Signed-off-by: Taras Kondratiuk taras.kondrat...@linaro.org
 
 Since I generally just dislike __raw accessors I went and applied
 this. If it collides with any of Tony's fixup work I might need to
 take the patch out again, no big deal.
 
 Some ACKs would be nice, but unless there are major objections
 this stays merged.

Looks good to me and also I've tested this patch on a TI DM3730 (Cortex A-8)
board in LE mode and found no regressions on devices using a GPIO.

Tested-by: Javier Martinez Canillas javier.marti...@collabora.co.uk

 
 Yours,
 Linus Walleij
 

Thanks a lot and best regards,
Javier
--
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: cpufreq on PandaBoard

2013-11-19 Thread Ben Gamari
Nishanth Menon n...@ti.com writes:

 On 11/19/2013 08:59 AM, Ben Gamari wrote:
 
 Booting a PandaBoard with a recent kernel and devicetree appears to be a
 rather messy process. There are dozens of devicetree-related warnings
 spewed on boot (many pertaining to missing regulators). At the moment,
 however, I'm most interested in this,
 
 cpufreq-cpu0 cpufreq-cpu0.0: no of_node; not parsing pinctrl DT
 cpu cpu0: dummy supplies not allowed
 cpufreq_cpu0: failed to get cpu0 regulator: -19
 cpufreq_cpu0: failed to get cpu0 clock: -2
 cpufreq-cpu0: probe of cpufreq-cpu0.0 failed with error -2
 
 What is the status of cpufreq on the PandaBoard? Is this expected to
 work?
 
 More generally, if one wants a fairly recent kernel supporting the
 PandaBoard's hardware what kernel tree should be used? Is mainline not
 yet appropriate? Is linux-next preferred? Perhaps a ti-maintained tree?
 
 for upstream: Wait for the clock nodes to get merged.. we are at v9 of
 discussion thread here[1].

I take it that the clock node work does not itself fix cpufreq? I've
built the 3.12-dt-clks-v10-dev branch. On the bright side, it boots and
appears to run just fine. Unfortunately, there isn't even a mention of
cpufreq in the boot log.

I've seen your Google+ post[1] from May enumerating the steps to having
working DVFS. It would be useful to post an update showing what has been
merged, what is waiting for merge, and what is still in progress.

 for ti-maintained tree, you need to talk to TI support folks for
 appropriate kernel for your product line.

I wasn't asking for official support, just wondering where work is
currently happening.

Thanks for your help.

Cheers,

- Ben


[1] https://plus.google.com/112464029509057661457/posts/gvyZQcNieoq


pgptSEyrcT6dw.pgp
Description: PGP signature


Re: cpufreq on PandaBoard

2013-11-19 Thread Nishanth Menon
On 11/19/2013 11:18 AM, Ben Gamari wrote:
 Nishanth Menon n...@ti.com writes:
 
 On 11/19/2013 08:59 AM, Ben Gamari wrote:

 Booting a PandaBoard with a recent kernel and devicetree appears to be a
 rather messy process. There are dozens of devicetree-related warnings
 spewed on boot (many pertaining to missing regulators). At the moment,
 however, I'm most interested in this,

 cpufreq-cpu0 cpufreq-cpu0.0: no of_node; not parsing pinctrl DT
 cpu cpu0: dummy supplies not allowed
 cpufreq_cpu0: failed to get cpu0 regulator: -19
 cpufreq_cpu0: failed to get cpu0 clock: -2
 cpufreq-cpu0: probe of cpufreq-cpu0.0 failed with error -2

 What is the status of cpufreq on the PandaBoard? Is this expected to
 work?

 More generally, if one wants a fairly recent kernel supporting the
 PandaBoard's hardware what kernel tree should be used? Is mainline not
 yet appropriate? Is linux-next preferred? Perhaps a ti-maintained tree?

 for upstream: Wait for the clock nodes to get merged.. we are at v9 of
 discussion thread here[1].

 I take it that the clock node work does not itself fix cpufreq? I've
 built the 3.12-dt-clks-v10-dev branch. On the bright side, it boots and
 appears to run just fine. Unfortunately, there isn't even a mention of
 cpufreq in the boot log.

You are probably picking up a branch that is yet to be posted :)...
and I assume you know the risk of in-development patches ;) - the
branch looks to introduce purely clock nodes which patch [2] adds on
to and makes cpufreq work as a start..


 
 I've seen your Google+ post[1] from May enumerating the steps to having
 working DVFS. It would be useful to post an update showing what has been
 merged, what is waiting for merge, and what is still in progress.

We are still at step 1 - get clock nodes :(... and no, situation has
not improved since May 2013 when I originally posted that G+ comment
(and not because we have not been trying..).

 
 for ti-maintained tree, you need to talk to TI support folks for
 appropriate kernel for your product line.

 I wasn't asking for official support, just wondering where work is
 currently happening.

they are happening here in linux-omap mailing list.. just that the
changes are pretty fundamental and a lot of discussions have been
taking place
 
 Thanks for your help.
 
 Cheers,
 
 - Ben
 
 
 [1] https://plus.google.com/112464029509057661457/posts/gvyZQcNieoq
 
[2] http://marc.info/?l=linux-omapm=138193821608515w=2

-- 
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 RFC 4/9] ASoC: hdmi-codec: Add devicetree binding with documentation

2013-11-19 Thread Mark Brown
On Tue, Nov 19, 2013 at 02:12:24PM +0200, Jyri Sarha wrote:
 Signed-off-by: Jyri Sarha jsa...@ti.com
 ---
  Documentation/devicetree/bindings/sound/hdmi.txt |   17 +
  sound/soc/codecs/hdmi.c  |   10 ++

Device tree bindings need to be sent to the DT folks for review as well.
This looks OK but it should still go there. 


signature.asc
Description: Digital signature


Re: cpufreq on PandaBoard

2013-11-19 Thread Ben Gamari
Nishanth Menon n...@ti.com writes:

 On 11/19/2013 11:18 AM, Ben Gamari wrote:
 
 I take it that the clock node work does not itself fix cpufreq? I've
 built the 3.12-dt-clks-v10-dev branch. On the bright side, it boots and
 appears to run just fine. Unfortunately, there isn't even a mention of
 cpufreq in the boot log.

 You are probably picking up a branch that is yet to be posted :)...
 and I assume you know the risk of in-development patches ;)
 
The house hasn't burned down yet... ;)

 - the branch looks to introduce purely clock nodes which patch [2]
 adds on to and makes cpufreq work as a start..

Thanks!

 
 I've seen your Google+ post[1] from May enumerating the steps to having
 working DVFS. It would be useful to post an update showing what has been
 merged, what is waiting for merge, and what is still in progress.

 We are still at step 1 - get clock nodes :(... and no, situation has
 not improved since May 2013 when I originally posted that G+ comment
 (and not because we have not been trying..).

Ouch. Good luck! 

 I wasn't asking for official support, just wondering where work is
 currently happening.

 they are happening here in linux-omap mailing list.. just that the
 changes are pretty fundamental and a lot of discussions have been
 taking place
 
Thanks!

Cheers,

- Ben


pgp2zx9Gmb5bu.pgp
Description: PGP signature


Re: [RFC 01/23] gpio/omap: raw read and write endian fix

2013-11-19 Thread Kevin Hilman
Linus Walleij linus.wall...@linaro.org writes:

 On Sat, Nov 16, 2013 at 1:01 AM, Taras Kondratiuk
 taras.kondrat...@linaro.org wrote:

 From: Victor Kamensky victor.kamen...@linaro.org

 All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
 Need to use endian neutral functions to read/write h/w registers.
 I.e instead of __raw_read[lw] and __raw_write[lw] functions code
 need to use read[lw]_relaxed and write[lw]_relaxed functions.
 If the first simply reads/writes register, the second will byteswap
 it if host operates in BE mode.

 Changes are trivial sed like replacement of __raw_xxx functions
 with xxx_relaxed variant.

 Signed-off-by: Victor Kamensky victor.kamen...@linaro.org
 Signed-off-by: Taras Kondratiuk taras.kondrat...@linaro.org

 Since I generally just dislike __raw accessors I went and applied
 this. If it collides with any of Tony's fixup work I might need to
 take the patch out again, no big deal.

 Some ACKs would be nice, but unless there are major objections
 this stays merged.

Acked-by: Kevin Hilman khil...@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: [PATCH RFC 2/9] ASoC: davinci-evm: Add named clock reference to DT bindings

2013-11-19 Thread Mark Brown
On Tue, Nov 19, 2013 at 02:12:22PM +0200, Jyri Sarha wrote:

  .../bindings/sound/davinci-evm-audio.txt   |9 ++-
  sound/soc/davinci/davinci-evm.c|   60 
 +++-

Again this looks sensible but ought to go to the DT folks.


signature.asc
Description: Digital signature


Re: [PATCH RFC 5/9] ASoC: hdmi-codec: Add SNDRV_PCM_FMTBIT_32_LE playback format

2013-11-19 Thread Mark Brown
On Tue, Nov 19, 2013 at 02:12:25PM +0200, Jyri Sarha wrote:
 The new playback format is needed for tda998x HDMI audio support. At
 the moment the only other user of this codec is omap-hdmi-audio. This
 change should not break anything because omap-hdmi-audio-dai, the
 cpu-dai of omap-hdmi-audio, enforces sufficient constraints to
 available sample formats.

Applied, thanks.


signature.asc
Description: Digital signature


Re: [RFC 01/23] gpio/omap: raw read and write endian fix

2013-11-19 Thread Santosh Shilimkar
On Friday 15 November 2013 07:01 PM, Taras Kondratiuk wrote:
 From: Victor Kamensky victor.kamen...@linaro.org
 
 All OMAP IP blocks expect LE data, but CPU may operate in BE mode.
 Need to use endian neutral functions to read/write h/w registers.
 I.e instead of __raw_read[lw] and __raw_write[lw] functions code
 need to use read[lw]_relaxed and write[lw]_relaxed functions.
 If the first simply reads/writes register, the second will byteswap
 it if host operates in BE mode.
 
 Changes are trivial sed like replacement of __raw_xxx functions
 with xxx_relaxed variant.
 
 Signed-off-by: Victor Kamensky victor.kamen...@linaro.org
 Signed-off-by: Taras Kondratiuk taras.kondrat...@linaro.org
 ---
Acked-by: Santosh Shilimkar santosh.shilim...@ti.com

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


[GIT PULL] few more omap fixes for v3.13 merge window

2013-11-19 Thread Tony Lindgren
The following changes since commit 26273e02a0cf18eb72416559310d3294390a9024:

  ARM: OMAP2+: Fix build for dra7xx without omap4 and 5 (2013-11-15 08:27:29 
-0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
tags/omap-for-v3.13/more-fixes-for-merge-window-take2

for you to fetch changes up to b2ff4790612bbfa3433cc92e56445c2a40098e2c:

  ARM: OMAP2+: Remove legacy omap4_twl6030_hsmmc_init (2013-11-18 16:24:58 
-0800)


Few more fixes for issues found booting older omaps using device tree.
Also few randconfig build fixes and removal of some dead code for omap4
as it no longer has legacy platform data based booting support.


Tony Lindgren (9):
  i2c: omap: Fix missing device tree flags for omap2
  ARM: OMAP2+: Fix GPMC and simplify bootloader timings for 8250 and smc91x
  ARM: dts: Fix omap2 specific dtsi files by adding the missing entries
  ARM: OMAP2+: More randconfig fixes for reconfigure_io_chain
  gpio: twl4030: Fix regression for twl gpio output
  gpio: twl4030: Fix passing of pdata in the device tree case
  ARM: OMAP2+: Fix undefined reference to set_cntfreq
  ARM: OMAP2+: Remove legacy mux code for display.c
  ARM: OMAP2+: Remove legacy omap4_twl6030_hsmmc_init

 Documentation/devicetree/bindings/i2c/i2c-omap.txt |  3 +-
 arch/arm/boot/dts/omap-zoom-common.dtsi|  2 +-
 arch/arm/boot/dts/omap2.dtsi   | 96 ++
 arch/arm/boot/dts/omap2420.dtsi| 23 ++
 arch/arm/boot/dts/omap2430.dtsi| 49 +++
 arch/arm/mach-omap2/Makefile   |  6 +-
 arch/arm/mach-omap2/common.h   |  1 -
 arch/arm/mach-omap2/display.c  | 78 --
 arch/arm/mach-omap2/gpmc.c | 58 +
 arch/arm/mach-omap2/omap-secure.h  |  7 ++
 arch/arm/mach-omap2/omap4-common.c | 57 -
 arch/arm/mach-omap2/prm44xx_54xx.h |  2 +-
 drivers/gpio/gpio-twl4030.c| 13 ++-
 drivers/i2c/busses/i2c-omap.c  | 22 +
 14 files changed, 232 insertions(+), 185 deletions(-)
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] few more omap fixes for v3.13 merge window

2013-11-19 Thread Olof Johansson
On Tue, Nov 19, 2013 at 11:48 AM, Tony Lindgren t...@atomide.com wrote:
 The following changes since commit 26273e02a0cf18eb72416559310d3294390a9024:

   ARM: OMAP2+: Fix build for dra7xx without omap4 and 5 (2013-11-15 08:27:29 
 -0800)

 are available in the git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
 tags/omap-for-v3.13/more-fixes-for-merge-window-take2

Pulled, thanks.


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


Re: [PATCH v3 09/10] ARM: dts: omap3-beagle-xm: Add USB Host support

2013-11-19 Thread Nishanth Menon


On 09/24/2013 03:53 AM, Roger Quadros wrote:
 Provide RESET GPIO and Power regulator for the USB PHY,
 the USB Host port mode and the PHY device for the controller.
 Also provide pin multiplexer information for USB host pins.
 
 We also relocate omap3_pmx_core pin definations so that they
 are close to omap3_pmx_wkup pin definations.
 
 Signed-off-by: Roger Quadros rog...@ti.com
 ---

just using this thread, but a question -

I am kernel * master   dec8e46 Merge
tag 'arc-v3.13-rc1-part2' of
git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc

and I see that VAUX2 which supplies USB_1V8[1] is not enabled - I did
a quick patch and it did seem to work (Usb keyboard, networking, mouse
etc on my ehci ports seems to come up good) - any suggestions how we'd
like to handle this?

--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -169,6 +169,14 @@
bus-width = 8;
 };

+vaux2 {
+   regulator-name = HubPower;
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   regulator-always-on;
+};
+
+

[1]
https://github.com/CircuitCo/BeagleBoard-xM-RevC/blob/master/BeagleBoard-xM_revC_SCH.pdf?raw=true

  arch/arm/boot/dts/omap3-beagle-xm.dts |   65 
 -
  1 files changed, 56 insertions(+), 9 deletions(-)
 
 diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts 
 b/arch/arm/boot/dts/omap3-beagle-xm.dts
 index afdb164..b081f5a 100644
 --- a/arch/arm/boot/dts/omap3-beagle-xm.dts
 +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
 @@ -69,6 +69,23 @@
   };
  
   };
 +
 + /* HS USB Port 2 Power */
 + hsusb2_power: hsusb2_power_reg {
 + compatible = regulator-fixed;
 + regulator-name = hsusb2_vbus;
 + regulator-min-microvolt = 330;
 + regulator-max-microvolt = 330;
 + gpio = twl_gpio 18 0;/* GPIO LEDA */
 + startup-delay-us = 7;
 + };
 +
 + /* HS USB Host PHY on PORT 2 */
 + hsusb2_phy: hsusb2_phy {
 + compatible = usb-nop-xceiv;
 + reset-gpios = gpio5 19 GPIO_ACTIVE_LOW; /* gpio_147 */
 + vcc-supply = hsusb2_power;
 + };
  };
  
  omap3_pmx_wkup {
 @@ -79,6 +96,37 @@
   };
  };
  
 +omap3_pmx_core {
 + pinctrl-names = default;
 + pinctrl-0 = 
 + hsusbb2_pins
 + ;
 +
 + uart3_pins: pinmux_uart3_pins {
 + pinctrl-single,pins = 
 + 0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* 
 uart3_rx_irrx.uart3_rx_irrx */
 + 0x170 (PIN_OUTPUT | MUX_MODE0) /* 
 uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
 + ;
 + };
 +
 + hsusbb2_pins: pinmux_hsusbb2_pins {
 + pinctrl-single,pins = 
 + 0x5c0 (PIN_OUTPUT | MUX_MODE3)  /* 
 etk_d10.hsusb2_clk */
 + 0x5c2 (PIN_OUTPUT | MUX_MODE3)  /* 
 etk_d11.hsusb2_stp */
 + 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 etk_d12.hsusb2_dir */
 + 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 etk_d13.hsusb2_nxt */
 + 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 etk_d14.hsusb2_data0 */
 + 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 etk_d15.hsusb2_data1 */
 + 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi1_cs3.hsusb2_data2 */
 + 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi2_clk.hsusb2_data7 */
 + 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi2_simo.hsusb2_data4 */
 + 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi2_somi.hsusb2_data5 */
 + 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi2_cs0.hsusb2_data6 */
 + 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
 mcspi2_cs1.hsusb2_data3 */
 + ;
 + };
 +};
 +
  i2c1 {
   clock-frequency = 260;
  
 @@ -148,15 +196,6 @@
   power = 50;
  };
  
 -omap3_pmx_core {
 - uart3_pins: pinmux_uart3_pins {
 - pinctrl-single,pins = 
 - 0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* 
 uart3_rx_irrx.uart3_rx_irrx */
 - 0x170 (PIN_OUTPUT | MUX_MODE0) /* 
 uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */
 - ;
 - };
 -};
 -
  uart3 {
   pinctrl-names = default;
   pinctrl-0 = uart3_pins;
 @@ -166,3 +205,11 @@
   pinctrl-names = default;
   pinctrl-0 = gpio1_pins;
  };
 +
 +usbhshost {
 + port2-mode = ehci-phy;
 +};
 +
 +usbhsehci {
 + phys = 0 hsusb2_phy;
 +};
 


-- 
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 v2 0/3] Add support for charging battery in Nokia RX-51

2013-11-19 Thread Pali Rohár
On Tuesday 19 November 2013 15:44:09 Sebastian Reichel wrote:
 Hi Pali,
 
 On Tue, Nov 19, 2013 at 11:18:02AM +0100, Pali Rohár wrote:
  This patch series finally bringing support for charging
  battery on Nokia N900 (RX-51) without any proprietary Nokia
  bits in userspace.
 
 YAY! :)
 
  I removed hook function from bq2415x_charger driver and
  replaced it by Jenny TC power_supply notifier code. This
  simplify usage of bq2415x driver and also allow adding DT
  support in future because driver does not need board
  specific function anymore (only static data).
  
  I tested this series with linux 3.12-rc5 on Nokia N900.
 
 cool :)
 
 Do you want me to take this up and add DT support?
 
 -- Sebastian

Hello, if you have time, can you add DT support code?

-- 
Pali Rohár
pali.ro...@gmail.com


signature.asc
Description: This is a digitally signed message part.


[PATCH v2 00/11]: add remaining support for IGEP boards

2013-11-19 Thread Javier Martinez Canillas
In order to make mach-omap2 Device Tree only, the board file for
IGEP boards was removed even when support for wifi and display
was still not supported by its DTS.

This is a second version of a patch-set that adds support for
these remaining peripherals and also adds support for USB,
HDMI and user LED for the am33xx SoC based IGEP Aquila board.

The patch-set is composed of the following patches:

Enric Balletbo i Serra (7):
  ARM: dts: omap3-igep: Fix bus-width for mmc1.
  ARM: dts: omap3-igep: Add support for LBEE1USJYC WiFi connected to SDIO.
  ARM: dts: omap3-igep: Update to use the TI AM/DM37x processor.
  ARM: dts: AM33XX BASE0033: add pinmux and hdmi node to enable display
  ARM: dts: AM33XX BASE0033: add pinmux and user led support.
  ARM: dts: AM33XX BASE0033: add 32KBit EEPROM support.
  ARM: dts: AM33XX IGEP0033: add USB support.

Javier Martinez Canillas (4):
  ARM: dts: omap3-igep0020: Add pinmux setup for i2c devices
  ARM: dts: omap3-igep0020: Add pinmuxing for DVI output
  ARM: OMAP: dss-common: change IGEP's DVI DDC i2c bus
  ARM: dts: omap3-igep0020: name twl4030 VPLL2 regulator as vdds_dsi

Changes since v1:

 Don't add a workaround in drivers/video/omap2/dss/dpi.c to use the
 VPLL2 regulator from twl4030 if VDDS_DSI regulator is not linked to
 the DPI device since the used regulator is a per board configuration.

 Instead add a regulator-name = vdds_dsi property to the regulator
 in the IGEPv2 DTS file as suggested by Tony Lindgren. 

Tony,

Most of these patches are just DTS changes so they have to be picked
by Benoit besides the following patch that has to go through your tree

[PATCH 10/11] ARM: OMAP: dss-common: change IGEP's DVI DDC i2c bus

Since we have removed the board file for IGEP boards I think these
can be considered as regression fixes for 3.13 although I don't mind
if you prefer to wait for 3.14.

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


[PATCH v2 01/11] ARM: dts: omap3-igep: Fix bus-width for mmc1.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@gmail.com

Both, IGEPv2 and IGEP COM MODULE have a bus-width of 4 not 8, so fix this and
do not mux data pins from mmc1_data4 to mmc1_data7.

Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
---
 arch/arm/boot/dts/omap3-igep.dtsi | 6 +-
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/omap3-igep.dtsi 
b/arch/arm/boot/dts/omap3-igep.dtsi
index ba1e58b..d4fecce 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -65,10 +65,6 @@
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 */
-   0x120 (PIN_INPUT | MUX_MODE0)   /* 
sdmmc1_dat4.sdmmc1_dat4 */
-   0x122 (PIN_INPUT | MUX_MODE0)   /* 
sdmmc1_dat5.sdmmc1_dat5 */
-   0x124 (PIN_INPUT | MUX_MODE0)   /* 
sdmmc1_dat6.sdmmc1_dat6 */
-   0x126 (PIN_INPUT | MUX_MODE0)   /* 
sdmmc1_dat7.sdmmc1_dat7 */
;
};
 
@@ -114,7 +110,7 @@
   pinctrl-0 = mmc1_pins;
   vmmc-supply = vmmc1;
   vmmc_aux-supply = vsim;
-  bus-width = 8;
+  bus-width = 4;
 };
 
 mmc2 {
-- 
1.8.4.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 v2 09/11] ARM: dts: AM33XX IGEP0033: add USB support.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@iseebcn.com

Add node to support the USB Host and the USB OTG on the IGEP AQUILA
Processor Board.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/boot/dts/am335x-igep0033.dtsi | 29 +
 1 file changed, 29 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-igep0033.dtsi 
b/arch/arm/boot/dts/am335x-igep0033.dtsi
index 6196244..7063311 100644
--- a/arch/arm/boot/dts/am335x-igep0033.dtsi
+++ b/arch/arm/boot/dts/am335x-igep0033.dtsi
@@ -199,6 +199,35 @@
pinctrl-0 = uart0_pins;
 };
 
+usb {
+   status = okay;
+
+   control@44e1 {
+   status = okay;
+   };
+
+   usb-phy@47401300 {
+   status = okay;
+   };
+
+   usb-phy@47401b00 {
+   status = okay;
+   };
+
+   usb@47401000 {
+   status = okay;
+   };
+
+   usb@47401800 {
+   status = okay;
+   dr_mode = host;
+   };
+
+   dma-controller@07402000  {
+   status = okay;
+   };
+};
+
 #include tps65910.dtsi
 
 tps {
-- 
1.8.4.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 v2 10/11] ARM: OMAP: dss-common: change IGEP's DVI DDC i2c bus

2013-11-19 Thread Javier Martinez Canillas
IGEP's DVI connector's DDC pins are connected to OMAP's third i2c bus.

When booting with Device Trees the requested bus number is set to -1
which means that the bus number should be dynamically assigned. So the
third i2c bus has 2 has a bus number.

Since now only DT booting is supported for IGEP boards after commit
06ff74fd (ARM: OMAP2+: remove legacy support for IGEP boards), the
i2c bus number has to be changed.

Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---
 arch/arm/mach-omap2/dss-common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c
index 365bfd3..dadccc9 100644
--- a/arch/arm/mach-omap2/dss-common.c
+++ b/arch/arm/mach-omap2/dss-common.c
@@ -223,7 +223,7 @@ void __init omap_4430sdp_display_init_of(void)
 static struct connector_dvi_platform_data omap3_igep2_dvi_connector_pdata = {
.name   = dvi,
.source = tfp410.0,
-   .i2c_bus_num= 3,
+   .i2c_bus_num= 2,
 };
 
 static struct platform_device omap3_igep2_dvi_connector_device = {
-- 
1.8.4.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 v2 02/11] ARM: dts: omap3-igep: Add support for LBEE1USJYC WiFi connected to SDIO.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@gmail.com

The LBEE1USJYC is a WiFi/BT combo module used on OMAP3-based IGEP boards. In
both cases, IGEPv2 Rev. C and IGEP COM MODULE, the module is connected using
the same MMC interface and uses the same GPIOs.

Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
---
 arch/arm/boot/dts/omap3-igep.dtsi | 45 ++-
 1 file changed, 44 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/omap3-igep.dtsi 
b/arch/arm/boot/dts/omap3-igep.dtsi
index d4fecce..b3517b2 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -24,6 +24,25 @@
ti,mcbsp = mcbsp2;
ti,codec = twl_audio;
};
+
+   vdd33: regulator-vdd33 {
+   compatible = regulator-fixed;
+   regulator-name = vdd33;
+   regulator-always-on;
+   };
+
+   lbee1usjyc_vmmc: lbee1usjyc_vmmc {
+   pinctrl-names = default;
+   pinctrl-0 = lbee1usjyc_pins;
+   compatible = regulator-fixed;
+   regulator-name = regulator-lbee1usjyc;
+   regulator-min-microvolt = 330;
+   regulator-max-microvolt = 330;
+   gpio = gpio5 10 GPIO_ACTIVE_HIGH;/* gpio_138 WIFI_PDN */
+   startup-delay-us = 1;
+   enable-active-high;
+   vin-supply = vdd33;
+   };
 };
 
 omap3_pmx_core {
@@ -48,6 +67,15 @@
;
};
 
+   /* WiFi/BT combo */
+   lbee1usjyc_pins: pinmux_lbee1usjyc_pins {
+   pinctrl-single,pins = 
+   0x136 (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat5.gpio_137 
*/
+   0x138 (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat6.gpio_138 
*/
+   0x13a (PIN_OUTPUT | MUX_MODE4)  /* sdmmc2_dat7.gpio_139 
*/
+   ;
+   };
+
mcbsp2_pins: pinmux_mcbsp2_pins {
pinctrl-single,pins = 
0x10c (PIN_INPUT | MUX_MODE0)   /* 
mcbsp2_fsx.mcbsp2_fsx */
@@ -68,6 +96,17 @@
;
};
 
+   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 */
+   ;
+   };
+
smsc911x_pins: pinmux_smsc911x_pins {
pinctrl-single,pins = 
0x1a2 (PIN_INPUT | MUX_MODE4)   /* 
mcspi1_cs2.gpio_176 */
@@ -114,7 +153,11 @@
 };
 
 mmc2 {
-   status = disabled;
+   pinctrl-names = default;
+   pinctrl-0 = mmc2_pins;
+   vmmc-supply = lbee1usjyc_vmmc;
+   bus-width = 4;
+   non-removable;
 };
 
 mmc3 {
-- 
1.8.4.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 v2 06/11] ARM: dts: AM33XX BASE0033: add pinmux and hdmi node to enable display

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@gmail.com

Enable the hdmi output and the LCD Controller on IGEP AQUILA. Also
configure the correct pinmux for output of video data from the SoC
to the HDMI encoder.

Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
---
 arch/arm/boot/dts/am335x-base0033.dts | 47 +++
 1 file changed, 47 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-base0033.dts 
b/arch/arm/boot/dts/am335x-base0033.dts
index b4f95c2..3a97613 100644
--- a/arch/arm/boot/dts/am335x-base0033.dts
+++ b/arch/arm/boot/dts/am335x-base0033.dts
@@ -13,4 +13,51 @@
 / {
model = IGEP COM AM335x on AQUILA Expansion;
compatible = isee,am335x-base0033, isee,am335x-igep0033, 
ti,am33xx;
+
+   hdmi {
+   compatible = ti,tilcdc,slave;
+   i2c = i2c0;
+   pinctrl-names = default, off;
+   pinctrl-0 = nxp_hdmi_pins;
+   pinctrl-1 = nxp_hdmi_off_pins;
+   status = okay;
+   };
+};
+
+am33xx_pinmux {
+   nxp_hdmi_pins: pinmux_nxp_hdmi_pins {
+   pinctrl-single,pins = 
+   0x1b0 (PIN_OUTPUT | MUX_MODE3)  /* 
xdma_event_intr0.clkout1 */
+   0xa0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data0 */
+   0xa4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data1 */
+   0xa8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data2 */
+   0xac (PIN_OUTPUT | MUX_MODE0)   /* lcd_data3 */
+   0xb0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data4 */
+   0xb4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data5 */
+   0xb8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data6 */
+   0xbc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data7 */
+   0xc0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data8 */
+   0xc4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data9 */
+   0xc8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data10 */
+   0xcc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data11 */
+   0xd0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data12 */
+   0xd4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data13 */
+   0xd8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_data14 */
+   0xdc (PIN_OUTPUT | MUX_MODE0)   /* lcd_data15 */
+   0xe0 (PIN_OUTPUT | MUX_MODE0)   /* lcd_vsync */
+   0xe4 (PIN_OUTPUT | MUX_MODE0)   /* lcd_hsync */
+   0xe8 (PIN_OUTPUT | MUX_MODE0)   /* lcd_pclk */
+   0xec (PIN_OUTPUT | MUX_MODE0)   /* lcd_ac_bias_en */
+   ;
+   };
+   nxp_hdmi_off_pins: pinmux_nxp_hdmi_off_pins {
+   pinctrl-single,pins = 
+   0x1b0 (PIN_OUTPUT | MUX_MODE3)  /* 
xdma_event_intr0.clkout1 */
+   ;
+   };
 };
+
+lcdc {
+   status = okay;
+};
+
-- 
1.8.4.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 v2 07/11] ARM: dts: AM33XX BASE0033: add pinmux and user led support.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@iseebcn.com

Enable the user leds on the IGEP AQUILA EXPANSION. The has two leds,
one green and one red, that are controllable by software.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/boot/dts/am335x-base0033.dts | 26 ++
 1 file changed, 26 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-base0033.dts 
b/arch/arm/boot/dts/am335x-base0033.dts
index 3a97613..2878024 100644
--- a/arch/arm/boot/dts/am335x-base0033.dts
+++ b/arch/arm/boot/dts/am335x-base0033.dts
@@ -22,6 +22,25 @@
pinctrl-1 = nxp_hdmi_off_pins;
status = okay;
};
+
+   leds_base {
+   pinctrl-names = default;
+   pinctrl-0 = leds_base_pins;
+
+   compatible = gpio-leds;
+
+   led@0 {
+   label = base:red:user;
+   gpios = gpio1 21 GPIO_ACTIVE_HIGH;   /* gpio1_21 */
+   default-state = off;
+   };
+
+   led@1 {
+   label = base:green:user;
+   gpios = gpio2 0 GPIO_ACTIVE_HIGH;/* gpio2_0 */
+   default-state = off;
+   };
+   };
 };
 
 am33xx_pinmux {
@@ -55,6 +74,13 @@
0x1b0 (PIN_OUTPUT | MUX_MODE3)  /* 
xdma_event_intr0.clkout1 */
;
};
+
+   leds_base_pins: pinmux_leds_base_pins {
+   pinctrl-single,pins = 
+   0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* 
gpmc_a5.gpio1_21 */
+   0x88 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)  /* 
gpmc_csn3.gpio2_0 */
+   ;
+   };
 };
 
 lcdc {
-- 
1.8.4.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 v2 03/11] ARM: dts: omap3-igep: Update to use the TI AM/DM37x processor.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@gmail.com

Most of the boards are using the TI AM/DM37x processor, there is only a small
quantity of IGEP Processor Boards based on TI OMAP3530. So it's better use the
omap36xx.dtsi include instead of omap34xx.dtsi include.

To avoid confusion we have added to the model the (TI AM/DM37x) comment.

Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
---
 arch/arm/boot/dts/omap3-igep.dtsi| 4 ++--
 arch/arm/boot/dts/omap3-igep0020.dts | 4 ++--
 arch/arm/boot/dts/omap3-igep0030.dts | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/omap3-igep.dtsi 
b/arch/arm/boot/dts/omap3-igep.dtsi
index b3517b2..e4c8769 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -1,5 +1,5 @@
 /*
- * Device Tree Source for IGEP Technology devices
+ * Common device tree for IGEP boards based on AM/DM37x
  *
  * Copyright (C) 2012 Javier Martinez Canillas jav...@collabora.co.uk
  * Copyright (C) 2012 Enric Balletbo i Serra eballe...@gmail.com
@@ -10,7 +10,7 @@
  */
 /dts-v1/;
 
-#include omap34xx.dtsi
+#include omap36xx.dtsi
 
 / {
memory {
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts 
b/arch/arm/boot/dts/omap3-igep0020.dts
index d5cc792..33ce123 100644
--- a/arch/arm/boot/dts/omap3-igep0020.dts
+++ b/arch/arm/boot/dts/omap3-igep0020.dts
@@ -1,5 +1,5 @@
 /*
- * Device Tree Source for IGEPv2 board
+ * Device Tree Source for IGEPv2 Rev. (TI OMAP AM/DM37x)
  *
  * Copyright (C) 2012 Javier Martinez Canillas jav...@collabora.co.uk
  * Copyright (C) 2012 Enric Balletbo i Serra eballe...@gmail.com
@@ -13,7 +13,7 @@
 #include omap-gpmc-smsc911x.dtsi
 
 / {
-   model = IGEPv2;
+   model = IGEPv2 (TI OMAP AM/DM37x);
compatible = isee,omap3-igep0020, ti,omap3;
 
leds {
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts 
b/arch/arm/boot/dts/omap3-igep0030.dts
index 525e6d9..02a23f8 100644
--- a/arch/arm/boot/dts/omap3-igep0030.dts
+++ b/arch/arm/boot/dts/omap3-igep0030.dts
@@ -1,5 +1,5 @@
 /*
- * Device Tree Source for IGEP COM Module
+ * Device Tree Source for IGEP COM MODULE (TI OMAP AM/DM37x)
  *
  * Copyright (C) 2012 Javier Martinez Canillas jav...@collabora.co.uk
  * Copyright (C) 2012 Enric Balletbo i Serra eballe...@gmail.com
@@ -12,7 +12,7 @@
 #include omap3-igep.dtsi
 
 / {
-   model = IGEP COM Module;
+   model = IGEP COM MODULE (TI OMAP AM/DM37x);
compatible = isee,omap3-igep0030, ti,omap3;
 
leds {
-- 
1.8.4.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 v2 08/11] ARM: dts: AM33XX BASE0033: add 32KBit EEPROM support.

2013-11-19 Thread Javier Martinez Canillas
From: Enric Balletbo i Serra eballe...@iseebcn.com

The IGEP AQUILA EXPANSION has a 32KBit EEPROM for user data storage.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/boot/dts/am335x-base0033.dts | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-base0033.dts 
b/arch/arm/boot/dts/am335x-base0033.dts
index 2878024..a76ea11 100644
--- a/arch/arm/boot/dts/am335x-base0033.dts
+++ b/arch/arm/boot/dts/am335x-base0033.dts
@@ -87,3 +87,10 @@
status = okay;
 };
 
+i2c0 {
+   eeprom: eeprom@50 {
+   compatible = at,24c256;
+   reg = 0x50;
+   };
+};
+
-- 
1.8.4.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 v2 05/11] ARM: dts: omap3-igep0020: Add pinmuxing for DVI output

2013-11-19 Thread Javier Martinez Canillas
The IGEPv2 has a TFP410 DPI-to-DVI encoder attached to OMAP's
Display SubSystem (DSS).

Add mux setup for DSS pins and also for the GPIO 170 pin that
is used to ensure that the DVI-D is powered down on power up.

Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---
 arch/arm/boot/dts/omap3-igep0020.dts | 41 
 1 file changed, 41 insertions(+)

diff --git a/arch/arm/boot/dts/omap3-igep0020.dts 
b/arch/arm/boot/dts/omap3-igep0020.dts
index 33ce123..b9a9e17 100644
--- a/arch/arm/boot/dts/omap3-igep0020.dts
+++ b/arch/arm/boot/dts/omap3-igep0020.dts
@@ -67,6 +67,8 @@
pinctrl-names = default;
pinctrl-0 = 
hsusbb1_pins
+   tfp410_pins
+   dss_pins
;
 
hsusbb1_pins: pinmux_hsusbb1_pins {
@@ -85,6 +87,45 @@
0x5ba (PIN_INPUT_PULLDOWN | MUX_MODE3)  /* 
etk_d7.hsusb1_data3 */
;
};
+
+   tfp410_pins: tfp410_dvi_pins {
+   pinctrl-single,pins = 
+   0x196 (PIN_OUTPUT | MUX_MODE4)   /* hdq_sio.gpio_170 */
+   ;
+   };
+
+   dss_pins: pinmux_dss_dvi_pins {
+   pinctrl-single,pins = 
+   0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
+   0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync 
*/
+   0x0a8 (PIN_OUTPUT | MUX_MODE0)   /* dss_vsync.dss_vsync 
*/
+   0x0aa (PIN_OUTPUT | MUX_MODE0)   /* 
dss_acbias.dss_acbias */
+   0x0ac (PIN_OUTPUT | MUX_MODE0)   /* dss_data0.dss_data0 
*/
+   0x0ae (PIN_OUTPUT | MUX_MODE0)   /* dss_data1.dss_data1 
*/
+   0x0b0 (PIN_OUTPUT | MUX_MODE0)   /* dss_data2.dss_data2 
*/
+   0x0b2 (PIN_OUTPUT | MUX_MODE0)   /* dss_data3.dss_data3 
*/
+   0x0b4 (PIN_OUTPUT | MUX_MODE0)   /* dss_data4.dss_data4 
*/
+   0x0b6 (PIN_OUTPUT | MUX_MODE0)   /* dss_data5.dss_data5 
*/
+   0x0b8 (PIN_OUTPUT | MUX_MODE0)   /* dss_data6.dss_data6 
*/
+   0x0ba (PIN_OUTPUT | MUX_MODE0)   /* dss_data7.dss_data7 
*/
+   0x0bc (PIN_OUTPUT | MUX_MODE0)   /* dss_data8.dss_data8 
*/
+   0x0be (PIN_OUTPUT | MUX_MODE0)   /* dss_data9.dss_data9 
*/
+   0x0c0 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data10.dss_data10 */
+   0x0c2 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data11.dss_data11 */
+   0x0c4 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data12.dss_data12 */
+   0x0c6 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data13.dss_data13 */
+   0x0c8 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data14.dss_data14 */
+   0x0ca (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data15.dss_data15 */
+   0x0cc (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data16.dss_data16 */
+   0x0ce (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data17.dss_data17 */
+   0x0d0 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data18.dss_data18 */
+   0x0d2 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data19.dss_data19 */
+   0x0d4 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data20.dss_data20 */
+   0x0d6 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data21.dss_data21 */
+   0x0d8 (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data22.dss_data22 */
+   0x0da (PIN_OUTPUT | MUX_MODE0)   /* 
dss_data23.dss_data23 */
+   ;
+   };
 };
 
 leds_pins {
-- 
1.8.4.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 v2 11/11] ARM: dts: omap3-igep0020: name twl4030 VPLL2 regulator as vdds_dsi

2013-11-19 Thread Javier Martinez Canillas
On Device Tree boot the VDDS_DSI regulator is not linked to
the DPI device so omapfb driver probing fails with:

[3.186035] OMAPFB: omapfb_probe
[3.190704] omapdss DPI error: can't get VDDS_DSI regulator
[3.196594] omapfb omapfb: failed to connect default display
[3.202667] omapfb omapfb: failed to init overlay connections
[3.208892] OMAPFB: free_resources
[3.212493] OMAPFB: free all fbmem
[3.216735] omapfb omapfb: failed to setup omapfb

As a workaround name the VPLL2 regulator from twl4030 as vdds_dsi
so getting the VDDS_DSI regulator will succeed on dpi_init_regulator().

Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---
 arch/arm/boot/dts/omap3-igep0020.dts | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/omap3-igep0020.dts 
b/arch/arm/boot/dts/omap3-igep0020.dts
index b9a9e17..1c7e74d 100644
--- a/arch/arm/boot/dts/omap3-igep0020.dts
+++ b/arch/arm/boot/dts/omap3-igep0020.dts
@@ -215,3 +215,8 @@
 usbhsehci {
phys = hsusb1_phy;
 };
+
+vpll2 {
+/* Needed for DSS */
+regulator-name = vdds_dsi;
+};
-- 
1.8.4.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 v2 04/11] ARM: dts: omap3-igep0020: Add pinmux setup for i2c devices

2013-11-19 Thread Javier Martinez Canillas
Add pin muxing support for IGEP boards i2c controllers.

Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---
 arch/arm/boot/dts/omap3-igep.dtsi | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/boot/dts/omap3-igep.dtsi 
b/arch/arm/boot/dts/omap3-igep.dtsi
index e4c8769..165aaf7 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -113,10 +113,33 @@
;
};
 
+   i2c1_pins: pinmux_i2c1_pins {
+   pinctrl-single,pins = 
+   0x18a (PIN_INPUT | MUX_MODE0)   /* i2c1_scl.i2c1_scl */
+   0x18c (PIN_INPUT | MUX_MODE0)   /* i2c1_sda.i2c1_sda */
+   ;
+   };
+
+   i2c2_pins: pinmux_i2c2_pins {
+   pinctrl-single,pins = 
+   0x18e (PIN_INPUT | MUX_MODE0)   /* i2c2_scl.i2c2_scl */
+   0x190 (PIN_INPUT | MUX_MODE0)   /* i2c2_sda.i2c2_sda */
+   ;
+   };
+
+   i2c3_pins: pinmux_i2c3_pins {
+   pinctrl-single,pins = 
+   0x192 (PIN_INPUT | MUX_MODE0)   /* i2c3_scl.i2c3_scl */
+   0x194 (PIN_INPUT | MUX_MODE0)   /* i2c3_sda.i2c3_sda */
+   ;
+   };
+
leds_pins: pinmux_leds_pins { };
 };
 
 i2c1 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c1_pins;
clock-frequency = 260;
 
twl: twl@48 {
@@ -136,9 +159,16 @@
 #include twl4030_omap3.dtsi
 
 i2c2 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c2_pins;
clock-frequency = 40;
 };
 
+i2c3 {
+   pinctrl-names = default;
+   pinctrl-0 = i2c3_pins;
+};
+
 mcbsp2 {
pinctrl-names = default;
pinctrl-0 = mcbsp2_pins;
-- 
1.8.4.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: [BUG] PandaBoard hangs before starting init while booting v3.12

2013-11-19 Thread Chao Xu
Hi,

I also try to boot v3.12 on my pandaboard rev A2, but it hangs at
starting kernel. My SD card is originally loaded with a linaro 12.04
ubuntu-developer image. I have tried with v3.7 and v3.8 uImage and
both of them work normally, but v3.12 hangs. Is there any trick I
missed? Do I need to use the new u-boot as used by Ben?

And here is a separate problem with building u-boot. I cloned the
upstream u-boot repository. The latest commit is
c2e5e802ecb7ab668ce9911b210ed68c804b349f. Then I did:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap4_panda_config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
cp MLO u-boot.img /media/boot/
But when turn on my pandaboard, there is NO output from the serial
console. I didn't change the other file in the boot partition. They
are from linaro 12.04 ubuntu-developer image.

Any help would be much appreciated!

On Mon, Nov 18, 2013 at 9:14 AM, Ben Gamari bgamari.f...@gmail.com wrote:
 I'm having difficulty getting a PandaBoard ES rev. B1 to boot v3.12 and
 linux-next (30121118). I'm booting with a brand new u-boot
 (c2e5e802ecb7ab668ce9911b210ed68c804b349f).

 In both cases the device appears to hang shortly before one would expect
 init to start as seen in the boot output below. I'm booting with the
 omap4-panda-es devicetree. As far as I can tell, the machine is
 completely dead and will not respond to even sysrq. I have a PandaBoard
 A4 which apparently has no trouble with the same kernel image.

 The only issues I can see in the output are,

   * pinctrl issues pertaining to wl12xx[1], these shouldn't cause the
 machine not to boot
   * Various missing vmmc regulators
   * hw-breakpoint issues:
   * Failed to enable monitor mode on CPU 0
   * CPU 0 failed to disable vector catch
 These sound serious and occur near the hang. Perhaps this is the culprit?

 Any help would be greatly appreciated.

 Cheers,

 - Ben


 [1] http://www.spinics.net/lists/devicetree/msg07983.html


 reading uEnv-new.txt
 1147 bytes read in 5 ms (223.6 KiB/s)
 Importing environment from mmc0 ...
 Running uenvcmd ...
 reading zImage-new
 3738608 bytes read in 172 ms (20.7 MiB/s)
 reading uInitrd-new.img
 3241151 bytes read in 157 ms (19.7 MiB/s)
 reading /dtbs-new/omap4-panda-es.dtb
 20188 bytes read in 10 ms (1.9 MiB/s)
 Kernel image @ 0x8030 [ 0x00 - 0x390bf0 ]
 ## Loading init Ramdisk from Legacy Image at 8160 ...
Image Name:
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:3241087 Bytes = 3.1 MiB
Load Address: 8160
Entry Point:  8160
Verifying Checksum ... OK
 ## Flattened Device Tree blob at 815f
Booting using the fdt blob at 0x815f
Loading Ramdisk to 8fce8000, end 847f ... OK
Using Device Tree in place at 815f, end 815f7edb

 Starting kernel ...

 [0.00] Booting Linux on physical CPU 0x0
 [0.00] Initializing cgroup subsys cpuset
 [0.00] Initializing cgroup subsys cpu
 [0.00] Initializing cgroup subsys cpuacct
 [0.00] Linux version 3.12.0-next-20131118 (ben@ben-server) (gcc 
 version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #11 SMP Mon Nov 18 02:24:43 
 EST 2013
 [0.00] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), 
 cr=10c5387d
 [0.00] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing 
 instruction cache
 [0.00] Machine model: TI OMAP4 PandaBoard
 [0.00] bootconsole [earlycon0] enabled
 [0.00] Memory policy: Data cache writealloc
 [0.00] OMAP4460 ES1.1
 [0.00] PERCPU: Embedded 9 pages/cpu @c13c8000 s13568 r8192 d15104 
 u36864
 [0.00] Built 1 zonelists in Zone order, mobility grouping on.  Total 
 pages: 260368
 [0.00] Kernel command line: console=ttyO2,115200n8 earlyprintk 
 initcall_debug vram=16M omapfb.mode=: omapdss.def_disp= root=/dev/mmcblk0p5 
 ro rootfstype=ext4 fixrtc
 [0.00] PID hash table entries: 4096 (order: 2, 16384 bytes)
 [0.00] Dentry cache hash table entries: 131072 (order: 7, 524288 
 bytes)
 [0.00] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
 [0.00] allocated 2097152 bytes of page_cgroup
 [0.00] please try 'cgroup_disable=memory' option if you don't want 
 memory cgroups
 [0.00] Memory: 1021188K/1047552K available (7108K kernel code, 620K 
 rwdata, 2940K rodata, 457K init, 833K bss, 26364K reserved, 269312K highmem)
 [0.00] Virtual kernel memory layout:
 [0.00] vector  : 0x - 0x1000   (   4 kB)
 [0.00] fixmap  : 0xfff0 - 0xfffe   ( 896 kB)
 [0.00] vmalloc : 0xf000 - 0xff00   ( 240 MB)
 [0.00] lowmem  : 0xc000 - 0xef80   ( 760 MB)
 [0.00] pkmap   : 0xbfe0 - 0xc000   (   2 MB)
 [0.00] modules : 0xbf00 - 0xbfe0   (  14 MB)
 [0.00]   .text : 0xc0008000 - 0xc09d845c   (10050 kB)
 [0.00]   .init : 0xc09d9000 - 0xc0a4b500  

[PATCH] ARM: OMAP2+: Fix populating the hwmod data from device tree

2013-11-19 Thread Tony Lindgren
We have some device tree properties where the ti,hwmod has multiple
values:

am33xx.dtsi:ti,hwmods = tpcc, tptc0, tptc1, tptc2;
am4372.dtsi:ti,hwmods = tpcc, tptc0, tptc1, tptc2;
dra7.dtsi:  ti,hwmods = l3_main_1, l3_main_2;
omap3.dtsi: ti,hwmods = mcbsp2, mcbsp2_sidetone;
omap3.dtsi: ti,hwmods = mcbsp3, mcbsp3_sidetone;
omap4.dtsi: ti,hwmods = l3_main_1, l3_main_2, l3_main_3;
omap5.dtsi: ti,hwmods = l3_main_1, l3_main_2, l3_main_3;

So we need to handle the whole string array instead of just the
first string to find the related hwmod entry.

Cc: Benoît Cousson bcous...@baylibre.com
Cc: Paul Walmsley p...@pwsan.com
Signed-off-by: Tony Lindgren t...@atomide.com

--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2228,11 +2228,23 @@ static struct device_node *of_dev_hwmod_lookup(struct 
device_node *np,
struct omap_hwmod *oh)
 {
struct device_node *np0 = NULL, *np1 = NULL;
-   const char *p;
 
for_each_child_of_node(np, np0) {
-   if (of_find_property(np0, ti,hwmods, NULL)) {
-   p = of_get_property(np0, ti,hwmods, NULL);
+   int count, i;
+
+   count = of_property_count_strings(np0, ti,hwmods);
+   if (count  1)
+   continue;
+
+   for (i = 0; i  count; i++) {
+   const char *p;
+   int res;
+
+   res = of_property_read_string_index(np0, ti,hwmods,
+   i, p);
+   if (res)
+   continue;
+
if (!strcmp(p, oh-name))
return np0;
np1 = of_dev_hwmod_lookup(np0, oh);
--
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: [BUG] PandaBoard hangs before starting init while booting v3.12

2013-11-19 Thread Ben Gamari
Chao Xu caesarxuc...@gmail.com writes:

 Hi,

 I also try to boot v3.12 on my pandaboard rev A2, but it hangs at
 starting kernel. My SD card is originally loaded with a linaro 12.04
 ubuntu-developer image. I have tried with v3.7 and v3.8 uImage and
 both of them work normally, but v3.12 hangs. Is there any trick I
 missed? Do I need to use the new u-boot as used by Ben?

I've written up some of my experiences bringing up 3.12 on the
PandaBoard here[1]. You may find it helpful. Regardless, I would
definitely try upgrading u-boot.

 And here is a separate problem with building u-boot. I cloned the
 upstream u-boot repository. The latest commit is
 c2e5e802ecb7ab668ce9911b210ed68c804b349f. Then I did:
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap4_panda_config
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
 cp MLO u-boot.img /media/boot/
 But when turn on my pandaboard, there is NO output from the serial
 console. I didn't change the other file in the boot partition. They
 are from linaro 12.04 ubuntu-developer image.

I would check that you have earlyprintk enabled (both in the kernel
configuration as well as on the kernel command line). Moreover, ensure
that the correct serial devices is selected for low-level debug output
(in the kernel configuration).

Cheers,

- Ben

[1] 
http://bgamari.github.io/posts/2013-11-17-running-modern-kernel-on-pandaboard.html




pgpXEq97V9CLv.pgp
Description: PGP signature