1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 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 I2C 8 9description: The Nomadik I2C host controller began its life in the ST 10 Microelectronics STn8800 SoC, and was then inherited into STn8810 and 11 STn8815. It was part of the prototype STn8500 which then became ST-Ericsson 12 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 nodes 18select: 19 properties: 20 compatible: 21 contains: 22 enum: 23 - st,nomadik-i2c 24 - mobileye,eyeq5-i2c 25 required: 26 - compatible 27 28properties: 29 compatible: 30 oneOf: 31 - items: 32 - const: st,nomadik-i2c 33 - const: arm,primecell 34 - items: 35 - const: stericsson,db8500-i2c 36 - const: st,nomadik-i2c 37 - const: arm,primecell 38 - items: 39 - const: mobileye,eyeq5-i2c 40 - const: arm,primecell 41 42 reg: 43 maxItems: 1 44 45 interrupts: 46 maxItems: 1 47 48 clocks: 49 maxItems: 2 50 51 clock-names: 52 oneOf: 53 # Clock name in STn8815 54 - items: 55 - const: mclk 56 - const: apb_pclk 57 # Clock name in DB8500 or EyeQ5 58 - items: 59 - const: i2cclk 60 - const: apb_pclk 61 62 power-domains: 63 maxItems: 1 64 65 resets: 66 maxItems: 1 67 68 clock-frequency: 69 minimum: 1 70 maximum: 400000 71 72 mobileye,olb: 73 $ref: /schemas/types.yaml#/definitions/phandle-array 74 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 I2C 80 controller index. 81 82required: 83 - compatible 84 - reg 85 - interrupts 86 - clocks 87 - clock-names 88 89unevaluatedProperties: false 90 91allOf: 92 - $ref: /schemas/i2c/i2c-controller.yaml# 93 - if: 94 properties: 95 compatible: 96 contains: 97 const: mobileye,eyeq5-i2c 98 then: 99 required: 100 - mobileye,olb 101 else: 102 properties: 103 mobileye,olb: false 104 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