| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/i2c/samsung,s3c2410-i2c.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Samsung S3C/S5P/Exynos SoC I2C Controller |
| |
| maintainers: |
| - Krzysztof Kozlowski <krzk@kernel.org> |
| |
| properties: |
| compatible: |
| enum: |
| - samsung,s3c2410-i2c |
| - samsung,s3c2440-i2c |
| # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs: |
| - samsung,s3c2440-hdmiphy-i2c |
| # For s3c2440-like I2C used as a host to SATA PHY controller on an |
| # internal bus: |
| - samsung,exynos5-sata-phy-i2c |
| |
| '#address-cells': |
| const: 1 |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-names: |
| items: |
| - const: i2c |
| |
| gpios: |
| description: | |
| The order of the GPIOs should be the following:: <SDA, SCL>. The GPIO |
| specifier depends on the gpio controller. Required in all cases except |
| for "samsung,s3c2440-hdmiphy-i2c" whose input/output lines are |
| permanently wired to the respective client. |
| This property is deprecated. Use "pinctrl-0" and "pinctrl-names" instead. |
| deprecated: true |
| |
| interrupts: |
| maxItems: 1 |
| |
| reg: |
| maxItems: 1 |
| |
| samsung,i2c-max-bus-freq: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| Desired frequency in Hz of the bus. |
| default: 100000 |
| |
| samsung,i2c-sda-delay: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| Delay (in ns) applied to data line (SDA) edges. |
| default: 0 |
| |
| samsung,i2c-slave-addr: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: |
| Slave address in multi-master environment. |
| default: 0 |
| |
| samsung,sysreg-phandle: |
| $ref: /schemas/types.yaml#/definitions/phandle |
| description: Pandle to syscon used to control the system registers. |
| |
| '#size-cells': |
| const: 0 |
| |
| required: |
| - compatible |
| - reg |
| |
| allOf: |
| - $ref: /schemas/i2c/i2c-controller.yaml# |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - samsung,s3c2440-hdmiphy-i2c |
| - samsung,exynos5-sata-phy-i2c |
| then: |
| properties: |
| gpios: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - samsung,s3c2410-i2c |
| - samsung,s3c2440-i2c |
| - samsung,s3c2440-hdmiphy-i2c |
| then: |
| required: |
| - interrupts |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/exynos5250.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| i2c@12c60000 { |
| compatible = "samsung,s3c2440-i2c"; |
| reg = <0x12C60000 0x100>; |
| interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| clocks = <&clock CLK_I2C0>; |
| clock-names = "i2c"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c0_bus>; |
| |
| samsung,sysreg-phandle = <&sysreg_system_controller>; |
| samsung,i2c-sda-delay = <100>; |
| samsung,i2c-max-bus-freq = <20000>; |
| samsung,i2c-slave-addr = <0x66>; |
| |
| eeprom@50 { |
| compatible = "samsung,s524ad0xd1", "atmel,24c128"; |
| reg = <0x50>; |
| }; |
| }; |
| |
| i2c@12ce0000 { |
| compatible = "samsung,s3c2440-hdmiphy-i2c"; |
| reg = <0x12CE0000 0x1000>; |
| interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| clocks = <&clock CLK_I2C_HDMI>; |
| clock-names = "i2c"; |
| |
| samsung,i2c-sda-delay = <100>; |
| samsung,i2c-max-bus-freq = <66000>; |
| |
| phy-i2c@38 { |
| compatible = "samsung,exynos4212-hdmiphy"; |
| reg = <0x38>; |
| }; |
| }; |
| |
| i2c@121d0000 { |
| compatible = "samsung,exynos5-sata-phy-i2c"; |
| reg = <0x121D0000 0x100>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| clocks = <&clock CLK_SATA_PHYI2C>; |
| clock-names = "i2c"; |
| |
| samsung,i2c-sda-delay = <100>; |
| samsung,i2c-max-bus-freq = <40000>; |
| |
| phy-i2c@38 { |
| compatible = "samsung,exynos-sataphy-i2c"; |
| reg = <0x38>; |
| }; |
| }; |