153 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/i2c/st,nomadik-i2c.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: ST Microelectronics Nomadik I2C8 9description: The Nomadik I2C host controller began its life in the ST10 Microelectronics STn8800 SoC, and was then inherited into STn8810 and11 STn8815. It was part of the prototype STn8500 which then became ST-Ericsson12 DB8500 after the merge of these two companies wireless divisions.13 14maintainers:15 - Linus Walleij <linus.walleij@linaro.org>16 17# Need a custom select here or 'arm,primecell' will match on lots of nodes18select:19 properties:20 compatible:21 contains:22 enum:23 - st,nomadik-i2c24 - mobileye,eyeq5-i2c25 required:26 - compatible27 28properties:29 compatible:30 oneOf:31 - items:32 - const: st,nomadik-i2c33 - const: arm,primecell34 - items:35 - const: stericsson,db8500-i2c36 - const: st,nomadik-i2c37 - const: arm,primecell38 - items:39 - const: mobileye,eyeq5-i2c40 - const: arm,primecell41 42 reg:43 maxItems: 144 45 interrupts:46 maxItems: 147 48 clocks:49 maxItems: 250 51 clock-names:52 oneOf:53 # Clock name in STn881554 - items:55 - const: mclk56 - const: apb_pclk57 # Clock name in DB8500 or EyeQ558 - items:59 - const: i2cclk60 - const: apb_pclk61 62 power-domains:63 maxItems: 164 65 resets:66 maxItems: 167 68 clock-frequency:69 minimum: 170 maximum: 40000071 72 mobileye,olb:73 $ref: /schemas/types.yaml#/definitions/phandle-array74 items:75 - items:76 - description: Phandle to OLB system controller node.77 - description: Platform-wide controller ID (integer starting from zero).78 description:79 The phandle pointing to OLB system controller node, with the I2C80 controller index.81 82required:83 - compatible84 - reg85 - interrupts86 - clocks87 - clock-names88 89unevaluatedProperties: false90 91allOf:92 - $ref: /schemas/i2c/i2c-controller.yaml#93 - if:94 properties:95 compatible:96 contains:97 const: mobileye,eyeq5-i2c98 then:99 required:100 - mobileye,olb101 else:102 properties:103 mobileye,olb: false104 105examples:106 - |107 #include <dt-bindings/interrupt-controller/irq.h>108 #include <dt-bindings/interrupt-controller/arm-gic.h>109 #include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>110 #include <dt-bindings/arm/ux500_pm_domains.h>111 i2c@80004000 {112 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";113 reg = <0x80004000 0x1000>;114 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;115 116 #address-cells = <1>;117 #size-cells = <0>;118 119 clock-frequency = <400000>;120 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;121 clock-names = "i2cclk", "apb_pclk";122 power-domains = <&pm_domains DOMAIN_VAPE>;123 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;124 };125 126 i2c@101f8000 {127 compatible = "st,nomadik-i2c", "arm,primecell";128 reg = <0x101f8000 0x1000>;129 interrupt-parent = <&vica>;130 interrupts = <20>;131 clock-frequency = <100000>;132 #address-cells = <1>;133 #size-cells = <0>;134 clocks = <&i2c0clk>, <&pclki2c0>;135 clock-names = "mclk", "apb_pclk";136 };137 - |138 #include <dt-bindings/interrupt-controller/mips-gic.h>139 i2c@300000 {140 compatible = "mobileye,eyeq5-i2c", "arm,primecell";141 reg = <0x300000 0x1000>;142 interrupt-parent = <&gic>;143 interrupts = <GIC_SHARED 1 IRQ_TYPE_LEVEL_HIGH>;144 clock-frequency = <400000>;145 #address-cells = <1>;146 #size-cells = <0>;147 clocks = <&i2c_ser_clk>, <&i2c_clk>;148 clock-names = "i2cclk", "apb_pclk";149 mobileye,olb = <&olb 0>;150 };151 152...153