From 8e090dc46628eb4082319b422f7a05e75821cc0e Mon Sep 17 00:00:00 2001 From: Adrian Alonso Date: Wed, 14 Dec 2011 19:24:18 -0600 Subject: [PATCH] ENGR00170341 board-mx6q-sabreauto: update spdif for sabreauto platform * Update spdif config options for sabreauto platform * Correct pad settings * Only SPDIF RX in sabreauto, unset SPDIF TX support. * spdif and i2c3 doesn't conflict in sabreauto platform remove spdif early param and logic that set either pads. Signed-off-by: Adrian Alonso --- arch/arm/mach-mx6/board-mx6q_sabreauto.c | 69 +++++++----------------- 1 file changed, 20 insertions(+), 49 deletions(-) diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c index b47efc64459c..27819b742be8 100644 --- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c +++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c @@ -106,7 +106,6 @@ void __init early_console_setup(unsigned long base, struct clk *clk); static struct clk *sata_clk; static int esai_record; -static int spdif_en; static int mipi_sensor; extern struct regulator *(*get_cpu_regulator)(void); @@ -289,6 +288,8 @@ static iomux_v3_cfg_t mx6q_sabreauto_pads[] = { /* USBOTG ID pin */ MX6Q_PAD_GPIO_1__USBOTG_ID, + /* SPDIF */ + MX6Q_PAD_KEY_COL3__SPDIF_IN1, }; static iomux_v3_cfg_t mx6q_sabreauto_i2c3_pads[] = { @@ -296,12 +297,6 @@ static iomux_v3_cfg_t mx6q_sabreauto_i2c3_pads[] = { MX6Q_PAD_GPIO_16__I2C3_SDA, }; -static iomux_v3_cfg_t mx6q_sabreauto_spdif_pads[] = { - /* SPDIF */ - MX6Q_PAD_GPIO_16__SPDIF_IN1, - MX6Q_PAD_GPIO_17__SPDIF_OUT1, -}; - static iomux_v3_cfg_t mx6q_sabreauto_can_pads[] = { /* CAN1 */ MX6Q_PAD_GPIO_7__CAN1_TXCAN, @@ -1309,14 +1304,6 @@ static inline void __init mx6q_csi0_io_init(void) mxc_iomux_set_gpr_register(1, 19, 1, 1); } -static int __init early_enable_spdif(char *p) -{ - spdif_en = 1; - return 0; -} - -early_param("spdif", early_enable_spdif); - static int spdif_clk_set_rate(struct clk *clk, unsigned long rate) { unsigned long rate_actual; @@ -1326,7 +1313,7 @@ static int spdif_clk_set_rate(struct clk *clk, unsigned long rate) } static struct mxc_spdif_platform_data mxc_spdif_data = { - .spdif_tx = 1, /* enable tx */ + .spdif_tx = 0, /* disable tx */ .spdif_rx = 1, /* enable rx */ /* * spdif0_clk will be 454.7MHz divided by ccm dividers. @@ -1360,21 +1347,10 @@ static void __init mx6_board_init(void) mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_esai_record_pads, ARRAY_SIZE(mx6q_sabreauto_esai_record_pads)); - /* - * S/PDIF in and i2c3 are mutually exclusive because both - * use GPIO_16. - * S/PDIF out and can1 stby are mutually exclusive because both - * use GPIO_17. - */ - if (spdif_en) { - mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_spdif_pads, - ARRAY_SIZE(mx6q_sabreauto_spdif_pads)); - } else { - mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_i2c3_pads, + mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_i2c3_pads, ARRAY_SIZE(mx6q_sabreauto_i2c3_pads)); - mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_can_pads, + mxc_iomux_v3_setup_multiple_pads(mx6q_sabreauto_can_pads, ARRAY_SIZE(mx6q_sabreauto_can_pads)); - } if (mipi_sensor) mxc_iomux_v3_setup_multiple_pads( @@ -1406,11 +1382,9 @@ static void __init mx6_board_init(void) ARRAY_SIZE(mxc_i2c0_board_info)); i2c_register_board_info(1, mxc_i2c1_board_info, ARRAY_SIZE(mxc_i2c1_board_info)); - if (!spdif_en) { - imx6q_add_imx_i2c(2, &mx6q_sabreauto_i2c_data); - i2c_register_board_info(2, mxc_i2c2_board_info, - ARRAY_SIZE(mxc_i2c2_board_info)); - } + imx6q_add_imx_i2c(2, &mx6q_sabreauto_i2c_data); + i2c_register_board_info(2, mxc_i2c2_board_info, + ARRAY_SIZE(mxc_i2c2_board_info)); /* SPI */ imx6q_add_ecspi(0, &mx6q_sabreauto_spi_data); @@ -1468,22 +1442,19 @@ static void __init mx6_board_init(void) imx6q_add_mxc_pwm(0); imx6q_add_mxc_pwm_backlight(0, &mx6_sabreauto_pwm_backlight_data); - if (spdif_en) { - mxc_spdif_data.spdif_core_clk = clk_get_sys("mxc_spdif.0", - NULL); - clk_put(mxc_spdif_data.spdif_core_clk); - imx6q_add_spdif(&mxc_spdif_data); - imx6q_add_spdif_dai(); - imx6q_add_spdif_audio_device(); - } else { - ret = gpio_request_array(mx6q_flexcan_gpios, + mxc_spdif_data.spdif_core_clk = clk_get_sys("mxc_spdif.0", NULL); + clk_put(mxc_spdif_data.spdif_core_clk); + imx6q_add_spdif(&mxc_spdif_data); + imx6q_add_spdif_dai(); + imx6q_add_spdif_audio_device(); + + ret = gpio_request_array(mx6q_flexcan_gpios, ARRAY_SIZE(mx6q_flexcan_gpios)); - if (ret) { - pr_err("failed to request flexcan-gpios: %d\n", ret); - } else { - imx6q_add_flexcan0(&mx6q_sabreauto_flexcan_pdata[0]); - imx6q_add_flexcan1(&mx6q_sabreauto_flexcan_pdata[1]); - } + if (ret) { + pr_err("failed to request flexcan-gpios: %d\n", ret); + } else { + imx6q_add_flexcan0(&mx6q_sabreauto_flexcan_pdata[0]); + imx6q_add_flexcan1(&mx6q_sabreauto_flexcan_pdata[1]); } imx6q_add_hdmi_soc(); -- 2.39.2