summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAdrian Alonso <aalonso@freescale.com>2011-12-14 19:24:18 -0600
committerAdrian Alonso <aalonso@freescale.com>2011-12-15 04:25:36 -0600
commit65d4479284ad97ac7686aac3fde40f876c3fb160 (patch)
tree6ac5749303789324c57b2ba32d3e61464d2015c8 /arch
parent626f839ff54d52aac0f22c864a0bd3e12055649d (diff)
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 <aalonso@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabreauto.c69
1 files 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();