From: Tony Lin Date: Thu, 17 Nov 2011 04:51:27 +0000 (+0800) Subject: ENGR00162335-1 [mx6q_arm2]SD card 3.0 can't be recognized X-Git-Tag: v3.0.35-fsl_4.1.0~2040 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=983511f6ba22a5af0241fd48fbd7792d6e8baf63;p=karo-tx-linux.git 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 --- 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) {