From: Dong Aisheng <[email protected]>
CAN transceiver is different on RevA and RevB board.
It's active high on RevA while active low on Rev B.
Signed-off-by: Dong Aisheng <[email protected]>
Signed-off-by: Joakim Zhang <[email protected]>
---
arch/arm/boot/dts/imx6sx-sdb.dts | 5 ++++
arch/arm/boot/dts/imx6sx-sdb.dtsi | 42 +++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
index 6dd9bebfe027..092b8de142a8 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dts
+++ b/arch/arm/boot/dts/imx6sx-sdb.dts
@@ -10,6 +10,11 @@
/ {
model = "Freescale i.MX6 SoloX SDB RevB Board";
+
+ /* Transceiver EN/STBY is active low on RevB board */
+ reg_can_stby: regulator-can-stby {
+ gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
+ };
};
&i2c1 {
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dtsi b/arch/arm/boot/dts/imx6sx-sdb.dtsi
index f8f31872fa14..e37ec4b396a2 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ b/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -136,6 +136,20 @@
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";
@@ -202,6 +216,20 @@
status = "okay";
};
+&flexcan1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flexcan1>;
+ xceiver-supply = <®_can_stby>;
+ status = "okay";
+};
+
+&flexcan2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_flexcan2>;
+ xceiver-supply = <®_can_stby>;
+ status = "okay";
+};
+
&i2c3 {
clock-frequency = <100000>;
pinctrl-names = "default";
@@ -397,6 +425,20 @@
>;
};
+ 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
--
2.17.1
Hi Joakim,
On Fri, Oct 19, 2018 at 6:43 AM Joakim Zhang <[email protected]> wrote:
>
> From: Dong Aisheng <[email protected]>
>
> CAN transceiver is different on RevA and RevB board.
> It's active high on RevA while active low on Rev B.
>
> Signed-off-by: Dong Aisheng <[email protected]>
> Signed-off-by: Joakim Zhang <[email protected]>
> ---
> arch/arm/boot/dts/imx6sx-sdb.dts | 5 ++++
> arch/arm/boot/dts/imx6sx-sdb.dtsi | 42 +++++++++++++++++++++++++++++++
> 2 files changed, 47 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts b/arch/arm/boot/dts/imx6sx-sdb.dts
> index 6dd9bebfe027..092b8de142a8 100644
> --- a/arch/arm/boot/dts/imx6sx-sdb.dts
> +++ b/arch/arm/boot/dts/imx6sx-sdb.dts
> @@ -10,6 +10,11 @@
>
> / {
> model = "Freescale i.MX6 SoloX SDB RevB Board";
> +
> + /* Transceiver EN/STBY is active low on RevB board */
> + reg_can_stby: regulator-can-stby {
> + gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
Don't we need a gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; and also a
"enable-active-high" entries in the imx6sx-sdb-reva.dts?
-----Original Message-----
From: Fabio Estevam [mailto:[email protected]]
Sent: 2018年10月19日 20:52
To: Joakim Zhang <[email protected]>
Cc: Shawn Guo <[email protected]>; Sascha Hauer <[email protected]>; Sascha Hauer <[email protected]>; Fabio Estevam <[email protected]>; dl-linux-imx <[email protected]>; Rob Herring <[email protected]>; Mark Rutland <[email protected]>; A.s. Dong <[email protected]>; open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <[email protected]>; linux-kernel <[email protected]>; moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE <[email protected]>
Subject: Re: [PATCH] ARM: dts: imx6sx-sdb: Add flexcan support
Hi Joakim,
On Fri, Oct 19, 2018 at 6:43 AM Joakim Zhang <[email protected]> wrote:
>
> From: Dong Aisheng <[email protected]>
>
> CAN transceiver is different on RevA and RevB board.
> It's active high on RevA while active low on Rev B.
>
> Signed-off-by: Dong Aisheng <[email protected]>
> Signed-off-by: Joakim Zhang <[email protected]>
> ---
> arch/arm/boot/dts/imx6sx-sdb.dts | 5 ++++
> arch/arm/boot/dts/imx6sx-sdb.dtsi | 42 +++++++++++++++++++++++++++++++
> 2 files changed, 47 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx6sx-sdb.dts
> b/arch/arm/boot/dts/imx6sx-sdb.dts
> index 6dd9bebfe027..092b8de142a8 100644
> --- a/arch/arm/boot/dts/imx6sx-sdb.dts
> +++ b/arch/arm/boot/dts/imx6sx-sdb.dts
> @@ -10,6 +10,11 @@
>
> / {
> model = "Freescale i.MX6 SoloX SDB RevB Board";
> +
> + /* Transceiver EN/STBY is active low on RevB board */
> + reg_can_stby: regulator-can-stby {
> + gpio = <&gpio4 27 GPIO_ACTIVE_LOW>;
Don't we need a gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>; and also a "enable-active-high" entries in the imx6sx-sdb-reva.dts?
Yes, you are right. I will add the entry in the imx6sx-sdb-reva.dts. Thanks a lot!
BRs,
Jaokim Zhang