| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/i2c/realtek,rtl9301-i2c.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Realtek RTL I2C Controller |
| |
| maintainers: |
| - Chris Packham <chris.packham@alliedtelesis.co.nz> |
| |
| description: |
| RTL9300 SoCs have two I2C controllers. Each of these has an SCL line (which |
| if not-used for SCL can be a GPIO). There are 8 common SDA lines that can be |
| assigned to either I2C controller. |
| RTL9310 SoCs have equal capabilities but support 12 common SDA lines which |
| can be assigned to either I2C controller. |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - realtek,rtl9302b-i2c |
| - realtek,rtl9302c-i2c |
| - realtek,rtl9303-i2c |
| - const: realtek,rtl9301-i2c |
| - items: |
| - enum: |
| - realtek,rtl9311-i2c |
| - realtek,rtl9312-i2c |
| - realtek,rtl9313-i2c |
| - const: realtek,rtl9310-i2c |
| - enum: |
| - realtek,rtl9301-i2c |
| - realtek,rtl9310-i2c |
| |
| reg: |
| items: |
| - description: Register offset and size of this I2C controller. |
| |
| "#address-cells": |
| const: 1 |
| |
| "#size-cells": |
| const: 0 |
| |
| realtek,scl: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| The SCL line number of this I2C controller. |
| enum: [ 0, 1 ] |
| |
| patternProperties: |
| '^i2c@[0-9ab]$': |
| $ref: /schemas/i2c/i2c-controller.yaml |
| unevaluatedProperties: false |
| |
| properties: |
| reg: |
| description: The SDA line number associated with the I2C bus. |
| maxItems: 1 |
| |
| required: |
| - reg |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: realtek,rtl9310-i2c |
| then: |
| required: |
| - realtek,scl |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: realtek,rtl9301-i2c |
| then: |
| patternProperties: |
| '^i2c@[89ab]$': false |
| |
| required: |
| - compatible |
| - reg |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| i2c@36c { |
| compatible = "realtek,rtl9301-i2c"; |
| reg = <0x36c 0x14>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| i2c@2 { |
| reg = <2>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| }; |