mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-30 21:52:21 +00:00

Document support for the I2C Bus Interface (RIIC) found on the Renesas RZ/T2H (R9A09G077) and RZ/N2H (R9A09G087) SoCs. The RIIC IP on these parts is similar to that on RZ/V2H(P) but supports only four interrupts (including a combined error/event), lacks FM+ mode, and does not require reset. Introduce a new compatible string `renesas,riic-r9a09g077` for RZ/T2H and use it as a fallback for RZ/N2H. Unlike earlier SoCs that use eight distinct interrupts, the RZ/T2H uses only four. Update the binding schema to reflect this interrupt layout and skip the `resets` property check, as it is not required on these SoCs. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Andi Shyti <andi.shyti@kernel.org> Link: https://lore.kernel.org/r/20250625104526.101004-3-prabhakar.mahadev-lad.rj@bp.renesas.com
163 lines
4.3 KiB
YAML
163 lines
4.3 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/i2c/renesas,riic.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Renesas RZ/A and RZ/G2L I2C Bus Interface (RIIC)
|
|
|
|
maintainers:
|
|
- Chris Brandt <chris.brandt@renesas.com>
|
|
- Wolfram Sang <wsa+renesas@sang-engineering.com>
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- items:
|
|
- enum:
|
|
- renesas,riic-r7s72100 # RZ/A1H
|
|
- renesas,riic-r7s9210 # RZ/A2M
|
|
- renesas,riic-r9a07g043 # RZ/G2UL and RZ/Five
|
|
- renesas,riic-r9a07g044 # RZ/G2{L,LC}
|
|
- renesas,riic-r9a07g054 # RZ/V2L
|
|
- const: renesas,riic-rz # RZ/A or RZ/G2L
|
|
|
|
- items:
|
|
- enum:
|
|
- renesas,riic-r9a08g045 # RZ/G3S
|
|
- renesas,riic-r9a09g047 # RZ/G3E
|
|
- renesas,riic-r9a09g056 # RZ/V2N
|
|
- const: renesas,riic-r9a09g057 # RZ/V2H(P)
|
|
|
|
- enum:
|
|
- renesas,riic-r9a09g057 # RZ/V2H(P)
|
|
- renesas,riic-r9a09g077 # RZ/T2H
|
|
|
|
- items:
|
|
- const: renesas,riic-r9a09g087 # RZ/N2H
|
|
- const: renesas,riic-r9a09g077 # RZ/T2H
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
oneOf:
|
|
- items:
|
|
- description: Transmit End Interrupt
|
|
- description: Receive Data Full Interrupt
|
|
- description: Transmit Data Empty Interrupt
|
|
- description: Stop Condition Detection Interrupt
|
|
- description: Start Condition Detection Interrupt
|
|
- description: NACK Reception Interrupt
|
|
- description: Arbitration-Lost Interrupt
|
|
- description: Timeout Interrupt
|
|
- items:
|
|
- description: Transfer Error Or Event Generation
|
|
- description: Receive Data Full Interrupt
|
|
- description: Transmit Data Empty Interrupt
|
|
- description: Transmit End Interrupt
|
|
|
|
interrupt-names:
|
|
oneOf:
|
|
- items:
|
|
- const: tei
|
|
- const: ri
|
|
- const: ti
|
|
- const: spi
|
|
- const: sti
|
|
- const: naki
|
|
- const: ali
|
|
- const: tmoi
|
|
- items:
|
|
- const: eei
|
|
- const: rxi
|
|
- const: txi
|
|
- const: tei
|
|
|
|
clock-frequency:
|
|
description:
|
|
Desired I2C bus clock frequency in Hz. The absence of this property
|
|
indicates the default frequency 100 kHz.
|
|
|
|
clocks:
|
|
maxItems: 1
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
resets:
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- interrupt-names
|
|
- clocks
|
|
- clock-frequency
|
|
- power-domains
|
|
- '#address-cells'
|
|
- '#size-cells'
|
|
|
|
allOf:
|
|
- $ref: /schemas/i2c/i2c-controller.yaml#
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
const: renesas,riic-r9a09g077
|
|
then:
|
|
properties:
|
|
interrupts:
|
|
maxItems: 4
|
|
interrupt-names:
|
|
maxItems: 4
|
|
resets: false
|
|
else:
|
|
properties:
|
|
interrupts:
|
|
minItems: 8
|
|
interrupt-names:
|
|
minItems: 8
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- renesas,riic-r9a07g043
|
|
- renesas,riic-r9a07g044
|
|
- renesas,riic-r9a07g054
|
|
- renesas,riic-r9a09g057
|
|
then:
|
|
required:
|
|
- resets
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/r7s72100-clock.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
i2c0: i2c@fcfee000 {
|
|
compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
|
|
reg = <0xfcfee000 0x44>;
|
|
interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
|
|
<GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
|
|
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
|
|
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali",
|
|
"tmoi";
|
|
clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
|
|
clock-frequency = <100000>;
|
|
power-domains = <&cpg_clocks>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|