xref: /openbmc/linux/Documentation/devicetree/bindings/i2c/st,nomadik-i2c.yaml (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
157758458SLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
257758458SLinus Walleij%YAML 1.2
357758458SLinus Walleij---
457758458SLinus Walleij$id: http://devicetree.org/schemas/i2c/st,nomadik-i2c.yaml#
557758458SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
657758458SLinus Walleij
7*84e85359SKrzysztof Kozlowskititle: ST Microelectronics Nomadik I2C
857758458SLinus Walleij
957758458SLinus Walleijdescription: The Nomadik I2C host controller began its life in the ST
1057758458SLinus Walleij  Microelectronics STn8800 SoC, and was then inherited into STn8810 and
1157758458SLinus Walleij  STn8815. It was part of the prototype STn8500 which then became ST-Ericsson
1257758458SLinus Walleij  DB8500 after the merge of these two companies wireless divisions.
1357758458SLinus Walleij
1457758458SLinus Walleijmaintainers:
1557758458SLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
1657758458SLinus Walleij
1757758458SLinus WalleijallOf:
1857758458SLinus Walleij  - $ref: /schemas/i2c/i2c-controller.yaml#
1957758458SLinus Walleij
2057758458SLinus Walleij# Need a custom select here or 'arm,primecell' will match on lots of nodes
2157758458SLinus Walleijselect:
2257758458SLinus Walleij  properties:
2357758458SLinus Walleij    compatible:
2457758458SLinus Walleij      contains:
2557758458SLinus Walleij        enum:
2657758458SLinus Walleij          - st,nomadik-i2c
2757758458SLinus Walleij  required:
2857758458SLinus Walleij    - compatible
2957758458SLinus Walleij
3057758458SLinus Walleijproperties:
3157758458SLinus Walleij  compatible:
3257758458SLinus Walleij    oneOf:
3357758458SLinus Walleij      # The variant found in STn8815
3457758458SLinus Walleij      - items:
3557758458SLinus Walleij          - const: st,nomadik-i2c
3657758458SLinus Walleij          - const: arm,primecell
3757758458SLinus Walleij      # The variant found in DB8500
3857758458SLinus Walleij      - items:
3957758458SLinus Walleij          - const: stericsson,db8500-i2c
4057758458SLinus Walleij          - const: st,nomadik-i2c
4157758458SLinus Walleij          - const: arm,primecell
4257758458SLinus Walleij
4357758458SLinus Walleij  reg:
4457758458SLinus Walleij    maxItems: 1
4557758458SLinus Walleij
4657758458SLinus Walleij  interrupts:
4757758458SLinus Walleij    maxItems: 1
4857758458SLinus Walleij
4957758458SLinus Walleij  clocks:
5057758458SLinus Walleij    maxItems: 2
5157758458SLinus Walleij
5257758458SLinus Walleij  clock-names:
5357758458SLinus Walleij    oneOf:
5457758458SLinus Walleij      # Clock name in STn8815
5557758458SLinus Walleij      - items:
5657758458SLinus Walleij          - const: mclk
5757758458SLinus Walleij          - const: apb_pclk
5857758458SLinus Walleij      # Clock name in DB8500
5957758458SLinus Walleij      - items:
6057758458SLinus Walleij          - const: i2cclk
6157758458SLinus Walleij          - const: apb_pclk
6257758458SLinus Walleij
63faa60f18SLinus Walleij  power-domains:
64faa60f18SLinus Walleij    maxItems: 1
65faa60f18SLinus Walleij
6657758458SLinus Walleij  resets:
6757758458SLinus Walleij    maxItems: 1
6857758458SLinus Walleij
6957758458SLinus Walleij  clock-frequency:
7057758458SLinus Walleij    minimum: 1
7157758458SLinus Walleij    maximum: 400000
7257758458SLinus Walleij
7357758458SLinus Walleijrequired:
7457758458SLinus Walleij  - compatible
7557758458SLinus Walleij  - reg
7657758458SLinus Walleij  - interrupts
7757758458SLinus Walleij  - clocks
7857758458SLinus Walleij  - clock-names
7957758458SLinus Walleij
8057758458SLinus WalleijunevaluatedProperties: false
8157758458SLinus Walleij
8257758458SLinus Walleijexamples:
8357758458SLinus Walleij  - |
8457758458SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
8557758458SLinus Walleij    #include <dt-bindings/interrupt-controller/arm-gic.h>
8657758458SLinus Walleij    #include <dt-bindings/reset/stericsson,db8500-prcc-reset.h>
8757758458SLinus Walleij    #include <dt-bindings/arm/ux500_pm_domains.h>
8857758458SLinus Walleij    i2c@80004000 {
8957758458SLinus Walleij      compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
9057758458SLinus Walleij      reg = <0x80004000 0x1000>;
9157758458SLinus Walleij      interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
9257758458SLinus Walleij
9357758458SLinus Walleij      #address-cells = <1>;
9457758458SLinus Walleij      #size-cells = <0>;
9557758458SLinus Walleij
9657758458SLinus Walleij      clock-frequency = <400000>;
9757758458SLinus Walleij      clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
9857758458SLinus Walleij      clock-names = "i2cclk", "apb_pclk";
9957758458SLinus Walleij      power-domains = <&pm_domains DOMAIN_VAPE>;
10057758458SLinus Walleij      resets = <&prcc_reset DB8500_PRCC_3 DB8500_PRCC_3_RESET_I2C0>;
10157758458SLinus Walleij    };
10257758458SLinus Walleij
10357758458SLinus Walleij    i2c@101f8000 {
10457758458SLinus Walleij      compatible = "st,nomadik-i2c", "arm,primecell";
10557758458SLinus Walleij      reg = <0x101f8000 0x1000>;
10657758458SLinus Walleij      interrupt-parent = <&vica>;
10757758458SLinus Walleij      interrupts = <20>;
10857758458SLinus Walleij      clock-frequency = <100000>;
10957758458SLinus Walleij      #address-cells = <1>;
11057758458SLinus Walleij      #size-cells = <0>;
11157758458SLinus Walleij      clocks = <&i2c0clk>, <&pclki2c0>;
11257758458SLinus Walleij      clock-names = "mclk", "apb_pclk";
11357758458SLinus Walleij    };
11457758458SLinus Walleij
11557758458SLinus Walleij...
116