diff options
author | Lionel Xu <Lionel.Xu@freescale.com> | 2011-08-26 18:20:14 +0800 |
---|---|---|
committer | Lionel Xu <Lionel.Xu@freescale.com> | 2011-08-29 13:39:45 +0800 |
commit | b6c1b0ed81a7bec3c361fa82b299ad5dd3ea3d20 (patch) | |
tree | da3da375b893d81a170a9ec99c5fdd2d77d67e4e /arch | |
parent | 89b755ee1fe44010bc17ceb773d7fb1679fe9ca3 (diff) |
ENGR00139255-1 MX6Q_BSP ESAI: Add esai recording support
Add ESAI recording to mx6q platform.
Note: since there is pad conflict between esai record and fec, add a boot
argument esai_record to deal with it. This argument is required to enable
the record functionality.
Signed-off-by: Lionel Xu <R63889@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_sabreauto.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c index 4eebd2ba728f..9034c1630171 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c +++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c @@ -84,6 +84,7 @@ void __init early_console_setup(unsigned long base, struct clk *clk); static struct clk *sata_clk; +static int esai_record; static iomux_v3_cfg_t mx6q_sabreauto_pads[] = { @@ -160,18 +161,14 @@ static iomux_v3_cfg_t mx6q_sabreauto_pads[] = { /* ESAI */ MX6Q_PAD_ENET_RXD0__ESAI1_HCKT, - /* MX6Q_PAD_ENET_RX_ER__ESAI1_HCKR, - MX6Q_PAD_ENET_MDIO__ESAI1_SCKR, - MX6Q_PAD_ENET_REF_CLK__ESAI1_FSR, */ MX6Q_PAD_ENET_CRS_DV__ESAI1_SCKT, MX6Q_PAD_ENET_RXD1__ESAI1_FST, - /* MX6Q_PAD_ENET_TX_EN__ESAI1_TX3_RX2, + MX6Q_PAD_ENET_TX_EN__ESAI1_TX3_RX2, MX6Q_PAD_ENET_TXD1__ESAI1_TX2_RX3, MX6Q_PAD_ENET_TXD0__ESAI1_TX4_RX1, - MX6Q_PAD_ENET_MDC__ESAI1_TX5_RX0, */ + MX6Q_PAD_ENET_MDC__ESAI1_TX5_RX0, MX6Q_PAD_NANDF_CS2__ESAI1_TX0, MX6Q_PAD_NANDF_CS3__ESAI1_TX1, - /* MX53_PAD_PATA_DATA4__GPIO2_4, */ /* I2C1 */ MX6Q_PAD_CSI0_DAT8__I2C1_SDA, @@ -237,6 +234,13 @@ static iomux_v3_cfg_t mx6q_sabreauto_pads[] = { /* USBOTG ID pin */ MX6Q_PAD_GPIO_1__USBOTG_ID, }; + +static iomux_v3_cfg_t mx6q_sabreauto_esai_record_pads[] = { + MX6Q_PAD_ENET_RX_ER__ESAI1_HCKR, + MX6Q_PAD_ENET_MDIO__ESAI1_SCKR, + MX6Q_PAD_ENET_REF_CLK__ESAI1_FSR, +}; + static const struct esdhc_platform_data mx6q_sabreauto_sd3_data __initconst = { .cd_gpio = MX6Q_SABREAUTO_SD3_CD, .wp_gpio = MX6Q_SABREAUTO_SD3_WP, @@ -668,7 +672,17 @@ static int imx6q_init_audio(void) clk_set_parent(esai_clk, pll3_pfd); clk_set_rate(esai_clk, 101647058); + + return 0; } + +static int __init early_use_esai_record(char *p) +{ + esai_record = 1; + return 0; +} + +early_param("esai_record", early_use_esai_record); /*! * Board specific initialization. */ @@ -679,6 +693,10 @@ static void __init mx6_board_init(void) mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_pads, ARRAY_SIZE(mx6q_sabreauto_pads)); + if (esai_record) + mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_esai_record_pads, + ARRAY_SIZE(mx6q_sabreauto_esai_record_pads)); + mx6q_sabreauto_init_uart(); imx6q_add_ipuv3(0, &ipu_data[0]); @@ -706,7 +724,9 @@ static void __init mx6_board_init(void) imx6q_add_mxc_hdmi(&hdmi_data); imx6q_add_anatop_thermal_imx(1, &mx6q_sabreauto_anatop_thermal_data); - imx6q_init_fec(); + + if (!esai_record) + imx6q_init_fec(); imx6q_add_pm_imx(0, &mx6q_sabreauto_pm_data); imx6q_add_sdhci_usdhc_imx(3, &mx6q_sabreauto_sd4_data); |