* [PATCH 0/2] i2c: tegra: Add Tegra256 I2C controller support
@ 2025-07-31 9:11 Akhil R
2025-07-31 9:11 ` [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible Akhil R
2025-07-31 9:11 ` [PATCH 2/2] i2c: tegra: Add Tegra256 support Akhil R
0 siblings, 2 replies; 6+ messages in thread
From: Akhil R @ 2025-07-31 9:11 UTC (permalink / raw)
To: andi.shyti, conor+dt, devicetree, digetx, jonathanh, krzk+dt,
linux-i2c, linux-kernel, linux-tegra, thierry.reding
Cc: akhilrajeev, ldewangan, robh
This series adds support for Tegra256 I2C controllers to the Tegra I2C driver.
Tegra256 consists of 8 generic I2C controllers similar to previous Tegra generations,
but with a different parent clock frequency requiring adjusted timing parameters.
The changes add the "nvidia,tegra256-i2c" compatible string to device tree bindings
and implement the corresponding hardware feature structure with appropriate timing
parameters and clock divisors.
Akhil R (2):
dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C
i2c: tegra: Add Tegra256 support
.../bindings/i2c/nvidia,tegra20-i2c.yaml | 6 +++++
drivers/i2c/busses/i2c-tegra.c | 26 +++++++++++++++++++
2 files changed, 32 insertions(+)
--
2.50.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible
2025-07-31 9:11 [PATCH 0/2] i2c: tegra: Add Tegra256 I2C controller support Akhil R
@ 2025-07-31 9:11 ` Akhil R
2025-07-31 17:37 ` Rob Herring (Arm)
2025-08-01 9:56 ` Thierry Reding
2025-07-31 9:11 ` [PATCH 2/2] i2c: tegra: Add Tegra256 support Akhil R
1 sibling, 2 replies; 6+ messages in thread
From: Akhil R @ 2025-07-31 9:11 UTC (permalink / raw)
To: andi.shyti, conor+dt, devicetree, digetx, jonathanh, krzk+dt,
linux-i2c, linux-kernel, linux-tegra, thierry.reding
Cc: akhilrajeev, ldewangan, robh
Add compatible for Tegra256 I2C controllers. Tegra256 consists of
8 generic Tegra I2C controllers similar to previous generations.
The parent clock frequency is different in these controllers and
hence the timing parameter values are different from the previous
ones.
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
.../devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml
index 6b6f6762d122..6f58eb79a7b3 100644
--- a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml
+++ b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml
@@ -80,6 +80,11 @@ properties:
support for 64 KiB transactions whereas earlier chips supported no
more than 4 KiB per transactions.
const: nvidia,tegra194-i2c
+ - description: |
+ Tegra256 has 8 generic I2C controllers. The controllers are similar to
+ the previous generations, but have a different parent clock and hence
+ the timing parameters are configured differently.
+ const: nvidia,tegra256-i2c
reg:
maxItems: 1
@@ -186,6 +191,7 @@ allOf:
contains:
enum:
- nvidia,tegra194-i2c
+ - nvidia,tegra256-i2c
then:
required:
- resets
--
2.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] i2c: tegra: Add Tegra256 support
2025-07-31 9:11 [PATCH 0/2] i2c: tegra: Add Tegra256 I2C controller support Akhil R
2025-07-31 9:11 ` [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible Akhil R
@ 2025-07-31 9:11 ` Akhil R
2025-08-01 9:56 ` Thierry Reding
1 sibling, 1 reply; 6+ messages in thread
From: Akhil R @ 2025-07-31 9:11 UTC (permalink / raw)
To: andi.shyti, conor+dt, devicetree, digetx, jonathanh, krzk+dt,
linux-i2c, linux-kernel, linux-tegra, thierry.reding
Cc: akhilrajeev, ldewangan, robh
Add compatible and the hardware struct for Tegra256. Tegra256 controllers
use a different parent clock. Hence the timing parameters are different
from the previous generations to meet the expected frequencies.
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
---
drivers/i2c/busses/i2c-tegra.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index 4eb31b913c1a..e533460bccc3 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -1649,7 +1649,33 @@ static const struct tegra_i2c_hw_feature tegra194_i2c_hw = {
.has_interface_timing_reg = true,
};
+static const struct tegra_i2c_hw_feature tegra256_i2c_hw = {
+ .has_continue_xfer_support = true,
+ .has_per_pkt_xfer_complete_irq = true,
+ .clk_divisor_hs_mode = 7,
+ .clk_divisor_std_mode = 0x7a,
+ .clk_divisor_fast_mode = 0x40,
+ .clk_divisor_fast_plus_mode = 0x19,
+ .has_config_load_reg = true,
+ .has_multi_master_mode = true,
+ .has_slcg_override_reg = true,
+ .has_mst_fifo = true,
+ .has_mst_reset = true,
+ .quirks = &tegra194_i2c_quirks,
+ .supports_bus_clear = true,
+ .has_apb_dma = false,
+ .tlow_std_mode = 0x8,
+ .thigh_std_mode = 0x7,
+ .tlow_fast_fastplus_mode = 0x3,
+ .thigh_fast_fastplus_mode = 0x3,
+ .setup_hold_time_std_mode = 0x08080808,
+ .setup_hold_time_fast_fast_plus_mode = 0x02020202,
+ .setup_hold_time_hs_mode = 0x090909,
+ .has_interface_timing_reg = true,
+};
+
static const struct of_device_id tegra_i2c_of_match[] = {
+ { .compatible = "nvidia,tegra256-i2c", .data = &tegra256_i2c_hw, },
{ .compatible = "nvidia,tegra194-i2c", .data = &tegra194_i2c_hw, },
{ .compatible = "nvidia,tegra186-i2c", .data = &tegra186_i2c_hw, },
#if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
--
2.50.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible
2025-07-31 9:11 ` [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible Akhil R
@ 2025-07-31 17:37 ` Rob Herring (Arm)
2025-08-01 9:56 ` Thierry Reding
1 sibling, 0 replies; 6+ messages in thread
From: Rob Herring (Arm) @ 2025-07-31 17:37 UTC (permalink / raw)
To: Akhil R
Cc: linux-i2c, andi.shyti, digetx, linux-tegra, devicetree, ldewangan,
conor+dt, thierry.reding, linux-kernel, jonathanh, krzk+dt
On Thu, 31 Jul 2025 14:41:21 +0530, Akhil R wrote:
> Add compatible for Tegra256 I2C controllers. Tegra256 consists of
> 8 generic Tegra I2C controllers similar to previous generations.
> The parent clock frequency is different in these controllers and
> hence the timing parameter values are different from the previous
> ones.
>
> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> ---
> .../devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] i2c: tegra: Add Tegra256 support
2025-07-31 9:11 ` [PATCH 2/2] i2c: tegra: Add Tegra256 support Akhil R
@ 2025-08-01 9:56 ` Thierry Reding
0 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2025-08-01 9:56 UTC (permalink / raw)
To: Akhil R
Cc: andi.shyti, conor+dt, devicetree, digetx, jonathanh, krzk+dt,
linux-i2c, linux-kernel, linux-tegra, ldewangan, robh
[-- Attachment #1: Type: text/plain, Size: 492 bytes --]
On Thu, Jul 31, 2025 at 02:41:22PM +0530, Akhil R wrote:
> Add compatible and the hardware struct for Tegra256. Tegra256 controllers
> use a different parent clock. Hence the timing parameters are different
> from the previous generations to meet the expected frequencies.
>
> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> ---
> drivers/i2c/busses/i2c-tegra.c | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible
2025-07-31 9:11 ` [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible Akhil R
2025-07-31 17:37 ` Rob Herring (Arm)
@ 2025-08-01 9:56 ` Thierry Reding
1 sibling, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2025-08-01 9:56 UTC (permalink / raw)
To: Akhil R
Cc: andi.shyti, conor+dt, devicetree, digetx, jonathanh, krzk+dt,
linux-i2c, linux-kernel, linux-tegra, ldewangan, robh
[-- Attachment #1: Type: text/plain, Size: 563 bytes --]
On Thu, Jul 31, 2025 at 02:41:21PM +0530, Akhil R wrote:
> Add compatible for Tegra256 I2C controllers. Tegra256 consists of
> 8 generic Tegra I2C controllers similar to previous generations.
> The parent clock frequency is different in these controllers and
> hence the timing parameter values are different from the previous
> ones.
>
> Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
> ---
> .../devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml | 6 ++++++
> 1 file changed, 6 insertions(+)
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-08-01 9:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-31 9:11 [PATCH 0/2] i2c: tegra: Add Tegra256 I2C controller support Akhil R
2025-07-31 9:11 ` [PATCH 1/2] dt-bindings: i2c: nvidia,tegra20-i2c: Add Tegra256 I2C compatible Akhil R
2025-07-31 17:37 ` Rob Herring (Arm)
2025-08-01 9:56 ` Thierry Reding
2025-07-31 9:11 ` [PATCH 2/2] i2c: tegra: Add Tegra256 support Akhil R
2025-08-01 9:56 ` Thierry Reding
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).