Skip to contentSkip to conversation

omap: rx51: board-rx51-peripherals.c updates

PATCH In review Jarkko Nikula 2 participants 6 messages May 26, 2010 – Jul 6, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover omap: rx51: board-rx51-peripherals.c updates

Hi

There are now required sound/soc/ patches in mainline and linux-omap to get basic Nokia N900 audio working.

Patch 1/3 is continuation to earlier set, see

http://marc.info/?l=linux-omap&m=127306914008392&w=2

IMO, it should go for 2.6.35 as it's kind of fix for unworking audio due codec being in unknown reset state.

Patches 2-3/3 are posted earlier but now based on top 1/3 since it has priority over them.

Patches 2/3/3 are not important for 2.6.35 but they are preparation for 2.6.36 and must hit the mainline before adding headphone support to sound/soc/omap/rx51.c.

Signature · 1 line
Jarkko
#1 lore raw

PATCH 1/3 omap: rx51: Add platform_data for tlv320aic3x with reset gpio number

Proper operation of the tlv320aic3x audio codec requires that reset sequencing is done in pair with supply voltages when using the regulator framework. Add the codec reset gpio used in Nokia RX51 to tlv320aic3x data.

---
 arch/arm/mach-omap2/board-rx51-peripherals.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +7 -0
index abdf321..7a604e0 100644
@@ -33,6 +33,8 @@
 #include <plat/onenand.h>
 #include <plat/gpmc-smc91x.h>
 
+#include <sound/tlv320aic3x.h>
+
 #include "mux.h"
 #include "hsmmc.h"
 
@@ -707,6 +709,10 @@ static struct twl4030_platform_data rx51_twldata __initdata = {
 	.vio			= &rx51_vio,
 };
 
+static struct aic3x_pdata rx51_aic3x_data __initdata = {
+	.gpio_reset		= 60,
+};
+
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
 	{
 		I2C_BOARD_INFO("twl5030", 0x48),
@@ -719,6 +725,7 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
 	{
 		I2C_BOARD_INFO("tlv320aic3x", 0x18),
+		.platform_data = &rx51_aic3x_data,
 	},
 };
 
Signature · 1 line
1.7.1
maintainer
#2 lore raw

PATCH 1/3 omap: rx51: Add platform_data for tlv320aic3x with

This patch has been applied to the linux-omap
by youw fwiendly patch wobot.

Branch in linux-omap: devel-boards

Initial commit ID (Likely to change): 47c7cdf07979102128ff4056416135c994690263

PatchWorks
http://patchwork.kernel.org/patch/102348/

Git (Likely to change, and takes a while to get mirrored)
http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=47c7cdf07979102128ff4056416135c994690263

#3 lore raw

PATCH v3 2/3 omap: rx51: Use REGULATOR_SUPPLY macro when initializing regulator consumers

In reply to Jarkko Nikula

There is REGULATOR_SUPPLY macro available for initializing the struct regulator_consumer_supply so use it where applicable (all other supplies than vdds_sdi) as it improves the readability.

---
v3:
No functional changes. Rebased on top of 1/3.

v2:
No functional changes but short description added, rebased on top of 7b93a0d and added Eduardo's ack to v1.

---
 arch/arm/mach-omap2/board-rx51-peripherals.c |   43 ++++++-------------------
 1 files changed, 11 insertions(+), 32 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +11 -32
index 7a604e0..0f9d2e9 100644
@@ -302,48 +302,27 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
 	{}	/* Terminator */
 };
 
-static struct regulator_consumer_supply rx51_vmmc1_supply = {
-	.supply   = "vmmc",
-	.dev_name = "mmci-omap-hs.0",
-};
+static struct regulator_consumer_supply rx51_vmmc1_supply =
+	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.0");
 
-static struct regulator_consumer_supply rx51_vaux3_supply = {
-	.supply   = "vmmc",
-	.dev_name = "mmci-omap-hs.1",
-};
+static struct regulator_consumer_supply rx51_vaux3_supply =
+	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1");
 
-static struct regulator_consumer_supply rx51_vsim_supply = {
-	.supply   = "vmmc_aux",
-	.dev_name = "mmci-omap-hs.1",
-};
+static struct regulator_consumer_supply rx51_vsim_supply =
+	REGULATOR_SUPPLY("vmmc_aux", "mmci-omap-hs.1");
 
 static struct regulator_consumer_supply rx51_vmmc2_supplies[] = {
 	/* tlv320aic3x analog supplies */
-	{
-		.supply		= "AVDD",
-		.dev_name	= "2-0018",
-	},
-	{
-		.supply		= "DRVDD",
-		.dev_name	= "2-0018",
-	},
+	REGULATOR_SUPPLY("AVDD", "2-0018"),
+	REGULATOR_SUPPLY("DRVDD", "2-0018"),
 	/* Keep vmmc as last item. It is not iterated for newer boards */
-	{
-		.supply		= "vmmc",
-		.dev_name	= "mmci-omap-hs.1",
-	},
+	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1"),
 };
 
 static struct regulator_consumer_supply rx51_vio_supplies[] = {
 	/* tlv320aic3x digital supplies */
-	{
-		.supply		= "IOVDD",
-		.dev_name	= "2-0018"
-	},
-	{
-		.supply		= "DVDD",
-		.dev_name	= "2-0018"
-	},
+	REGULATOR_SUPPLY("IOVDD", "2-0018"),
+	REGULATOR_SUPPLY("DVDD", "2-0018"),
 };
 
 #if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
Signature · 1 line
1.7.1
#4 lore raw

PATCH v3 3/3 omap: rx51: Add supply and data for the tpa6130a2 headphone amplifier

In reply to Jarkko Nikula

With these and upcoming change to tpa6130a2 driver it's possible to add support for the TPA6130A2 headphone amplifier.

---
v3:
- No functional changes. Rebased on top of 1/3.

v2:
- Rebased on top of 7b93a0d
- Only Vdd supply added as the CPVSS turned out to be miss defined in tpa6130a2. Thanks to Eduardo Valentin <[email protected]> for noticing.

---
 arch/arm/mach-omap2/board-rx51-peripherals.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +12 -0
index 0f9d2e9..87e00b8 100644
@@ -34,6 +34,7 @@
 #include <plat/gpmc-smc91x.h>
 
 #include <sound/tlv320aic3x.h>
+#include <sound/tpa6130a2-plat.h>
 
 #include "mux.h"
 #include "hsmmc.h"
@@ -315,6 +316,8 @@ static struct regulator_consumer_supply rx51_vmmc2_supplies[] = {
 	/* tlv320aic3x analog supplies */
 	REGULATOR_SUPPLY("AVDD", "2-0018"),
 	REGULATOR_SUPPLY("DRVDD", "2-0018"),
+	/* tpa6130a2 */
+	REGULATOR_SUPPLY("Vdd", "2-0060"),
 	/* Keep vmmc as last item. It is not iterated for newer boards */
 	REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1"),
 };
@@ -692,6 +695,11 @@ static struct aic3x_pdata rx51_aic3x_data __initdata = {
 	.gpio_reset		= 60,
 };
 
+static struct tpa6130a2_platform_data rx51_tpa6130a2_data __initdata = {
+	.id			= TPA6130A2,
+	.power_gpio		= 98,
+};
+
 static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
 	{
 		I2C_BOARD_INFO("twl5030", 0x48),
@@ -706,6 +714,10 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
 		I2C_BOARD_INFO("tlv320aic3x", 0x18),
 		.platform_data = &rx51_aic3x_data,
 	},
+	{
+		I2C_BOARD_INFO("tpa6130a2", 0x60),
+		.platform_data = &rx51_tpa6130a2_data,
+	}
 };
 
 static int __init rx51_i2c_init(void)
Signature · 1 line
1.7.1
#5 lore raw
In reply to Jarkko Nikula
Quoted 5 lines · On Wed, 26 May 2010 10:30:14 +0300 Jarkko Nikula <[email protected]> wrote:

Hi

There are now required sound/soc/ patches in mainline and linux-omap to get basic Nokia N900 audio working.

Quoted 7 lines

Patch 1/3 is continuation to earlier set, see

http://marc.info/?l=linux-omap&m=127306914008392&w=2

IMO, it should go for 2.6.35 as it's kind of fix for unworking audio due codec being in unknown reset state.

Ping? Each of these are for 2.6.36 as the 1/3 doesn't fix any serious regression.

Signature · 1 line
Jarkko