aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2014-06-19 07:16:51 -0400
committerDong Aisheng <b29396@freescale.com>2014-06-20 02:00:08 -0400
commit4d7797bf66c59204534d8dcf53d632293965debe (patch)
treeb8bce65295ce4eb1d94112069c0fd1d454a2b907 /arch/arm/boot
parent601c6a478be4bb7fcecd1078e379958305882024 (diff)
ENGR00319455-3 dts: imx6sx-sdb: add canfd support
Introduce a new dtb imx6sx-sdb-canfd.dtb due to pin conflict with flexcan. Signed-off-by: Dong Aisheng <b29396@freescale.com>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb-canfd.dts35
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi38
3 files changed, 74 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e37e1a092912..efc8bb828ae5 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -152,6 +152,7 @@ dtb-$(CONFIG_ARCH_MXC) += \
152 imx6sx-sdb-sai.dtb \ 152 imx6sx-sdb-sai.dtb \
153 imx6sx-sdb-emmc.dtb \ 153 imx6sx-sdb-emmc.dtb \
154 imx6sx-sdb-m4.dtb \ 154 imx6sx-sdb-m4.dtb \
155 imx6sx-sdb-canfd.dtb \
155 vf610-twr.dtb 156 vf610-twr.dtb
156dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ 157dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \
157 imx23-olinuxino.dtb \ 158 imx23-olinuxino.dtb \
diff --git a/arch/arm/boot/dts/imx6sx-sdb-canfd.dts b/arch/arm/boot/dts/imx6sx-sdb-canfd.dts
new file mode 100644
index 000000000000..496f24a40162
--- /dev/null
+++ b/arch/arm/boot/dts/imx6sx-sdb-canfd.dts
@@ -0,0 +1,35 @@
1/*
2 * Copyright (C) 2014 Freescale Semiconductor, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include "imx6sx-sdb.dts"
10
11/*
12 * flexcan and canfd are sharing the same pads, so disable flexcan to
13 * enable canfd.
14 * There's a trick here that the tranceiver configuration gpios are still
15 * got from the flexcan node since they're using the same tranceiver.
16 */
17&flexcan1 {
18 status = "disabled";
19};
20
21&flexcan2 {
22 status = "disabled";
23};
24
25&canfd1 {
26 pinctrl-names = "default";
27 pinctrl-0 = <&pinctrl_canfd1_1>;
28 status = "okay";
29};
30
31&canfd2 {
32 pinctrl-names = "default";
33 pinctrl-0 = <&pinctrl_canfd2_1>;
34 status = "okay";
35};
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index bfbc2b7647fe..b3863694bc94 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -673,6 +673,26 @@
673 }; 673 };
674 }; 674 };
675 675
676 canfd1: canfd@020e8000 {
677 compatible = "bosch,m_can";
678 reg = <0x020e8000 0x4000>, <0x02298000 0x4000>;
679 reg-names = "canfd", "message_ram";
680 interrupts = <0 114 0x04>;
681 clocks = <&clks IMX6SX_CLK_CANFD>;
682 mram-cfg = <0x0 0 0 32 32 32 0 1>;
683 status = "disabled";
684 };
685
686 canfd2: canfd@020f0000 {
687 compatible = "bosch,m_can";
688 reg = <0x020f0000 0x4000>, <0x02298000 0x4000>;
689 reg-names = "canfd", "message_ram";
690 interrupts = <0 115 0x04>;
691 clocks = <&clks IMX6SX_CLK_CANFD>;
692 mram-cfg = <0x2000 0 0 32 32 32 0 1>;
693 status = "disabled";
694 };
695
676 pwm1: pwm@02080000 { 696 pwm1: pwm@02080000 {
677 #pwm-cells = <2>; 697 #pwm-cells = <2>;
678 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm"; 698 compatible = "fsl,imx6sx-pwm", "fsl,imx27-pwm";
@@ -1222,6 +1242,24 @@
1222 }; 1242 };
1223 }; 1243 };
1224 1244
1245 canfd1 {
1246 pinctrl_canfd1_1: canfd1grp-1 {
1247 fsl,pins = <
1248 MX6SX_PAD_QSPI1B_DQS__CANFD_TX1 0x1b0b0
1249 MX6SX_PAD_QSPI1A_SS1_B__CANFD_RX1 0x1b0b0
1250 >;
1251 };
1252 };
1253
1254 canfd2 {
1255 pinctrl_canfd2_1: canfd2grp-1 {
1256 fsl,pins = <
1257 MX6SX_PAD_QSPI1B_SS1_B__CANFD_RX2 0x1b0b0
1258 MX6SX_PAD_QSPI1A_DQS__CANFD_TX2 0x1b0b0
1259 >;
1260 };
1261 };
1262
1225 csi { 1263 csi {
1226 pinctrl_csi_0: csigrp-0 { 1264 pinctrl_csi_0: csigrp-0 {
1227 fsl,pins = < 1265 fsl,pins = <