1 # SPDX-License-Identifier: (GPL-2.0-only OR BS 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/i2c/i2c-exy 4 $id: http://devicetree.org/schemas/i2c/i2c-exynos5.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: Samsung's High Speed I2C controller 7 title: Samsung's High Speed I2C controller 8 8 9 maintainers: 9 maintainers: 10 - Krzysztof Kozlowski <krzk@kernel.org> 10 - Krzysztof Kozlowski <krzk@kernel.org> 11 11 12 description: | 12 description: | 13 The Samsung's High Speed I2C controller is u 13 The Samsung's High Speed I2C controller is used to interface with I2C devices 14 at various speeds ranging from 100kHz to 3.4 14 at various speeds ranging from 100kHz to 3.4MHz. 15 15 16 In case the HSI2C controller is encapsulated 16 In case the HSI2C controller is encapsulated within USI block (it's the case 17 e.g. for Exynos850 and Exynos Auto V9 SoCs), 17 e.g. for Exynos850 and Exynos Auto V9 SoCs), it might be also necessary to 18 define USI node in device tree file, choosin 18 define USI node in device tree file, choosing "i2c" configuration. Please see 19 Documentation/devicetree/bindings/soc/samsun 19 Documentation/devicetree/bindings/soc/samsung/exynos-usi.yaml for details. 20 20 21 properties: 21 properties: 22 compatible: 22 compatible: 23 oneOf: 23 oneOf: 24 - enum: 24 - enum: 25 - samsung,exynos5250-hsi2c # Exyn 25 - samsung,exynos5250-hsi2c # Exynos5250 and Exynos5420 26 - samsung,exynos5260-hsi2c # Exyn 26 - samsung,exynos5260-hsi2c # Exynos5260 27 - samsung,exynos7-hsi2c # Exyn 27 - samsung,exynos7-hsi2c # Exynos7 28 - samsung,exynosautov9-hsi2c 28 - samsung,exynosautov9-hsi2c 29 - items: 29 - items: 30 - enum: 30 - enum: 31 - samsung,exynos5433-hsi2c 31 - samsung,exynos5433-hsi2c 32 - tesla,fsd-hsi2c 32 - tesla,fsd-hsi2c 33 - const: samsung,exynos7-hsi2c 33 - const: samsung,exynos7-hsi2c 34 - items: 34 - items: 35 - enum: 35 - enum: 36 - google,gs101-hsi2c 36 - google,gs101-hsi2c 37 - samsung,exynos850-hsi2c 37 - samsung,exynos850-hsi2c 38 - const: samsung,exynosautov9-hsi2c 38 - const: samsung,exynosautov9-hsi2c 39 - const: samsung,exynos5-hsi2c # Exyn 39 - const: samsung,exynos5-hsi2c # Exynos5250 and Exynos5420 40 deprecated: true 40 deprecated: true 41 41 42 reg: 42 reg: 43 maxItems: 1 43 maxItems: 1 44 44 45 interrupts: 45 interrupts: 46 maxItems: 1 46 maxItems: 1 47 47 48 clock-frequency: 48 clock-frequency: 49 default: 100000 49 default: 100000 50 description: 50 description: 51 Desired operating frequency in Hz of the 51 Desired operating frequency in Hz of the bus. 52 52 53 If not specified, the bus operates in fa 53 If not specified, the bus operates in fast-speed mode at 100kHz. 54 54 55 If specified, the bus operates in high-s 55 If specified, the bus operates in high-speed mode only if the 56 clock-frequency is >= 1MHz. 56 clock-frequency is >= 1MHz. 57 57 58 clocks: 58 clocks: 59 minItems: 1 59 minItems: 1 60 items: 60 items: 61 - description: I2C operating clock 61 - description: I2C operating clock 62 - description: Bus clock (APB) 62 - description: Bus clock (APB) 63 63 64 clock-names: 64 clock-names: 65 minItems: 1 65 minItems: 1 66 items: 66 items: 67 - const: hsi2c 67 - const: hsi2c 68 - const: hsi2c_pclk 68 - const: hsi2c_pclk 69 69 70 required: 70 required: 71 - compatible 71 - compatible 72 - reg 72 - reg 73 - interrupts 73 - interrupts 74 - clocks 74 - clocks 75 75 76 allOf: 76 allOf: 77 - $ref: /schemas/i2c/i2c-controller.yaml# 77 - $ref: /schemas/i2c/i2c-controller.yaml# 78 - if: 78 - if: 79 properties: 79 properties: 80 compatible: 80 compatible: 81 contains: 81 contains: 82 enum: 82 enum: 83 - samsung,exynosautov9-hsi2c 83 - samsung,exynosautov9-hsi2c 84 84 85 then: 85 then: 86 properties: 86 properties: 87 clocks: 87 clocks: 88 minItems: 2 88 minItems: 2 89 89 90 clock-names: 90 clock-names: 91 minItems: 2 91 minItems: 2 92 92 93 required: 93 required: 94 - clock-names 94 - clock-names 95 95 96 else: 96 else: 97 properties: 97 properties: 98 clocks: 98 clocks: 99 maxItems: 1 99 maxItems: 1 100 100 101 unevaluatedProperties: false 101 unevaluatedProperties: false 102 102 103 examples: 103 examples: 104 - | 104 - | 105 #include <dt-bindings/clock/exynos5420.h> 105 #include <dt-bindings/clock/exynos5420.h> 106 #include <dt-bindings/interrupt-controller 106 #include <dt-bindings/interrupt-controller/arm-gic.h> 107 #include <dt-bindings/interrupt-controller 107 #include <dt-bindings/interrupt-controller/irq.h> 108 108 109 hsi2c_8: i2c@12e00000 { 109 hsi2c_8: i2c@12e00000 { 110 compatible = "samsung,exynos5250-hsi2c 110 compatible = "samsung,exynos5250-hsi2c"; 111 reg = <0x12e00000 0x1000>; 111 reg = <0x12e00000 0x1000>; 112 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVE 112 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 113 #address-cells = <1>; 113 #address-cells = <1>; 114 #size-cells = <0>; 114 #size-cells = <0>; 115 clock-frequency = <100000>; 115 clock-frequency = <100000>; 116 clocks = <&clock CLK_USI4>; 116 clocks = <&clock CLK_USI4>; 117 clock-names = "hsi2c"; 117 clock-names = "hsi2c"; 118 118 119 pmic@66 { 119 pmic@66 { 120 /* compatible = "samsung,s2mps11-p 120 /* compatible = "samsung,s2mps11-pmic"; */ 121 reg = <0x66>; 121 reg = <0x66>; 122 }; 122 }; 123 }; 123 }; 124 124 125 - | 125 - | 126 #include <dt-bindings/clock/exynos850.h> 126 #include <dt-bindings/clock/exynos850.h> 127 #include <dt-bindings/interrupt-controller 127 #include <dt-bindings/interrupt-controller/arm-gic.h> 128 128 129 hsi2c_2: i2c@138c0000 { 129 hsi2c_2: i2c@138c0000 { 130 compatible = "samsung,exynosautov9-hsi 130 compatible = "samsung,exynosautov9-hsi2c"; 131 reg = <0x138c0000 0xc0>; 131 reg = <0x138c0000 0xc0>; 132 interrupts = <GIC_SPI 195 IRQ_TYPE_LEV 132 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 133 #address-cells = <1>; 133 #address-cells = <1>; 134 #size-cells = <0>; 134 #size-cells = <0>; 135 clocks = <&cmu_peri CLK_GOUT_HSI2C2_IP 135 clocks = <&cmu_peri CLK_GOUT_HSI2C2_IPCLK>, 136 <&cmu_peri CLK_GOUT_HSI2C2_PC 136 <&cmu_peri CLK_GOUT_HSI2C2_PCLK>; 137 clock-names = "hsi2c", "hsi2c_pclk"; 137 clock-names = "hsi2c", "hsi2c_pclk"; 138 138 139 pmic@66 { 139 pmic@66 { 140 /* compatible = "samsung,s2mps11-p 140 /* compatible = "samsung,s2mps11-pmic"; */ 141 reg = <0x66>; 141 reg = <0x66>; 142 }; 142 }; 143 }; 143 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.