i2c-exynos5.yaml 3.8 KB

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