aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Lin <tony.lin@freescale.com>2011-11-17 12:51:27 +0800
committerEric Miao <eric.miao@linaro.org>2011-12-01 11:36:39 +0800
commit81836e4287060b1014b657852aaa61b8245e2813 (patch)
treeb21f3a66fc34f14190e5e6f07614a2d3e2696101
parentbc42fd6eba2d704a3342791ca28156db5c714f02 (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>
-rw-r--r--arch/arm/mach-mx6/board-mx6q_arm2.c16
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 99a183c9d86..4b73fb2d98a 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) {