diff options
author | Tony Lin <tony.lin@freescale.com> | 2011-11-17 12:51:27 +0800 |
---|---|---|
committer | Tony Lin <tony.lin@freescale.com> | 2011-11-17 14:53:02 +0800 |
commit | 2e055f32c351f5d7afffb453c6ec26eb297ff354 (patch) | |
tree | 910291d39d8689d9ab97b31bc916ece9b9e62257 /arch | |
parent | 65049d283299602709374319eaab4e1d74200c80 (diff) |
ENGR00162335-1 [mx6q_arm2]SD card 3.0 can't be recognized
fix pin conflict between sd vselect and canbus enable pin.
add 'canbus' to the cmdline will enable canbus driver.
if canbus driver is enabled, sd 3.0 card will not work
Signed-off-by: Tony Lin <tony.lin@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mx6/board-mx6q_arm2.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_arm2.c b/arch/arm/mach-mx6/board-mx6q_arm2.c index 99a183c9d86b..4b73fb2d98aa 100644 --- a/arch/arm/mach-mx6/board-mx6q_arm2.c +++ b/arch/arm/mach-mx6/board-mx6q_arm2.c @@ -108,6 +108,7 @@ 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 flexcan_en; static int mipi_sensor; extern struct regulator *(*get_cpu_regulator)(void); @@ -1349,6 +1350,14 @@ static int __init early_enable_spdif(char *p) early_param("spdif", early_enable_spdif); +static int __init early_enable_can(char *p) +{ + flexcan_en = 1; + return 0; +} + +early_param("flexcan", early_enable_can); + static int spdif_clk_set_rate(struct clk *clk, unsigned long rate) { unsigned long rate_actual; @@ -1404,8 +1413,9 @@ static void __init mx6_board_init(void) } else { mxc_iomux_v3_setup_multiple_pads(mx6q_arm2_i2c3_pads, ARRAY_SIZE(mx6q_arm2_i2c3_pads)); - mxc_iomux_v3_setup_multiple_pads(mx6q_arm2_can_pads, - ARRAY_SIZE(mx6q_arm2_can_pads)); + if (flexcan_en) + mxc_iomux_v3_setup_multiple_pads(mx6q_arm2_can_pads, + ARRAY_SIZE(mx6q_arm2_can_pads)); } if (mipi_sensor) @@ -1504,7 +1514,7 @@ static void __init mx6_board_init(void) imx6q_add_spdif(&mxc_spdif_data); imx6q_add_spdif_dai(); imx6q_add_spdif_audio_device(); - } else { + } else if (flexcan_en) { ret = gpio_request_array(mx6q_flexcan_gpios, ARRAY_SIZE(mx6q_flexcan_gpios)); if (ret) { |