Back to home page

OSCL-LXR

 
 

    


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 ...