[alsa-devel] [PATCH v1 4/6] davinci: SOUND support for Omapl138-Hawkboard
From: Victor Rodriguez victor.rodriguez@sasken.com
This patch adds sound support for the Hawkboard-L138 system It is under the machine name "omapl138_hawkboard". This system is based on the da850 davinci CPU architecture.
Signed-off-by: Victor Rodriguez victor.rodriguez@sasken.com --- Notes:
This patch works with da8xx_omapl_defconfig
In order to test ALSA utils select in menuconfig like insmodule:
Sound card support ---> Advanced Linux Sound Architecture ---> ALSA for SoC audio support ---> SoC Audio for the TI DAVINCI chip SoC Audio support for DA850/OMAP-L138 EVM/Hawkboard
arch/arm/mach-davinci/board-omapl138-hawk.c | 46 +++++++++++++++++++++++++++ arch/arm/mach-davinci/da850.c | 2 +- 2 files changed, 47 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index 01eef73..ba3718a 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c @@ -13,6 +13,7 @@ #include <linux/init.h> #include <linux/console.h> #include <linux/gpio.h> +#include <linux/i2c.h>
#include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -116,6 +117,37 @@ static struct edma_rsv_info *da850_edma_rsv[2] = { &da850_edma_cc1_rsv, };
+static struct i2c_board_info __initdata omapl138_hawk_i2c_devices[] = { + { + I2C_BOARD_INFO("tlv320aic3x", 0x18), + }, +}; + +static struct davinci_i2c_platform_data omapl138_hawk_i2c_0_pdata = { + .bus_freq = 100, /* kHz */ + .bus_delay = 0, /* usec */ +}; + +/* davinci da850 evm audio machine driver */ +static u8 da850_iis_serializer_direction[] = { + INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, + INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, + INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, + INACTIVE_MODE, TX_MODE, RX_MODE, INACTIVE_MODE, +}; + +static struct snd_platform_data omapl138_hawk_snd_data = { + .tx_dma_offset = 0x2000, + .rx_dma_offset = 0x2000, + .op_mode = DAVINCI_MCASP_IIS_MODE, + .num_serializer = ARRAY_SIZE(da850_iis_serializer_direction), + .tdm_slots = 2, + .serial_dir = da850_iis_serializer_direction, + .asp_chan_q = EVENTQ_1, + .version = MCASP_VERSION_2, + .txnumevt = 1, + .rxnumevt = 1, +};
static struct davinci_uart_config omapl138_hawk_uart_config __initdata = { .enabled_uarts = 0x7, @@ -134,6 +166,20 @@ static __init void omapl138_hawk_init(void)
ret = omapl138_hawk_config_emac();
+ i2c_register_board_info(1, omapl138_hawk_i2c_devices, + ARRAY_SIZE(omapl138_hawk_i2c_devices)); + + ret = da8xx_register_i2c(0, &omapl138_hawk_i2c_0_pdata); + if (ret) + pr_warning("omapl138_hawk_init: " + "i2c0 registration failed: %d\n", ret); + + ret = davinci_cfg_reg_list(da850_mcasp_pins); + if (ret) + pr_warning("omapl138_hawk_init: " + "mcasp mux setup failed: %d\n", ret); + da8xx_register_mcasp(0, &omapl138_hawk_snd_data); + ret = da8xx_register_watchdog(); if (ret) pr_warning("omapl138_hawk_init: " diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index 63916b9..f033a0a 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c @@ -591,7 +591,7 @@ const short da850_cpgmac_pins[] __initdata = { const short da850_mcasp_pins[] __initdata = { DA850_AHCLKX, DA850_ACLKX, DA850_AFSX, DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE, - DA850_AXR_11, DA850_AXR_12, + DA850_AXR_11, DA850_AXR_12, DA850_AXR_13, DA850_AXR_14, -1 };
Hello.
On 09-10-2010 5:12, vm.rod25@gmail.com wrote:
From: Victor Rodriguezvictor.rodriguez@sasken.com
This patch adds sound support for the Hawkboard-L138 system It is under the machine name "omapl138_hawkboard". This system is based on the da850 davinci CPU architecture.
Signed-off-by: Victor Rodriguezvictor.rodriguez@sasken.com
[...]
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index 01eef73..ba3718a 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c @@ -13,6 +13,7 @@ #include<linux/init.h> #include<linux/console.h> #include<linux/gpio.h> +#include<linux/i2c.h>
#include<asm/mach-types.h> #include<asm/mach/arch.h> @@ -116,6 +117,37 @@ static struct edma_rsv_info *da850_edma_rsv[2] = { &da850_edma_cc1_rsv, };
+static struct i2c_board_info __initdata omapl138_hawk_i2c_devices[] = {
- {
I2C_BOARD_INFO("tlv320aic3x", 0x18),
- },
+};
+static struct davinci_i2c_platform_data omapl138_hawk_i2c_0_pdata = {
- .bus_freq = 100, /* kHz */
- .bus_delay = 0, /* usec */
+};
+/* davinci da850 evm audio machine driver */ +static u8 da850_iis_serializer_direction[] = {
- INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
- INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
- INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE, INACTIVE_MODE,
- INACTIVE_MODE, TX_MODE, RX_MODE, INACTIVE_MODE,
+};
+static struct snd_platform_data omapl138_hawk_snd_data = {
- .tx_dma_offset = 0x2000,
- .rx_dma_offset = 0x2000,
- .op_mode = DAVINCI_MCASP_IIS_MODE,
- .num_serializer = ARRAY_SIZE(da850_iis_serializer_direction),
- .tdm_slots = 2,
- .serial_dir = da850_iis_serializer_direction,
- .asp_chan_q = EVENTQ_1,
- .version = MCASP_VERSION_2,
- .txnumevt = 1,
- .rxnumevt = 1,
+};
static struct davinci_uart_config omapl138_hawk_uart_config __initdata = { .enabled_uarts = 0x7, @@ -134,6 +166,20 @@ static __init void omapl138_hawk_init(void)
ret = omapl138_hawk_config_emac();
- i2c_register_board_info(1, omapl138_hawk_i2c_devices,
ARRAY_SIZE(omapl138_hawk_i2c_devices));
- ret = da8xx_register_i2c(0,&omapl138_hawk_i2c_0_pdata);
- if (ret)
pr_warning("omapl138_hawk_init: "
"i2c0 registration failed: %d\n", ret);
pr_warning("%s: i2c0 registration failed: %d\n", __func__, ret);
- ret = davinci_cfg_reg_list(da850_mcasp_pins);
- if (ret)
pr_warning("omapl138_hawk_init: "
"mcasp mux setup failed: %d\n", ret);
pr_warning("%s: mcasp mux setup failed: %d\n", __func__, ret);
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c index 63916b9..f033a0a 100644 --- a/arch/arm/mach-davinci/da850.c +++ b/arch/arm/mach-davinci/da850.c @@ -591,7 +591,7 @@ const short da850_cpgmac_pins[] __initdata = { const short da850_mcasp_pins[] __initdata = { DA850_AHCLKX, DA850_ACLKX, DA850_AFSX, DA850_AHCLKR, DA850_ACLKR, DA850_AFSR, DA850_AMUTE,
- DA850_AXR_11, DA850_AXR_12,
- DA850_AXR_11, DA850_AXR_12, DA850_AXR_13, DA850_AXR_14, -1 };
Hm, should probably be a sperate patch...
WBR, Sergei
participants (2)
-
Sergei Shtylyov
-
vm.rod25@gmail.com