diff mbox series

[V2] arm64: dts: fix drive strength macros as per FSD HW UM

Message ID 20221011080359.76220-1-p.rajanbabu@samsung.com (mailing list archive)
State New
Headers show
Series [V2] arm64: dts: fix drive strength macros as per FSD HW UM | expand

Commit Message

Padmanabhan Rajanbabu Oct. 11, 2022, 8:03 a.m. UTC
Drive strength macros defined for FSD platform is not reflecting actual
name and values as per HW UM. FSD SoC pinctrl has following four levels of
drive-strength and their corresponding values:
Level-1 <-> 0
Level-2 <-> 1
Level-4 <-> 2
Level-6 <-> 3

The commit 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
used drive strength macros defined for Exynos4 SoC family. For some IPs
the macros values of Exynos4 matched and worked well, but Exynos4 SoC
family drive-strength (names and values) is not exactly matching with
FSD SoC.

Fix the drive strength macros to reflect actual names and values given
in FSD HW UM. This also ensures that the existing peripherals in device
tree file is using correct drive strength MACROs to function as
expected.

Fixes: 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>
---
 arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +++++++++++-----------
 arch/arm64/boot/dts/tesla/fsd-pinctrl.h    |  6 ++--
 2 files changed, 20 insertions(+), 20 deletions(-)

Comments

Krzysztof Kozlowski Oct. 11, 2022, 8:58 p.m. UTC | #1
On 11/10/2022 04:03, Padmanabhan Rajanbabu wrote:
> Drive strength macros defined for FSD platform is not reflecting actual
> name and values as per HW UM. FSD SoC pinctrl has following four levels of

s/name/names/

> drive-strength and their corresponding values:
> Level-1 <-> 0
> Level-2 <-> 1
> Level-4 <-> 2
> Level-6 <-> 3
> 
> The commit 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
> used drive strength macros defined for Exynos4 SoC family. For some IPs
> the macros values of Exynos4 matched and worked well, but Exynos4 SoC
> family drive-strength (names and values) is not exactly matching with
> FSD SoC.
> 
> Fix the drive strength macros to reflect actual names and values given
> in FSD HW UM. This also ensures that the existing peripherals in device
> tree file is using correct drive strength MACROs to function as
> expected.
> 
> Fixes: 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
> Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>
> ---

Rest of commit msg looks ok.

>  arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +++++++++++-----------
>  arch/arm64/boot/dts/tesla/fsd-pinctrl.h    |  6 ++--
>  2 files changed, 20 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> index d0abb9aa0e9e..e3852c946352 100644
> --- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> +++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> @@ -55,14 +55,14 @@
>  		samsung,pins = "gpf5-0";
>  		samsung,pin-function = <FSD_PIN_FUNC_2>;
>  		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
> -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
>  	};
>  
>  	ufs_refclk_out: ufs-refclk-out-pins {
>  		samsung,pins = "gpf5-1";
>  		samsung,pin-function = <FSD_PIN_FUNC_2>;
>  		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
> -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
>  	};
>  };
>  
> @@ -239,105 +239,105 @@
>  		samsung,pins = "gpb6-1";
>  		samsung,pin-function = <FSD_PIN_FUNC_2>;
>  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
>  	};
>  
>  	pwm1_out: pwm1-out-pins {
>  		samsung,pins = "gpb6-5";
>  		samsung,pin-function = <FSD_PIN_FUNC_2>;
>  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
>  	};
>  
>  	hs_i2c0_bus: hs-i2c0-bus-pins {
>  		samsung,pins = "gpb0-0", "gpb0-1";
>  		samsung,pin-function = <FSD_PIN_FUNC_2>;
>  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> -		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
> +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;

You are now changing both the value for register and the meaning (name).
Your commit msg indicated that the names are not correct, not the
values. Based on the commit msg, I expect the DTBs are the same. Are
they? If not, it these are two different commits with their own
explanations/reasoning.

Best regards,
Krzysztof
Alim Akhtar Oct. 12, 2022, 6:42 a.m. UTC | #2
>-----Original Message-----
>From: Padmanabhan Rajanbabu [mailto:p.rajanbabu@samsung.com]
>Sent: Tuesday, October 11, 2022 1:34 PM
>To: robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
>alim.akhtar@samsung.com; chanho61.park@samsung.com;
>linus.walleij@linaro.org; pankaj.dubey@samsung.com
>Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
>samsung-soc@vger.kernel.org; Padmanabhan Rajanbabu
><p.rajanbabu@samsung.com>
>Subject: [PATCH V2] arm64: dts: fix drive strength macros as per FSD HW UM
>
>Drive strength macros defined for FSD platform is not reflecting actual name
>and values as per HW UM. FSD SoC pinctrl has following four levels of drive-
>strength and their corresponding values:
>Level-1 <-> 0
>Level-2 <-> 1
>Level-4 <-> 2
>Level-6 <-> 3
>
>The commit 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support") used
>drive strength macros defined for Exynos4 SoC family. For some IPs the
>macros values of Exynos4 matched and worked well, but Exynos4 SoC family
>drive-strength (names and values) is not exactly matching with FSD SoC.
>
>Fix the drive strength macros to reflect actual names and values given in FSD
>HW UM. This also ensures that the existing peripherals in device tree file is
>using correct drive strength MACROs to function as expected.
>
>Fixes: 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
>Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>
>---

Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>

> arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +++++++++++-----------
> arch/arm64/boot/dts/tesla/fsd-pinctrl.h    |  6 ++--
> 2 files changed, 20 insertions(+), 20 deletions(-)
>
>diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
>b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
>index d0abb9aa0e9e..e3852c946352 100644
>--- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
>+++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
>@@ -55,14 +55,14 @@
> 		samsung,pins = "gpf5-0";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	ufs_refclk_out: ufs-refclk-out-pins {
> 		samsung,pins = "gpf5-1";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
> };
>
>@@ -239,105 +239,105 @@
> 		samsung,pins = "gpb6-1";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	pwm1_out: pwm1-out-pins {
> 		samsung,pins = "gpb6-5";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c0_bus: hs-i2c0-bus-pins {
> 		samsung,pins = "gpb0-0", "gpb0-1";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c1_bus: hs-i2c1-bus-pins {
> 		samsung,pins = "gpb0-2", "gpb0-3";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c2_bus: hs-i2c2-bus-pins {
> 		samsung,pins = "gpb0-4", "gpb0-5";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c3_bus: hs-i2c3-bus-pins {
> 		samsung,pins = "gpb0-6", "gpb0-7";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c4_bus: hs-i2c4-bus-pins {
> 		samsung,pins = "gpb1-0", "gpb1-1";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c5_bus: hs-i2c5-bus-pins {
> 		samsung,pins = "gpb1-2", "gpb1-3";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c6_bus: hs-i2c6-bus-pins {
> 		samsung,pins = "gpb1-4", "gpb1-5";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	hs_i2c7_bus: hs-i2c7-bus-pins {
> 		samsung,pins = "gpb1-6", "gpb1-7";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	uart0_data: uart0-data-pins {
> 		samsung,pins = "gpb7-0", "gpb7-1";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	uart1_data: uart1-data-pins {
> 		samsung,pins = "gpb7-4", "gpb7-5";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	spi0_bus: spi0-bus-pins {
> 		samsung,pins = "gpb4-0", "gpb4-2", "gpb4-3";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	spi1_bus: spi1-bus-pins {
> 		samsung,pins = "gpb4-4", "gpb4-6", "gpb4-7";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
>
> 	spi2_bus: spi2-bus-pins {
> 		samsung,pins = "gpb5-0", "gpb5-2", "gpb5-3";
> 		samsung,pin-function = <FSD_PIN_FUNC_2>;
> 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
>-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
>+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 	};
> };
>
>diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
>b/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
>index 6ffbda362493..c397d02208a0 100644
>--- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
>+++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
>@@ -16,9 +16,9 @@
> #define FSD_PIN_PULL_UP			3
>
> #define FSD_PIN_DRV_LV1			0
>-#define FSD_PIN_DRV_LV2			2
>-#define FSD_PIN_DRV_LV3			1
>-#define FSD_PIN_DRV_LV4			3
>+#define FSD_PIN_DRV_LV2			1
>+#define FSD_PIN_DRV_LV4			2
>+#define FSD_PIN_DRV_LV6			3
>
> #define FSD_PIN_FUNC_INPUT		0
> #define FSD_PIN_FUNC_OUTPUT		1
>--
>2.17.1
Padmanabhan Rajanbabu Oct. 12, 2022, 8:30 a.m. UTC | #3
> -----Original Message-----
> From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org]
> Sent: 12 October 2022 02:28 AM
> To: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>;
> robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org;
> alim.akhtar@samsung.com; chanho61.park@samsung.com;
> linus.walleij@linaro.org; pankaj.dubey@samsung.com
> Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> samsung-soc@vger.kernel.org
> Subject: Re: [PATCH V2] arm64: dts: fix drive strength macros as per FSD HW
> UM
> 
> On 11/10/2022 04:03, Padmanabhan Rajanbabu wrote:
> > Drive strength macros defined for FSD platform is not reflecting
> > actual name and values as per HW UM. FSD SoC pinctrl has following
> > four levels of
> 
> s/name/names/
Okay.
> 
> > drive-strength and their corresponding values:
> > Level-1 <-> 0
> > Level-2 <-> 1
> > Level-4 <-> 2
> > Level-6 <-> 3
> >
> > The commit 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl
> > support") used drive strength macros defined for Exynos4 SoC family.
> > For some IPs the macros values of Exynos4 matched and worked well, but
> > Exynos4 SoC family drive-strength (names and values) is not exactly
> > matching with FSD SoC.
> >
> > Fix the drive strength macros to reflect actual names and values given
> > in FSD HW UM. This also ensures that the existing peripherals in
> > device tree file is using correct drive strength MACROs to function as
> > expected.
> >
> > Fixes: 684dac402f21 ("arm64: dts: fsd: Add initial pinctrl support")
> > Signed-off-by: Padmanabhan Rajanbabu <p.rajanbabu@samsung.com>
> > ---
> 
> Rest of commit msg looks ok.
> 
> >  arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi | 34 +++++++++++-----------
> >  arch/arm64/boot/dts/tesla/fsd-pinctrl.h    |  6 ++--
> >  2 files changed, 20 insertions(+), 20 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> > b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> > index d0abb9aa0e9e..e3852c946352 100644
> > --- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> > +++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
> > @@ -55,14 +55,14 @@
> >  		samsung,pins = "gpf5-0";
> >  		samsung,pin-function = <FSD_PIN_FUNC_2>;
> >  		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
> > -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> > +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> >  	};
> >
> >  	ufs_refclk_out: ufs-refclk-out-pins {
> >  		samsung,pins = "gpf5-1";
> >  		samsung,pin-function = <FSD_PIN_FUNC_2>;
> >  		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
> > -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> > +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> >  	};
> >  };
> >
> > @@ -239,105 +239,105 @@
> >  		samsung,pins = "gpb6-1";
> >  		samsung,pin-function = <FSD_PIN_FUNC_2>;
> >  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> > -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> > +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> >  	};
> >
> >  	pwm1_out: pwm1-out-pins {
> >  		samsung,pins = "gpb6-5";
> >  		samsung,pin-function = <FSD_PIN_FUNC_2>;
> >  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> > -		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
> > +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> >  	};
> >
> >  	hs_i2c0_bus: hs-i2c0-bus-pins {
> >  		samsung,pins = "gpb0-0", "gpb0-1";
> >  		samsung,pin-function = <FSD_PIN_FUNC_2>;
> >  		samsung,pin-pud = <FSD_PIN_PULL_UP>;
> > -		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
> > +		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
> 
> You are now changing both the value for register and the meaning (name).
> Your commit msg indicated that the names are not correct, not the values.
> Based on the commit msg, I expect the DTBs are the same. Are they? If not,
> it these are two different commits with their own explanations/reasoning.
In some cases, yes, both name and values requires modification. I understood 
that I have to split this into two patches, correcting the MACRO names and values
in one patch and fixing the drive strength for some of the IPs in other patch.
> 
> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
index d0abb9aa0e9e..e3852c946352 100644
--- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
+++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.dtsi
@@ -55,14 +55,14 @@ 
 		samsung,pins = "gpf5-0";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	ufs_refclk_out: ufs-refclk-out-pins {
 		samsung,pins = "gpf5-1";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 };
 
@@ -239,105 +239,105 @@ 
 		samsung,pins = "gpb6-1";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	pwm1_out: pwm1-out-pins {
 		samsung,pins = "gpb6-5";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV2>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c0_bus: hs-i2c0-bus-pins {
 		samsung,pins = "gpb0-0", "gpb0-1";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c1_bus: hs-i2c1-bus-pins {
 		samsung,pins = "gpb0-2", "gpb0-3";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c2_bus: hs-i2c2-bus-pins {
 		samsung,pins = "gpb0-4", "gpb0-5";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c3_bus: hs-i2c3-bus-pins {
 		samsung,pins = "gpb0-6", "gpb0-7";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c4_bus: hs-i2c4-bus-pins {
 		samsung,pins = "gpb1-0", "gpb1-1";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c5_bus: hs-i2c5-bus-pins {
 		samsung,pins = "gpb1-2", "gpb1-3";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c6_bus: hs-i2c6-bus-pins {
 		samsung,pins = "gpb1-4", "gpb1-5";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	hs_i2c7_bus: hs-i2c7-bus-pins {
 		samsung,pins = "gpb1-6", "gpb1-7";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	uart0_data: uart0-data-pins {
 		samsung,pins = "gpb7-0", "gpb7-1";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	uart1_data: uart1-data-pins {
 		samsung,pins = "gpb7-4", "gpb7-5";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_NONE>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	spi0_bus: spi0-bus-pins {
 		samsung,pins = "gpb4-0", "gpb4-2", "gpb4-3";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	spi1_bus: spi1-bus-pins {
 		samsung,pins = "gpb4-4", "gpb4-6", "gpb4-7";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 
 	spi2_bus: spi2-bus-pins {
 		samsung,pins = "gpb5-0", "gpb5-2", "gpb5-3";
 		samsung,pin-function = <FSD_PIN_FUNC_2>;
 		samsung,pin-pud = <FSD_PIN_PULL_UP>;
-		samsung,pin-drv = <FSD_PIN_DRV_LV1>;
+		samsung,pin-drv = <FSD_PIN_DRV_LV4>;
 	};
 };
 
diff --git a/arch/arm64/boot/dts/tesla/fsd-pinctrl.h b/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
index 6ffbda362493..c397d02208a0 100644
--- a/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
+++ b/arch/arm64/boot/dts/tesla/fsd-pinctrl.h
@@ -16,9 +16,9 @@ 
 #define FSD_PIN_PULL_UP			3
 
 #define FSD_PIN_DRV_LV1			0
-#define FSD_PIN_DRV_LV2			2
-#define FSD_PIN_DRV_LV3			1
-#define FSD_PIN_DRV_LV4			3
+#define FSD_PIN_DRV_LV2			1
+#define FSD_PIN_DRV_LV4			2
+#define FSD_PIN_DRV_LV6			3
 
 #define FSD_PIN_FUNC_INPUT		0
 #define FSD_PIN_FUNC_OUTPUT		1