0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/i2c/st,nomadik-i2c.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: ST Microelectronics Nomadik I2C Bindings
0008
0009 description: The Nomadik I2C host controller began its life in the ST
0010 Microelectronics STn8800 SoC, and was then inherited into STn8810 and
0011 STn8815. It was part of the prototype STn8500 which then became ST-Ericsson
0012 DB8500 after the merge of these two companies wireless divisions.
0013
0014 maintainers:
0015 - Linus Walleij <linus.walleij@linaro.org>
0016
0017 allOf:
0018 - $ref: /schemas/i2c/i2c-controller.yaml#
0019
0020 # Need a custom select here or 'arm,primecell' will match on lots of nodes
0021 select:
0022 properties:
0023 compatible:
0024 contains:
0025 enum:
0026 - st,nomadik-i2c
0027 required:
0028 - compatible
0029
0030 properties:
0031 compatible:
0032 oneOf:
0033 # The variant found in STn8815
0034 - items:
0035 - const: st,nomadik-i2c
0036 - const: arm,primecell
0037 # The variant found in DB8500
0038 - items:
0039 - const: stericsson,db8500-i2c
0040 - const: st,nomadik-i2c
0041 - const: arm,primecell
0042
0043 reg:
0044 maxItems: 1
0045
0046 interrupts:
0047 maxItems: 1
0048
0049 clocks:
0050 maxItems: 2
0051
0052 clock-names:
0053 oneOf:
0054 # Clock name in STn8815
0055 - items:
0056 - const: mclk
0057 - const: apb_pclk
0058 # Clock name in DB8500
0059 - items:
0060 - const: i2cclk
0061 - const: apb_pclk
0062
0063 power-domains:
0064 maxItems: 1
0065
0066 resets:
0067 maxItems: 1
0068
0069 clock-frequency:
0070 minimum: 1
0071 maximum: 400000
0072
0073 required:
0074 - compatible
0075 - reg
0076 - interrupts
0077 - clocks
0078 - clock-names
0079
0080 unevaluatedProperties: false
0081
0082 examples:
0083 - |
0084 #include <dt-bindings/interrupt-controller/irq.h>
0085 #include <dt-bindings/interrupt-controller/arm-gic.h>
0086 #include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
0087 #include <dt-bindings/arm/ux500_pm_domains.h>
0088 i2c@80004000 {
0089 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
0090 reg = <0x80004000 0x1000>;
0091 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
0092
0093 #address-cells = <1>;
0094 #size-cells = <0>;
0095
0096 clock-frequency = <400000>;
0097 clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
0098 clock-names = "i2cclk", "apb_pclk";
0099 power-domains = <&pm_domains DOMAIN_VAPE>;
0100 resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
0101 };
0102
0103 i2c@101f8000 {
0104 compatible = "st,nomadik-i2c", "arm,primecell";
0105 reg = <0x101f8000 0x1000>;
0106 interrupt-parent = <&vica>;
0107 interrupts = <20>;
0108 clock-frequency = <100000>;
0109 #address-cells = <1>;
0110 #size-cells = <0>;
0111 clocks = <&i2c0clk>, <&pclki2c0>;
0112 clock-names = "mclk", "apb_pclk";
0113 };
0114
0115 ...