All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Add I2C and PWM support for T234
@ 2022-01-24 11:18 Akhil R
  2022-01-24 11:18 ` [PATCH v3 1/4] dt-bindings: Add headers for Tegra234 I2C Akhil R
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Akhil R @ 2022-01-24 11:18 UTC (permalink / raw)
  To: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding
  Cc: akhilrajeev

The patchset contains driver and devicetree changes to support I2C and
PWM for Tegra234

v2->v3:
  * Sorted clock and reset based on ID
v1->v2:
  * Reverted changes in i2c-tegra.c. using tegra194_i2c_hw for tegra234
    as the values are compatible.

Akhil R (4):
  dt-bindings: Add headers for Tegra234 I2C
  arm64: tegra: Add Tegra234 I2C devicetree nodes
  dt-bindings: Add headers for Tegra234 PWM
  arm64: tegra: Add Tegra234 PWM devicetree nodes

 arch/arm64/boot/dts/nvidia/tegra234.dtsi   | 133 +++++++++++++++++++++++++++++
 include/dt-bindings/clock/tegra234-clock.h |  35 +++++++-
 include/dt-bindings/reset/tegra234-reset.h |  16 ++++
 3 files changed, 183 insertions(+), 1 deletion(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v3 1/4] dt-bindings: Add headers for Tegra234 I2C
  2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
@ 2022-01-24 11:18 ` Akhil R
  2022-01-24 11:18 ` [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes Akhil R
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Akhil R @ 2022-01-24 11:18 UTC (permalink / raw)
  To: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding
  Cc: akhilrajeev

Add dt-bindings header files for I2C controllers for Tegra234

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 include/dt-bindings/clock/tegra234-clock.h | 19 ++++++++++++++++++-
 include/dt-bindings/reset/tegra234-reset.h |  8 ++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/clock/tegra234-clock.h b/include/dt-bindings/clock/tegra234-clock.h
index 8d7e66e..dc524e6 100644
--- a/include/dt-bindings/clock/tegra234-clock.h
+++ b/include/dt-bindings/clock/tegra234-clock.h
@@ -20,6 +20,24 @@
 #define TEGRA234_CLK_EMC			31U
 /** @brief output of gate CLK_ENB_FUSE */
 #define TEGRA234_CLK_FUSE			40U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C1 */
+#define TEGRA234_CLK_I2C1			48U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C2 */
+#define TEGRA234_CLK_I2C2			49U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C3 */
+#define TEGRA234_CLK_I2C3			50U
+/** output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C4 */
+#define TEGRA234_CLK_I2C4			51U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C6 */
+#define TEGRA234_CLK_I2C6			52U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C7 */
+#define TEGRA234_CLK_I2C7			53U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C8 */
+#define TEGRA234_CLK_I2C8			54U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2C9 */
+#define TEGRA234_CLK_I2C9			55U
+/** @brief PLLP clk output */
+#define TEGRA234_CLK_PLLP_OUT0			102U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC4 */
 #define TEGRA234_CLK_SDMMC4			123U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_UARTA */
@@ -30,5 +48,4 @@
 #define TEGRA234_CLK_PLLC4			237U
 /** @brief 32K input clock provided by PMIC */
 #define TEGRA234_CLK_CLK_32K			289U
-
 #endif
diff --git a/include/dt-bindings/reset/tegra234-reset.h b/include/dt-bindings/reset/tegra234-reset.h
index 50e13bc..2963259 100644
--- a/include/dt-bindings/reset/tegra234-reset.h
+++ b/include/dt-bindings/reset/tegra234-reset.h
@@ -10,6 +10,14 @@
  * @brief Identifiers for Resets controllable by firmware
  * @{
  */
+#define TEGRA234_RESET_I2C1			24U
+#define TEGRA234_RESET_I2C2			29U
+#define TEGRA234_RESET_I2C3			30U
+#define TEGRA234_RESET_I2C4			31U
+#define TEGRA234_RESET_I2C6			32U
+#define TEGRA234_RESET_I2C7			33U
+#define TEGRA234_RESET_I2C8			34U
+#define TEGRA234_RESET_I2C9			35U
 #define TEGRA234_RESET_SDMMC4			85U
 #define TEGRA234_RESET_UARTA			100U
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes
  2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
  2022-01-24 11:18 ` [PATCH v3 1/4] dt-bindings: Add headers for Tegra234 I2C Akhil R
@ 2022-01-24 11:18 ` Akhil R
  2022-01-24 16:48   ` Dmitry Osipenko
  2022-01-24 11:18 ` [PATCH v3 3/4] dt-bindings: Add headers for Tegra234 PWM Akhil R
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Akhil R @ 2022-01-24 11:18 UTC (permalink / raw)
  To: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding
  Cc: akhilrajeev

Add device tree nodes for Tegra234 I2C controllers

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 arch/arm64/boot/dts/nvidia/tegra234.dtsi | 121 +++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index 6b6f1580..c686827 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -144,6 +144,96 @@
 			status = "disabled";
 		};
 
+		gen1_i2c: i2c@3160000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x3160000 0x100>;
+			status = "disabled";
+			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+			clock-frequency = <400000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C1
+				  &bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C1>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C1>;
+			reset-names = "i2c";
+		};
+
+		cam_i2c: i2c@3180000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x3180000 0x100>;
+			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <400000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C3
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C3>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C3>;
+			reset-names = "i2c";
+		};
+
+		dp_aux_ch1_i2c: i2c@3190000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x3190000 0x100>;
+			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <100000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C4
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C4>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C4>;
+			reset-names = "i2c";
+		};
+
+		dp_aux_ch0_i2c: i2c@31b0000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x31b0000 0x100>;
+			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <100000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C6
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C6>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C6>;
+			reset-names = "i2c";
+		};
+
+		dp_aux_ch2_i2c: i2c@31c0000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x31c0000 0x100>;
+			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <100000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C7
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C7>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C7>;
+			reset-names = "i2c";
+		};
+
+		dp_aux_ch3_i2c: i2c@31e0000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0x31e0000 0x100>;
+			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <100000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C9
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C9>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			resets = <&bpmp TEGRA234_RESET_I2C9>;
+			reset-names = "i2c";
+		};
+
 		mmc@3460000 {
 			compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03460000 0x20000>;
@@ -212,6 +302,37 @@
 			#mbox-cells = <2>;
 		};
 
+		gen2_i2c: i2c@c240000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0xc240000 0x100>;
+			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <100000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C2
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C2>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			resets = <&bpmp TEGRA234_RESET_I2C2>;
+			reset-names = "i2c";
+		};
+
+		gen8_i2c: i2c@c250000 {
+			compatible = "nvidia,tegra194-i2c";
+			reg = <0xc250000 0x100>;
+			nvidia,hw-instance-id = <0x7>;
+			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+			status = "disabled";
+			clock-frequency = <400000>;
+			clocks = <&bpmp TEGRA234_CLK_I2C8
+				&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			clock-names = "div-clk", "parent";
+			assigned-clocks = <&bpmp TEGRA234_CLK_I2C8>;
+			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
+			resets = <&bpmp TEGRA234_RESET_I2C8>;
+			reset-names = "i2c";
+		};
+
 		rtc@c2a0000 {
 			compatible = "nvidia,tegra234-rtc", "nvidia,tegra20-rtc";
 			reg = <0x0c2a0000 0x10000>;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 3/4] dt-bindings: Add headers for Tegra234 PWM
  2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
  2022-01-24 11:18 ` [PATCH v3 1/4] dt-bindings: Add headers for Tegra234 I2C Akhil R
  2022-01-24 11:18 ` [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes Akhil R
@ 2022-01-24 11:18 ` Akhil R
  2022-01-24 11:18 ` [PATCH v3 4/4] arm64: tegra: Add Tegra234 PWM devicetree nodes Akhil R
  2022-02-03 17:50 ` [PATCH v3 0/4] Add I2C and PWM support for T234 Thierry Reding
  4 siblings, 0 replies; 8+ messages in thread
From: Akhil R @ 2022-01-24 11:18 UTC (permalink / raw)
  To: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding
  Cc: akhilrajeev

Add dt-bindings header files for PWM of Tegra234

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 include/dt-bindings/clock/tegra234-clock.h | 16 ++++++++++++++++
 include/dt-bindings/reset/tegra234-reset.h |  8 ++++++++
 2 files changed, 24 insertions(+)

diff --git a/include/dt-bindings/clock/tegra234-clock.h b/include/dt-bindings/clock/tegra234-clock.h
index dc524e6..2529e7e 100644
--- a/include/dt-bindings/clock/tegra234-clock.h
+++ b/include/dt-bindings/clock/tegra234-clock.h
@@ -38,6 +38,22 @@
 #define TEGRA234_CLK_I2C9			55U
 /** @brief PLLP clk output */
 #define TEGRA234_CLK_PLLP_OUT0			102U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM1 */
+#define TEGRA234_CLK_PWM1			105U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM2 */
+#define TEGRA234_CLK_PWM2			106U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM3 */
+#define TEGRA234_CLK_PWM3			107U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM4 */
+#define TEGRA234_CLK_PWM4			108U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM5 */
+#define TEGRA234_CLK_PWM5			109U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM6 */
+#define TEGRA234_CLK_PWM6			110U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM7 */
+#define TEGRA234_CLK_PWM7			111U
+/** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_PWM8 */
+#define TEGRA234_CLK_PWM8			112U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC4 */
 #define TEGRA234_CLK_SDMMC4			123U
 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_UARTA */
diff --git a/include/dt-bindings/reset/tegra234-reset.h b/include/dt-bindings/reset/tegra234-reset.h
index 2963259..ba390b8 100644
--- a/include/dt-bindings/reset/tegra234-reset.h
+++ b/include/dt-bindings/reset/tegra234-reset.h
@@ -18,6 +18,14 @@
 #define TEGRA234_RESET_I2C7			33U
 #define TEGRA234_RESET_I2C8			34U
 #define TEGRA234_RESET_I2C9			35U
+#define TEGRA234_RESET_PWM1			68U
+#define TEGRA234_RESET_PWM2			69U
+#define TEGRA234_RESET_PWM3			70U
+#define TEGRA234_RESET_PWM4			71U
+#define TEGRA234_RESET_PWM5			72U
+#define TEGRA234_RESET_PWM6			73U
+#define TEGRA234_RESET_PWM7			74U
+#define TEGRA234_RESET_PWM8			75U
 #define TEGRA234_RESET_SDMMC4			85U
 #define TEGRA234_RESET_UARTA			100U
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v3 4/4] arm64: tegra: Add Tegra234 PWM devicetree nodes
  2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
                   ` (2 preceding siblings ...)
  2022-01-24 11:18 ` [PATCH v3 3/4] dt-bindings: Add headers for Tegra234 PWM Akhil R
@ 2022-01-24 11:18 ` Akhil R
  2022-02-03 17:50 ` [PATCH v3 0/4] Add I2C and PWM support for T234 Thierry Reding
  4 siblings, 0 replies; 8+ messages in thread
From: Akhil R @ 2022-01-24 11:18 UTC (permalink / raw)
  To: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding
  Cc: akhilrajeev

Add device tree nodes for Tegra234 PWM

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
 arch/arm64/boot/dts/nvidia/tegra234.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
index c686827..cbebf1e 100644
--- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
@@ -234,6 +234,18 @@
 			reset-names = "i2c";
 		};
 
+		pwm1: pwm@3280000 {
+			compatible = "nvidia,tegra194-pwm",
+				     "nvidia,tegra186-pwm";
+			reg = <0x3280000 0x10000>;
+			clocks = <&bpmp TEGRA234_CLK_PWM1>;
+			clock-names = "pwm";
+			resets = <&bpmp TEGRA234_RESET_PWM1>;
+			reset-names = "pwm";
+			status = "disabled";
+			#pwm-cells = <2>;
+		};
+
 		mmc@3460000 {
 			compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci";
 			reg = <0x03460000 0x20000>;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes
  2022-01-24 11:18 ` [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes Akhil R
@ 2022-01-24 16:48   ` Dmitry Osipenko
  2022-01-25  4:51     ` Akhil R
  0 siblings, 1 reply; 8+ messages in thread
From: Dmitry Osipenko @ 2022-01-24 16:48 UTC (permalink / raw)
  To: Akhil R, devicetree, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt, thierry.reding

24.01.2022 14:18, Akhil R пишет:
> Add device tree nodes for Tegra234 I2C controllers
> 
> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> ---
>  arch/arm64/boot/dts/nvidia/tegra234.dtsi | 121 +++++++++++++++++++++++++++++++
>  1 file changed, 121 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> index 6b6f1580..c686827 100644
> --- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> +++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> @@ -144,6 +144,96 @@
>  			status = "disabled";
>  		};
>  
> +		gen1_i2c: i2c@3160000 {
> +			compatible = "nvidia,tegra194-i2c";
> +			reg = <0x3160000 0x100>;
> +			status = "disabled";
> +			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> +			clock-frequency = <400000>;
> +			clocks = <&bpmp TEGRA234_CLK_I2C1
> +				  &bpmp TEGRA234_CLK_PLLP_OUT0>;
> +			assigned-clocks = <&bpmp TEGRA234_CLK_I2C1>;
> +			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
> +			clock-names = "div-clk", "parent";
> +			resets = <&bpmp TEGRA234_RESET_I2C1>;
> +			reset-names = "i2c";
> +		};

The patchset looks okay to me, thank you. I've one question:

Could you please explain why the "PLLP" I2C timing configuration that is
specified in the "example" section of Tegra TRM isn't suitable for
T194/234? Why I2C Tegra kernel driver uses a different configuration?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes
  2022-01-24 16:48   ` Dmitry Osipenko
@ 2022-01-25  4:51     ` Akhil R
  0 siblings, 0 replies; 8+ messages in thread
From: Akhil R @ 2022-01-25  4:51 UTC (permalink / raw)
  To: Dmitry Osipenko, devicetree, Jonathan Hunter, Laxman Dewangan,
	linux-i2c, linux-kernel, linux-tegra, Mikko Perttunen, robh+dt,
	thierry.reding

> 24.01.2022 14:18, Akhil R пишет:
> > Add device tree nodes for Tegra234 I2C controllers
> >
> > Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> > ---
> >  arch/arm64/boot/dts/nvidia/tegra234.dtsi | 121
> > +++++++++++++++++++++++++++++++
> >  1 file changed, 121 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> > b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> > index 6b6f1580..c686827 100644
> > --- a/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> > +++ b/arch/arm64/boot/dts/nvidia/tegra234.dtsi
> > @@ -144,6 +144,96 @@
> >                       status = "disabled";
> >               };
> >
> > +             gen1_i2c: i2c@3160000 {
> > +                     compatible = "nvidia,tegra194-i2c";
> > +                     reg = <0x3160000 0x100>;
> > +                     status = "disabled";
> > +                     interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> > +                     clock-frequency = <400000>;
> > +                     clocks = <&bpmp TEGRA234_CLK_I2C1
> > +                               &bpmp TEGRA234_CLK_PLLP_OUT0>;
> > +                     assigned-clocks = <&bpmp TEGRA234_CLK_I2C1>;
> > +                     assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
> > +                     clock-names = "div-clk", "parent";
> > +                     resets = <&bpmp TEGRA234_RESET_I2C1>;
> > +                     reset-names = "i2c";
> > +             };
> 
> The patchset looks okay to me, thank you. I've one question:
> 
> Could you please explain why the "PLLP" I2C timing configuration that is
> specified in the "example" section of Tegra TRM isn't suitable for T194/234?
> Why I2C Tegra kernel driver uses a different configuration?
The values in TRM are example settings. The values in driver are
more precise values based on characterization test results.

Regards,
Akhil


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v3 0/4] Add I2C and PWM support for T234
  2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
                   ` (3 preceding siblings ...)
  2022-01-24 11:18 ` [PATCH v3 4/4] arm64: tegra: Add Tegra234 PWM devicetree nodes Akhil R
@ 2022-02-03 17:50 ` Thierry Reding
  4 siblings, 0 replies; 8+ messages in thread
From: Thierry Reding @ 2022-02-03 17:50 UTC (permalink / raw)
  To: Akhil R
  Cc: devicetree, digetx, jonathanh, ldewangan, linux-i2c,
	linux-kernel, linux-tegra, mperttunen, robh+dt

[-- Attachment #1: Type: text/plain, Size: 844 bytes --]

On Mon, Jan 24, 2022 at 04:48:13PM +0530, Akhil R wrote:
> The patchset contains driver and devicetree changes to support I2C and
> PWM for Tegra234
> 
> v2->v3:
>   * Sorted clock and reset based on ID
> v1->v2:
>   * Reverted changes in i2c-tegra.c. using tegra194_i2c_hw for tegra234
>     as the values are compatible.
> 
> Akhil R (4):
>   dt-bindings: Add headers for Tegra234 I2C
>   arm64: tegra: Add Tegra234 I2C devicetree nodes
>   dt-bindings: Add headers for Tegra234 PWM
>   arm64: tegra: Add Tegra234 PWM devicetree nodes
> 
>  arch/arm64/boot/dts/nvidia/tegra234.dtsi   | 133 +++++++++++++++++++++++++++++
>  include/dt-bindings/clock/tegra234-clock.h |  35 +++++++-
>  include/dt-bindings/reset/tegra234-reset.h |  16 ++++
>  3 files changed, 183 insertions(+), 1 deletion(-)

Applied, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-03 17:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-24 11:18 [PATCH v3 0/4] Add I2C and PWM support for T234 Akhil R
2022-01-24 11:18 ` [PATCH v3 1/4] dt-bindings: Add headers for Tegra234 I2C Akhil R
2022-01-24 11:18 ` [PATCH v3 2/4] arm64: tegra: Add Tegra234 I2C devicetree nodes Akhil R
2022-01-24 16:48   ` Dmitry Osipenko
2022-01-25  4:51     ` Akhil R
2022-01-24 11:18 ` [PATCH v3 3/4] dt-bindings: Add headers for Tegra234 PWM Akhil R
2022-01-24 11:18 ` [PATCH v3 4/4] arm64: tegra: Add Tegra234 PWM devicetree nodes Akhil R
2022-02-03 17:50 ` [PATCH v3 0/4] Add I2C and PWM support for T234 Thierry Reding

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.