eukrea_mbimx27: add audio codec
Signed-off-by: Eric Bénard <eric@eukrea.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
5203b99c14
commit
d2195d52aa
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2009 Eric Benard - eric@eukrea.com
|
* Copyright (C) 2009-2010 Eric Benard - eric@eukrea.com
|
||||||
*
|
*
|
||||||
* Based on pcm970-baseboard.c which is :
|
* Based on pcm970-baseboard.c which is :
|
||||||
* Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)
|
* Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)
|
||||||
|
@ -37,6 +37,8 @@
|
||||||
#include <mach/mmc.h>
|
#include <mach/mmc.h>
|
||||||
#include <mach/imx-uart.h>
|
#include <mach/imx-uart.h>
|
||||||
#include <mach/spi.h>
|
#include <mach/spi.h>
|
||||||
|
#include <mach/ssi.h>
|
||||||
|
#include <mach/audmux.h>
|
||||||
|
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
|
|
||||||
|
@ -93,6 +95,13 @@ static int eukrea_mbimx27_pins[] = {
|
||||||
PD29_PF_CSPI1_SCLK,
|
PD29_PF_CSPI1_SCLK,
|
||||||
PD30_PF_CSPI1_MISO,
|
PD30_PF_CSPI1_MISO,
|
||||||
PD31_PF_CSPI1_MOSI,
|
PD31_PF_CSPI1_MOSI,
|
||||||
|
/* SSI4 */
|
||||||
|
#if defined(CONFIG_SND_SOC_EUKREA_TLV320)
|
||||||
|
PC16_PF_SSI4_FS,
|
||||||
|
PC17_PF_SSI4_RXD | GPIO_PUEN,
|
||||||
|
PC18_PF_SSI4_TXD | GPIO_PUEN,
|
||||||
|
PC19_PF_SSI4_CLK,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint32_t eukrea_mbimx27_keymap[] = {
|
static const uint32_t eukrea_mbimx27_keymap[] = {
|
||||||
|
@ -287,6 +296,12 @@ static struct spi_board_info eukrea_mbimx27_spi_board_info[] __initdata = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct i2c_board_info eukrea_mbimx27_i2c_devices[] = {
|
||||||
|
{
|
||||||
|
I2C_BOARD_INFO("tlv320aic23", 0x1a),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
static int eukrea_mbimx27_spi_cs[] = {GPIO_PORTD | 28};
|
static int eukrea_mbimx27_spi_cs[] = {GPIO_PORTD | 28};
|
||||||
|
|
||||||
static struct spi_imx_master eukrea_mbimx27_spi_0_data = {
|
static struct spi_imx_master eukrea_mbimx27_spi_0_data = {
|
||||||
|
@ -303,6 +318,10 @@ static struct imxmmc_platform_data sdhc_pdata = {
|
||||||
.dat3_card_detect = 1,
|
.dat3_card_detect = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct imx_ssi_platform_data eukrea_mbimx27_ssi_pdata = {
|
||||||
|
.flags = IMX_SSI_DMA | IMX_SSI_USE_I2S_SLAVE,
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* system init for baseboard usage. Will be called by cpuimx27 init.
|
* system init for baseboard usage. Will be called by cpuimx27 init.
|
||||||
*
|
*
|
||||||
|
@ -314,6 +333,24 @@ void __init eukrea_mbimx27_baseboard_init(void)
|
||||||
mxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins,
|
mxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins,
|
||||||
ARRAY_SIZE(eukrea_mbimx27_pins), "MBIMX27");
|
ARRAY_SIZE(eukrea_mbimx27_pins), "MBIMX27");
|
||||||
|
|
||||||
|
#if defined(CONFIG_SND_SOC_EUKREA_TLV320)
|
||||||
|
/* SSI unit master I2S codec connected to SSI_PINS_4*/
|
||||||
|
mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0,
|
||||||
|
MXC_AUDMUX_V1_PCR_SYN |
|
||||||
|
MXC_AUDMUX_V1_PCR_TFSDIR |
|
||||||
|
MXC_AUDMUX_V1_PCR_TCLKDIR |
|
||||||
|
MXC_AUDMUX_V1_PCR_RFSDIR |
|
||||||
|
MXC_AUDMUX_V1_PCR_RCLKDIR |
|
||||||
|
MXC_AUDMUX_V1_PCR_TFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) |
|
||||||
|
MXC_AUDMUX_V1_PCR_RFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) |
|
||||||
|
MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4)
|
||||||
|
);
|
||||||
|
mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR3_SSI_PINS_4,
|
||||||
|
MXC_AUDMUX_V1_PCR_SYN |
|
||||||
|
MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR1_SSI0)
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
|
||||||
mxc_register_device(&mxc_uart_device1, &uart_pdata[0]);
|
mxc_register_device(&mxc_uart_device1, &uart_pdata[0]);
|
||||||
mxc_register_device(&mxc_uart_device2, &uart_pdata[1]);
|
mxc_register_device(&mxc_uart_device2, &uart_pdata[1]);
|
||||||
#if !defined(MACH_EUKREA_CPUIMX27_USEUART4)
|
#if !defined(MACH_EUKREA_CPUIMX27_USEUART4)
|
||||||
|
@ -323,6 +360,11 @@ void __init eukrea_mbimx27_baseboard_init(void)
|
||||||
mxc_register_device(&mxc_fb_device, &eukrea_mbimx27_fb_data);
|
mxc_register_device(&mxc_fb_device, &eukrea_mbimx27_fb_data);
|
||||||
mxc_register_device(&mxc_sdhc_device0, &sdhc_pdata);
|
mxc_register_device(&mxc_sdhc_device0, &sdhc_pdata);
|
||||||
|
|
||||||
|
i2c_register_board_info(0, eukrea_mbimx27_i2c_devices,
|
||||||
|
ARRAY_SIZE(eukrea_mbimx27_i2c_devices));
|
||||||
|
|
||||||
|
mxc_register_device(&imx_ssi_device0, &eukrea_mbimx27_ssi_pdata);
|
||||||
|
|
||||||
#if defined(CONFIG_TOUCHSCREEN_ADS7846) \
|
#if defined(CONFIG_TOUCHSCREEN_ADS7846) \
|
||||||
|| defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
|
|| defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
|
||||||
/* ADS7846 Touchscreen controller init */
|
/* ADS7846 Touchscreen controller init */
|
||||||
|
|
Loading…
Reference in New Issue