diff options
author | Dong Aisheng <b29396@freescale.com> | 2014-06-19 19:16:51 +0800 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2015-01-15 21:17:31 -0600 |
commit | 34482f4d914a41013701a850821b4be1516f7254 (patch) | |
tree | 70a780dca9920fe68625ec8fd74e5cba60fc707c /arch | |
parent | c7730dddaccb75b7cb129278c19561e2c395f7f1 (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>
(cherry picked from commit 4e861f90bd119edef5d6b158268914d4141d23e5)
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6sx-sdb-canfd.dts | 35 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6sx-sdb.dts | 13 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx6sx.dtsi | 20 |
4 files changed, 69 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 820e1b71fa18..b8fcad805825 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -179,6 +179,7 @@ dtb-$(CONFIG_ARCH_MXC) += \ imx6sx-sdb.dtb \ imx6sx-sdb-lcdif1.dtb \ vf610-cosmic.dtb \ + imx6sx-sdb-canfd.dtb \ vf610-twr.dtb dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ 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..91ad35d11b42 --- /dev/null +++ b/arch/arm/boot/dts/imx6sx-sdb-canfd.dts @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2014 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include "imx6sx-sdb.dts" + +/* + * flexcan and canfd are sharing the same pads, so disable flexcan to + * enable canfd. + * There's a trick here that the tranceiver configuration gpios are still + * got from the flexcan node since they're using the same tranceiver. + */ +&flexcan1 { + status = "disabled"; +}; + +&flexcan2 { + status = "disabled"; +}; + +&canfd1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_canfd1>; + status = "okay"; +}; + +&canfd2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_canfd2>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts index cb2922394dda..aca3d73d6130 100644 --- a/arch/arm/boot/dts/imx6sx-sdb.dts +++ b/arch/arm/boot/dts/imx6sx-sdb.dts @@ -330,6 +330,19 @@ &iomuxc { imx6x-sdb { + pinctrl_canfd1: canfd1grp-1 { + fsl,pins = < + MX6SX_PAD_QSPI1B_DQS__CANFD_TX1 0x1b0b0 + MX6SX_PAD_QSPI1A_SS1_B__CANFD_RX1 0x1b0b0 + >; + }; + + pinctrl_canfd2: canfd2grp-1 { + fsl,pins = < + MX6SX_PAD_QSPI1B_SS1_B__CANFD_RX2 0x1b0b0 + MX6SX_PAD_QSPI1A_DQS__CANFD_TX2 0x1b0b0 + >; + }; pinctrl_egalax_int: egalax_intgrp { fsl,pins = < diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi index 7095473e8277..82117b0337e2 100644 --- a/arch/arm/boot/dts/imx6sx.dtsi +++ b/arch/arm/boot/dts/imx6sx.dtsi @@ -703,6 +703,26 @@ reg = <0x020e4000 0x4000>; }; + canfd1: canfd@020e8000 { + compatible = "bosch,m_can"; + reg = <0x020e8000 0x4000>, <0x02298000 0x4000>; + reg-names = "canfd", "message_ram"; + interrupts = <0 114 0x04>; + clocks = <&clks IMX6SX_CLK_CANFD>; + mram-cfg = <0x0 0 0 32 32 32 0 1>; + status = "disabled"; + }; + + canfd2: canfd@020f0000 { + compatible = "bosch,m_can"; + reg = <0x020f0000 0x4000>, <0x02298000 0x4000>; + reg-names = "canfd", "message_ram"; + interrupts = <0 115 0x04>; + clocks = <&clks IMX6SX_CLK_CANFD>; + mram-cfg = <0x2000 0 0 32 32 32 0 1>; + status = "disabled"; + }; + ldb: ldb@020e0014 { #address-cells = <1>; #size-cells = <0>; |