diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-03-05 00:42:31 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2011-03-07 18:44:32 -0500 |
commit | fba3b2fc1b427696d004f5b22191620f90fe8412 (patch) | |
tree | 8ab2b7e04e9e7520001e0a30e24fd57c5242a83f | |
parent | de4855d928409caf9c366a9af643bb855aab6bf6 (diff) |
ARM: tegra: harmony: I2C-related portions of audio support
This patch is the portion of the audio-related setup that relies additionally
on the latest Tegra I2C driver being merged.
* Define platform data for WM8903 audio codec
* Register WM8903 as an I2C device
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index ea908cd0d550..82c780345a9f 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
@@ -27,6 +27,8 @@ | |||
27 | #include <linux/i2c.h> | 27 | #include <linux/i2c.h> |
28 | #include <linux/i2c-tegra.h> | 28 | #include <linux/i2c-tegra.h> |
29 | 29 | ||
30 | #include <sound/wm8903.h> | ||
31 | |||
30 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
32 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
@@ -96,6 +98,25 @@ static struct tegra_i2c_platform_data harmony_dvc_platform_data = { | |||
96 | .bus_clk_rate = 400000, | 98 | .bus_clk_rate = 400000, |
97 | }; | 99 | }; |
98 | 100 | ||
101 | static struct wm8903_platform_data harmony_wm8903_pdata = { | ||
102 | .irq_active_low = 0, | ||
103 | .micdet_cfg = 0, | ||
104 | .micdet_delay = 100, | ||
105 | .gpio_cfg = { | ||
106 | WM8903_GPIO_NO_CONFIG, | ||
107 | WM8903_GPIO_NO_CONFIG, | ||
108 | 0, | ||
109 | WM8903_GPIO_NO_CONFIG, | ||
110 | WM8903_GPIO_NO_CONFIG, | ||
111 | }, | ||
112 | }; | ||
113 | |||
114 | static struct i2c_board_info __initdata wm8903_board_info = { | ||
115 | I2C_BOARD_INFO("wm8903", 0x1a), | ||
116 | .platform_data = &harmony_wm8903_pdata, | ||
117 | .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_CDC_IRQ), | ||
118 | }; | ||
119 | |||
99 | static void __init harmony_i2c_init(void) | 120 | static void __init harmony_i2c_init(void) |
100 | { | 121 | { |
101 | tegra_i2c_device1.dev.platform_data = &harmony_i2c1_platform_data; | 122 | tegra_i2c_device1.dev.platform_data = &harmony_i2c1_platform_data; |
@@ -107,6 +128,8 @@ static void __init harmony_i2c_init(void) | |||
107 | platform_device_register(&tegra_i2c_device2); | 128 | platform_device_register(&tegra_i2c_device2); |
108 | platform_device_register(&tegra_i2c_device3); | 129 | platform_device_register(&tegra_i2c_device3); |
109 | platform_device_register(&tegra_i2c_device4); | 130 | platform_device_register(&tegra_i2c_device4); |
131 | |||
132 | i2c_register_board_info(0, &wm8903_board_info, 1); | ||
110 | } | 133 | } |
111 | 134 | ||
112 | static struct platform_device *harmony_devices[] __initdata = { | 135 | static struct platform_device *harmony_devices[] __initdata = { |