2022-09-12 22:50:12

by Tim Harvey

[permalink] [raw]
Subject: [PATCH] ARM: dts: imx6qdl-gw52xx: add CAN regulator

The GW52xx has a tranceiver with a STBY pin connected to an IMX6 GPIO.
Configure this as a regulator to drive it low when CAN is in use.

Signed-off-by: Tim Harvey <[email protected]>
---
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index b1df2beb2832..ec6b55bf77d9 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -137,6 +137,16 @@ reg_5p0v: regulator-5p0v {
regulator-always-on;
};

+ reg_can1_stby: regulator-can1-stby {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_reg_can1>;
+ compatible = "regulator-fixed";
+ regulator-name = "can1_stby";
+ gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
reg_usb_otg_vbus: regulator-usb-otg-vbus {
compatible = "regulator-fixed";
regulator-name = "usb_otg_vbus";
@@ -170,6 +180,7 @@ &audmux {
&can1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
+ xceiver-supply = <&reg_can1_stby>;
status = "okay";
};

@@ -612,7 +623,6 @@ pinctrl_flexcan1: flexcan1grp {
fsl,pins = <
MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
- MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
>;
};

@@ -702,6 +712,12 @@ MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
>;
};

+ pinctrl_reg_can1: regcan1grp {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
--
2.25.1


2022-09-16 12:24:55

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: imx6qdl-gw52xx: add CAN regulator

On Mon, Sep 12, 2022 at 02:53:12PM -0700, Tim Harvey wrote:
> The GW52xx has a tranceiver with a STBY pin connected to an IMX6 GPIO.
> Configure this as a regulator to drive it low when CAN is in use.
>
> Signed-off-by: Tim Harvey <[email protected]>
> ---
> arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
> index b1df2beb2832..ec6b55bf77d9 100644
> --- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
> @@ -137,6 +137,16 @@ reg_5p0v: regulator-5p0v {
> regulator-always-on;
> };
>
> + reg_can1_stby: regulator-can1-stby {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_reg_can1>;
> + compatible = "regulator-fixed";

Can we have properties start with 'compatible' just like other nodes?

Shawn

> + regulator-name = "can1_stby";
> + gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> reg_usb_otg_vbus: regulator-usb-otg-vbus {
> compatible = "regulator-fixed";
> regulator-name = "usb_otg_vbus";
> @@ -170,6 +180,7 @@ &audmux {
> &can1 {
> pinctrl-names = "default";
> pinctrl-0 = <&pinctrl_flexcan1>;
> + xceiver-supply = <&reg_can1_stby>;
> status = "okay";
> };
>
> @@ -612,7 +623,6 @@ pinctrl_flexcan1: flexcan1grp {
> fsl,pins = <
> MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b1
> MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b1
> - MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
> >;
> };
>
> @@ -702,6 +712,12 @@ MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
> >;
> };
>
> + pinctrl_reg_can1: regcan1grp {
> + fsl,pins = <
> + MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x4001b0b0 /* CAN_STBY */
> + >;
> + };
> +
> pinctrl_uart1: uart1grp {
> fsl,pins = <
> MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
> --
> 2.25.1
>