omap: rx51: board-rx51-peripherals.c updates
Subsystems (3)
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
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
@@ -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
Tony Lindgren
maintainerPATCH 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
PATCH v3 2/3 omap: rx51: Use REGULATOR_SUPPLY macro when initializing regulator consumers
In reply to Jarkko NikulaThere 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
@@ -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
PATCH v3 3/3 omap: rx51: Add supply and data for the tpa6130a2 headphone amplifier
In reply to Jarkko NikulaWith 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
@@ -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
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