1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c9ccf3a3SEmmanuel Vadot%YAML 1.2 3*c9ccf3a3SEmmanuel Vadot--- 4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/samsung,s3c2410-i2c.yaml# 5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c9ccf3a3SEmmanuel Vadot 7*c9ccf3a3SEmmanuel Vadottitle: Samsung S3C/S5P/Exynos SoC I2C Controller 8*c9ccf3a3SEmmanuel Vadot 9*c9ccf3a3SEmmanuel Vadotmaintainers: 10*c9ccf3a3SEmmanuel Vadot - Krzysztof Kozlowski <krzk@kernel.org> 11*c9ccf3a3SEmmanuel Vadot 12*c9ccf3a3SEmmanuel Vadotproperties: 13*c9ccf3a3SEmmanuel Vadot compatible: 14*c9ccf3a3SEmmanuel Vadot enum: 15*c9ccf3a3SEmmanuel Vadot - samsung,s3c2410-i2c 16*c9ccf3a3SEmmanuel Vadot - samsung,s3c2440-i2c 17*c9ccf3a3SEmmanuel Vadot # For s3c2440-like I2C used inside HDMIPHY block found on several SoCs: 18*c9ccf3a3SEmmanuel Vadot - samsung,s3c2440-hdmiphy-i2c 19*c9ccf3a3SEmmanuel Vadot # For s3c2440-like I2C used as a host to SATA PHY controller on an 20*c9ccf3a3SEmmanuel Vadot # internal bus: 21*c9ccf3a3SEmmanuel Vadot - samsung,exynos5-sata-phy-i2c 22*c9ccf3a3SEmmanuel Vadot 23*c9ccf3a3SEmmanuel Vadot '#address-cells': 24*c9ccf3a3SEmmanuel Vadot const: 1 25*c9ccf3a3SEmmanuel Vadot 26*c9ccf3a3SEmmanuel Vadot clocks: 27*c9ccf3a3SEmmanuel Vadot maxItems: 1 28*c9ccf3a3SEmmanuel Vadot 29*c9ccf3a3SEmmanuel Vadot clock-names: 30*c9ccf3a3SEmmanuel Vadot items: 31*c9ccf3a3SEmmanuel Vadot - const: i2c 32*c9ccf3a3SEmmanuel Vadot 33*c9ccf3a3SEmmanuel Vadot gpios: 34*c9ccf3a3SEmmanuel Vadot description: | 35*c9ccf3a3SEmmanuel Vadot The order of the GPIOs should be the following:: <SDA, SCL>. The GPIO 36*c9ccf3a3SEmmanuel Vadot specifier depends on the gpio controller. Required in all cases except 37*c9ccf3a3SEmmanuel Vadot for "samsung,s3c2440-hdmiphy-i2c" whose input/output lines are 38*c9ccf3a3SEmmanuel Vadot permanently wired to the respective client. 39*c9ccf3a3SEmmanuel Vadot This property is deprecated. Use "pinctrl-0" and "pinctrl-names" instead. 40*c9ccf3a3SEmmanuel Vadot deprecated: yes 41*c9ccf3a3SEmmanuel Vadot 42*c9ccf3a3SEmmanuel Vadot interrupts: 43*c9ccf3a3SEmmanuel Vadot maxItems: 1 44*c9ccf3a3SEmmanuel Vadot 45*c9ccf3a3SEmmanuel Vadot reg: 46*c9ccf3a3SEmmanuel Vadot maxItems: 1 47*c9ccf3a3SEmmanuel Vadot 48*c9ccf3a3SEmmanuel Vadot samsung,i2c-max-bus-freq: 49*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 50*c9ccf3a3SEmmanuel Vadot description: 51*c9ccf3a3SEmmanuel Vadot Desired frequency in Hz of the bus. 52*c9ccf3a3SEmmanuel Vadot default: 100000 53*c9ccf3a3SEmmanuel Vadot 54*c9ccf3a3SEmmanuel Vadot samsung,i2c-sda-delay: 55*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 56*c9ccf3a3SEmmanuel Vadot description: 57*c9ccf3a3SEmmanuel Vadot Delay (in ns) applied to data line (SDA) edges. 58*c9ccf3a3SEmmanuel Vadot default: 0 59*c9ccf3a3SEmmanuel Vadot 60*c9ccf3a3SEmmanuel Vadot samsung,i2c-slave-addr: 61*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 62*c9ccf3a3SEmmanuel Vadot description: 63*c9ccf3a3SEmmanuel Vadot Slave address in multi-master environment. 64*c9ccf3a3SEmmanuel Vadot default: 0 65*c9ccf3a3SEmmanuel Vadot 66*c9ccf3a3SEmmanuel Vadot samsung,sysreg-phandle: 67*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle 68*c9ccf3a3SEmmanuel Vadot description: Pandle to syscon used to control the system registers. 69*c9ccf3a3SEmmanuel Vadot 70*c9ccf3a3SEmmanuel Vadot '#size-cells': 71*c9ccf3a3SEmmanuel Vadot const: 0 72*c9ccf3a3SEmmanuel Vadot 73*c9ccf3a3SEmmanuel Vadotrequired: 74*c9ccf3a3SEmmanuel Vadot - compatible 75*c9ccf3a3SEmmanuel Vadot - reg 76*c9ccf3a3SEmmanuel Vadot 77*c9ccf3a3SEmmanuel VadotallOf: 78*c9ccf3a3SEmmanuel Vadot - $ref: /schemas/i2c/i2c-controller.yaml# 79*c9ccf3a3SEmmanuel Vadot - if: 80*c9ccf3a3SEmmanuel Vadot properties: 81*c9ccf3a3SEmmanuel Vadot compatible: 82*c9ccf3a3SEmmanuel Vadot contains: 83*c9ccf3a3SEmmanuel Vadot enum: 84*c9ccf3a3SEmmanuel Vadot - samsung,s3c2440-hdmiphy-i2c 85*c9ccf3a3SEmmanuel Vadot - samsung,exynos5-sata-phy-i2c 86*c9ccf3a3SEmmanuel Vadot then: 87*c9ccf3a3SEmmanuel Vadot properties: 88*c9ccf3a3SEmmanuel Vadot gpios: false 89*c9ccf3a3SEmmanuel Vadot 90*c9ccf3a3SEmmanuel Vadot - if: 91*c9ccf3a3SEmmanuel Vadot properties: 92*c9ccf3a3SEmmanuel Vadot compatible: 93*c9ccf3a3SEmmanuel Vadot contains: 94*c9ccf3a3SEmmanuel Vadot enum: 95*c9ccf3a3SEmmanuel Vadot - samsung,s3c2410-i2c 96*c9ccf3a3SEmmanuel Vadot - samsung,s3c2440-i2c 97*c9ccf3a3SEmmanuel Vadot - samsung,s3c2440-hdmiphy-i2c 98*c9ccf3a3SEmmanuel Vadot then: 99*c9ccf3a3SEmmanuel Vadot required: 100*c9ccf3a3SEmmanuel Vadot - interrupts 101*c9ccf3a3SEmmanuel Vadot 102*c9ccf3a3SEmmanuel VadotunevaluatedProperties: false 103*c9ccf3a3SEmmanuel Vadot 104*c9ccf3a3SEmmanuel Vadotexamples: 105*c9ccf3a3SEmmanuel Vadot - | 106*c9ccf3a3SEmmanuel Vadot #include <dt-bindings/clock/exynos5250.h> 107*c9ccf3a3SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 108*c9ccf3a3SEmmanuel Vadot 109*c9ccf3a3SEmmanuel Vadot i2c@12c60000 { 110*c9ccf3a3SEmmanuel Vadot compatible = "samsung,s3c2440-i2c"; 111*c9ccf3a3SEmmanuel Vadot reg = <0x12C60000 0x100>; 112*c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; 113*c9ccf3a3SEmmanuel Vadot #address-cells = <1>; 114*c9ccf3a3SEmmanuel Vadot #size-cells = <0>; 115*c9ccf3a3SEmmanuel Vadot clocks = <&clock CLK_I2C0>; 116*c9ccf3a3SEmmanuel Vadot clock-names = "i2c"; 117*c9ccf3a3SEmmanuel Vadot pinctrl-names = "default"; 118*c9ccf3a3SEmmanuel Vadot pinctrl-0 = <&i2c0_bus>; 119*c9ccf3a3SEmmanuel Vadot 120*c9ccf3a3SEmmanuel Vadot samsung,sysreg-phandle = <&sysreg_system_controller>; 121*c9ccf3a3SEmmanuel Vadot samsung,i2c-sda-delay = <100>; 122*c9ccf3a3SEmmanuel Vadot samsung,i2c-max-bus-freq = <20000>; 123*c9ccf3a3SEmmanuel Vadot samsung,i2c-slave-addr = <0x66>; 124*c9ccf3a3SEmmanuel Vadot 125*c9ccf3a3SEmmanuel Vadot eeprom@50 { 126*c9ccf3a3SEmmanuel Vadot compatible = "samsung,s524ad0xd1"; 127*c9ccf3a3SEmmanuel Vadot reg = <0x50>; 128*c9ccf3a3SEmmanuel Vadot }; 129*c9ccf3a3SEmmanuel Vadot }; 130*c9ccf3a3SEmmanuel Vadot 131*c9ccf3a3SEmmanuel Vadot i2c@12ce0000 { 132*c9ccf3a3SEmmanuel Vadot compatible = "samsung,s3c2440-hdmiphy-i2c"; 133*c9ccf3a3SEmmanuel Vadot reg = <0x12CE0000 0x1000>; 134*c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 135*c9ccf3a3SEmmanuel Vadot #address-cells = <1>; 136*c9ccf3a3SEmmanuel Vadot #size-cells = <0>; 137*c9ccf3a3SEmmanuel Vadot clocks = <&clock CLK_I2C_HDMI>; 138*c9ccf3a3SEmmanuel Vadot clock-names = "i2c"; 139*c9ccf3a3SEmmanuel Vadot 140*c9ccf3a3SEmmanuel Vadot samsung,i2c-sda-delay = <100>; 141*c9ccf3a3SEmmanuel Vadot samsung,i2c-max-bus-freq = <66000>; 142*c9ccf3a3SEmmanuel Vadot 143*c9ccf3a3SEmmanuel Vadot phy-i2c@38 { 144*c9ccf3a3SEmmanuel Vadot compatible = "samsung,exynos4212-hdmiphy"; 145*c9ccf3a3SEmmanuel Vadot reg = <0x38>; 146*c9ccf3a3SEmmanuel Vadot }; 147*c9ccf3a3SEmmanuel Vadot }; 148*c9ccf3a3SEmmanuel Vadot 149*c9ccf3a3SEmmanuel Vadot i2c@121d0000 { 150*c9ccf3a3SEmmanuel Vadot compatible = "samsung,exynos5-sata-phy-i2c"; 151*c9ccf3a3SEmmanuel Vadot reg = <0x121D0000 0x100>; 152*c9ccf3a3SEmmanuel Vadot #address-cells = <1>; 153*c9ccf3a3SEmmanuel Vadot #size-cells = <0>; 154*c9ccf3a3SEmmanuel Vadot clocks = <&clock CLK_SATA_PHYI2C>; 155*c9ccf3a3SEmmanuel Vadot clock-names = "i2c"; 156*c9ccf3a3SEmmanuel Vadot 157*c9ccf3a3SEmmanuel Vadot samsung,i2c-sda-delay = <100>; 158*c9ccf3a3SEmmanuel Vadot samsung,i2c-max-bus-freq = <40000>; 159*c9ccf3a3SEmmanuel Vadot 160*c9ccf3a3SEmmanuel Vadot phy-i2c@38 { 161*c9ccf3a3SEmmanuel Vadot compatible = "samsung,exynos-sataphy-i2c"; 162*c9ccf3a3SEmmanuel Vadot reg = <0x38>; 163*c9ccf3a3SEmmanuel Vadot }; 164*c9ccf3a3SEmmanuel Vadot }; 165