OSDN Git Service

ARM: dts: imx6sx-sdb: add flexcan support
authorAisheng Dong <aisheng.dong@nxp.com>
Wed, 28 Nov 2018 11:03:48 +0000 (11:03 +0000)
committerShawn Guo <shawnguo@kernel.org>
Mon, 10 Dec 2018 02:03:03 +0000 (10:03 +0800)
CAN transceiver is different on RevA and RevB board.
It's active high on RevA while active low on Rev B.

Signed-off-by: Aisheng Dong <aisheng.dong@nxp.com>
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx6sx-sdb-reva.dts
arch/arm/boot/dts/imx6sx-sdb.dts
arch/arm/boot/dts/imx6sx-sdb.dtsi

index 9db9306..53241ae 100644 (file)
                spi-max-frequency = <66000000>;
        };
 };
+
+&reg_can_en {
+       /* Transceiver EN/STBY is active high on RevA board */
+       gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
+       enable-active-high;
+};
+
+&reg_can_stby {
+       gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
+       enable-active-high;
+       vin-supply = <&reg_can_en>;
+};
index 96bd637..b1b33ad 100644 (file)
 &reg_soc {
        vin-supply = <&sw1a_reg>;
 };
+
+&reg_can_stby {
+       /* Transceiver EN/STBY is active low on RevB board */
+       gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
+};
index e156ea1..a146f86 100644 (file)
                regulator-max-microvolt = <5000000>;
        };
 
+       reg_can_en: regulator-can-en {
+               compatible = "regulator-fixed";
+               regulator-name = "can-en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_can_stby: regulator-can-stby {
+               compatible = "regulator-fixed";
+               regulator-name = "can-stby";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
        sound {
                compatible = "fsl,imx6sx-sdb-wm8962", "fsl,imx-audio-wm8962";
                model = "wm8962-audio";
        status = "okay";
 };
 
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_can_stby>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can_stby>;
+       status = "okay";
+};
+
 &i2c3 {
        clock-frequency = <100000>;
        pinctrl-names = "default";
                        >;
                };
 
+               pinctrl_flexcan1: flexcan1grp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1B_DQS__CAN1_TX           0x1b020
+                               MX6SX_PAD_QSPI1A_SS1_B__CAN1_RX         0x1b020
+                       >;
+               };
+
+               pinctrl_flexcan2: flexcan2grp {
+                       fsl,pins = <
+                               MX6SX_PAD_QSPI1B_SS1_B__CAN2_RX         0x1b020
+                               MX6SX_PAD_QSPI1A_DQS__CAN2_TX           0x1b020
+                       >;
+               };
+
                pinctrl_gpio_keys: gpio_keysgrp {
                        fsl,pins = <
                                MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059