15ae45114SSam Protsenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 25ae45114SSam Protsenko%YAML 1.2 35ae45114SSam Protsenko--- 45ae45114SSam Protsenko$id: http://devicetree.org/schemas/i2c/i2c-exynos5.yaml# 55ae45114SSam Protsenko$schema: http://devicetree.org/meta-schemas/core.yaml# 65ae45114SSam Protsenko 75ae45114SSam Protsenkotitle: Samsung's High Speed I2C controller 85ae45114SSam Protsenko 95ae45114SSam Protsenkomaintainers: 105ae45114SSam Protsenko - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 115ae45114SSam Protsenko 125ae45114SSam Protsenkodescription: | 135ae45114SSam Protsenko The Samsung's High Speed I2C controller is used to interface with I2C devices 145ae45114SSam Protsenko at various speeds ranging from 100kHz to 3.4MHz. 155ae45114SSam Protsenko 16bd5f985dSJaewon Kim In case the HSI2C controller is encapsulated within USI block (it's the case 17bd5f985dSJaewon Kim e.g. for Exynos850 and Exynos Auto V9 SoCs), it might be also necessary to 18bd5f985dSJaewon Kim define USI node in device tree file, choosing "i2c" configuration. Please see 19bd5f985dSJaewon Kim Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml for details. 20bd5f985dSJaewon Kim 215ae45114SSam Protsenkoproperties: 225ae45114SSam Protsenko compatible: 235ae45114SSam Protsenko oneOf: 245ae45114SSam Protsenko - enum: 255ae45114SSam Protsenko - samsung,exynos5250-hsi2c # Exynos5250 and Exynos5420 265ae45114SSam Protsenko - samsung,exynos5260-hsi2c # Exynos5260 275ae45114SSam Protsenko - samsung,exynos7-hsi2c # Exynos7 28bd5f985dSJaewon Kim - samsung,exynosautov9-hsi2c # ExynosAutoV9 and Exynos850 295ae45114SSam Protsenko - const: samsung,exynos5-hsi2c # Exynos5250 and Exynos5420 305ae45114SSam Protsenko deprecated: true 315ae45114SSam Protsenko 325ae45114SSam Protsenko reg: 335ae45114SSam Protsenko maxItems: 1 345ae45114SSam Protsenko 355ae45114SSam Protsenko interrupts: 365ae45114SSam Protsenko maxItems: 1 375ae45114SSam Protsenko 385ae45114SSam Protsenko clock-frequency: 395ae45114SSam Protsenko default: 100000 405ae45114SSam Protsenko description: 415ae45114SSam Protsenko Desired operating frequency in Hz of the bus. 425ae45114SSam Protsenko 435ae45114SSam Protsenko If not specified, the bus operates in fast-speed mode at 100kHz. 445ae45114SSam Protsenko 455ae45114SSam Protsenko If specified, the bus operates in high-speed mode only if the 465ae45114SSam Protsenko clock-frequency is >= 1MHz. 475ae45114SSam Protsenko 485ae45114SSam Protsenko clocks: 49*ea8491a2SSam Protsenko minItems: 1 50*ea8491a2SSam Protsenko items: 51*ea8491a2SSam Protsenko - description: I2C operating clock 52*ea8491a2SSam Protsenko - description: Bus clock (APB) 535ae45114SSam Protsenko 545ae45114SSam Protsenko clock-names: 55*ea8491a2SSam Protsenko minItems: 1 56*ea8491a2SSam Protsenko items: 57*ea8491a2SSam Protsenko - const: hsi2c 58*ea8491a2SSam Protsenko - const: hsi2c_pclk 595ae45114SSam Protsenko 605ae45114SSam Protsenkorequired: 615ae45114SSam Protsenko - compatible 625ae45114SSam Protsenko - reg 635ae45114SSam Protsenko - interrupts 645ae45114SSam Protsenko - clocks 655ae45114SSam Protsenko 66*ea8491a2SSam ProtsenkoallOf: 67*ea8491a2SSam Protsenko - $ref: /schemas/i2c/i2c-controller.yaml# 68*ea8491a2SSam Protsenko - if: 69*ea8491a2SSam Protsenko properties: 70*ea8491a2SSam Protsenko compatible: 71*ea8491a2SSam Protsenko contains: 72*ea8491a2SSam Protsenko enum: 73*ea8491a2SSam Protsenko - samsung,exynosautov9-hsi2c 74*ea8491a2SSam Protsenko 75*ea8491a2SSam Protsenko then: 76*ea8491a2SSam Protsenko properties: 77*ea8491a2SSam Protsenko clocks: 78*ea8491a2SSam Protsenko minItems: 2 79*ea8491a2SSam Protsenko 80*ea8491a2SSam Protsenko clock-names: 81*ea8491a2SSam Protsenko minItems: 2 82*ea8491a2SSam Protsenko 83*ea8491a2SSam Protsenko required: 84*ea8491a2SSam Protsenko - clock-names 85*ea8491a2SSam Protsenko 86*ea8491a2SSam Protsenko else: 87*ea8491a2SSam Protsenko properties: 88*ea8491a2SSam Protsenko clocks: 89*ea8491a2SSam Protsenko maxItems: 1 90*ea8491a2SSam Protsenko 915ae45114SSam ProtsenkounevaluatedProperties: false 925ae45114SSam Protsenko 935ae45114SSam Protsenkoexamples: 945ae45114SSam Protsenko - | 955ae45114SSam Protsenko #include <dt-bindings/clock/exynos5420.h> 965ae45114SSam Protsenko #include <dt-bindings/interrupt-controller/arm-gic.h> 975ae45114SSam Protsenko #include <dt-bindings/interrupt-controller/irq.h> 985ae45114SSam Protsenko 995ae45114SSam Protsenko hsi2c_8: i2c@12e00000 { 1005ae45114SSam Protsenko compatible = "samsung,exynos5250-hsi2c"; 1015ae45114SSam Protsenko reg = <0x12e00000 0x1000>; 1025ae45114SSam Protsenko interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 1035ae45114SSam Protsenko #address-cells = <1>; 1045ae45114SSam Protsenko #size-cells = <0>; 1055ae45114SSam Protsenko clock-frequency = <100000>; 1065ae45114SSam Protsenko clocks = <&clock CLK_USI4>; 1075ae45114SSam Protsenko clock-names = "hsi2c"; 1085ae45114SSam Protsenko 1095ae45114SSam Protsenko pmic@66 { 1105ae45114SSam Protsenko /* compatible = "samsung,s2mps11-pmic"; */ 1115ae45114SSam Protsenko reg = <0x66>; 1125ae45114SSam Protsenko }; 1135ae45114SSam Protsenko }; 114*ea8491a2SSam Protsenko 115*ea8491a2SSam Protsenko - | 116*ea8491a2SSam Protsenko #include <dt-bindings/clock/exynos850.h> 117*ea8491a2SSam Protsenko #include <dt-bindings/interrupt-controller/arm-gic.h> 118*ea8491a2SSam Protsenko 119*ea8491a2SSam Protsenko hsi2c_2: i2c@138c0000 { 120*ea8491a2SSam Protsenko compatible = "samsung,exynosautov9-hsi2c"; 121*ea8491a2SSam Protsenko reg = <0x138c0000 0xc0>; 122*ea8491a2SSam Protsenko interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 123*ea8491a2SSam Protsenko #address-cells = <1>; 124*ea8491a2SSam Protsenko #size-cells = <0>; 125*ea8491a2SSam Protsenko clocks = <&cmu_peri CLK_GOUT_HSI2C2_IPCLK>, 126*ea8491a2SSam Protsenko <&cmu_peri CLK_GOUT_HSI2C2_PCLK>; 127*ea8491a2SSam Protsenko clock-names = "hsi2c", "hsi2c_pclk"; 128*ea8491a2SSam Protsenko 129*ea8491a2SSam Protsenko pmic@66 { 130*ea8491a2SSam Protsenko /* compatible = "samsung,s2mps11-pmic"; */ 131*ea8491a2SSam Protsenko reg = <0x66>; 132*ea8491a2SSam Protsenko }; 133*ea8491a2SSam Protsenko }; 134