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