162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/arm/keystone/ti,sci.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: TI-SCI controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Nishanth Menon <nm@ti.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Texas Instrument's processors including those belonging to Keystone generation
1462306a36Sopenharmony_ci  of processors have separate hardware entity which is now responsible for the
1562306a36Sopenharmony_ci  management of the System on Chip (SoC) system. These include various system
1662306a36Sopenharmony_ci  level functions as well.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci  An example of such an SoC is K2G, which contains the system control hardware
1962306a36Sopenharmony_ci  block called Power Management Micro Controller (PMMC). This hardware block is
2062306a36Sopenharmony_ci  initialized early into boot process and provides services to Operating Systems
2162306a36Sopenharmony_ci  on multiple processors including ones running Linux.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  The TI-SCI node describes the Texas Instrument's System Controller entity node.
2662306a36Sopenharmony_ci  This parent node may optionally have additional children nodes which describe
2762306a36Sopenharmony_ci  specific functionality such as clocks, power domain, reset or additional
2862306a36Sopenharmony_ci  functionality as may be required for the SoC. This hierarchy also describes the
2962306a36Sopenharmony_ci  relationship between the TI-SCI parent node to the child node.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciproperties:
3262306a36Sopenharmony_ci  $nodename:
3362306a36Sopenharmony_ci    pattern: "^system-controller@[0-9a-f]+$"
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  compatible:
3662306a36Sopenharmony_ci    oneOf:
3762306a36Sopenharmony_ci      - description: System controller on TI 66AK2G SoC and other K3 SoCs
3862306a36Sopenharmony_ci        items:
3962306a36Sopenharmony_ci          - const: ti,k2g-sci
4062306a36Sopenharmony_ci      - description: System controller on TI AM654 SoC
4162306a36Sopenharmony_ci        items:
4262306a36Sopenharmony_ci          - const: ti,am654-sci
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  reg-names:
4562306a36Sopenharmony_ci    description: |
4662306a36Sopenharmony_ci      Specifies the debug messages memory mapped region that is optionally
4762306a36Sopenharmony_ci      made available from TI-SCI controller.
4862306a36Sopenharmony_ci    const: debug_messages
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  reg:
5162306a36Sopenharmony_ci    minItems: 1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  mbox-names:
5462306a36Sopenharmony_ci    description: |
5562306a36Sopenharmony_ci      Specifies the mailboxes used to communicate with TI-SCI Controller
5662306a36Sopenharmony_ci      made available from TI-SCI controller.
5762306a36Sopenharmony_ci    items:
5862306a36Sopenharmony_ci      - const: rx
5962306a36Sopenharmony_ci      - const: tx
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  mboxes:
6262306a36Sopenharmony_ci    minItems: 2
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  ti,system-reboot-controller:
6562306a36Sopenharmony_ci    description: Determines If system reboot can be triggered by SoC reboot
6662306a36Sopenharmony_ci    type: boolean
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci  ti,host-id:
6962306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7062306a36Sopenharmony_ci    description: |
7162306a36Sopenharmony_ci      Value corresponding to the host ID assigned by Firmware
7262306a36Sopenharmony_ci      for identification of host processing entities such as virtual machines.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci  power-controller:
7562306a36Sopenharmony_ci    type: object
7662306a36Sopenharmony_ci    $ref: /schemas/soc/ti/sci-pm-domain.yaml#
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci  clock-controller:
7962306a36Sopenharmony_ci    type: object
8062306a36Sopenharmony_ci    $ref: /schemas/clock/ti,sci-clk.yaml#
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci  reset-controller:
8362306a36Sopenharmony_ci    type: object
8462306a36Sopenharmony_ci    $ref: /schemas/reset/ti,sci-reset.yaml#
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_cirequired:
8762306a36Sopenharmony_ci  - compatible
8862306a36Sopenharmony_ci  - mbox-names
8962306a36Sopenharmony_ci  - mboxes
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciadditionalProperties: false
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciexamples:
9462306a36Sopenharmony_ci  - |
9562306a36Sopenharmony_ci    pmmc: system-controller@2921800 {
9662306a36Sopenharmony_ci      compatible = "ti,k2g-sci";
9762306a36Sopenharmony_ci      ti,system-reboot-controller;
9862306a36Sopenharmony_ci      mbox-names = "rx", "tx";
9962306a36Sopenharmony_ci      mboxes = <&msgmgr 5 2>,
10062306a36Sopenharmony_ci               <&msgmgr 0 0>;
10162306a36Sopenharmony_ci      reg-names = "debug_messages";
10262306a36Sopenharmony_ci      reg = <0x02921800 0x800>;
10362306a36Sopenharmony_ci    };
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci  - |
10662306a36Sopenharmony_ci    dmsc: system-controller@44083000 {
10762306a36Sopenharmony_ci      compatible = "ti,k2g-sci";
10862306a36Sopenharmony_ci      ti,host-id = <12>;
10962306a36Sopenharmony_ci      mbox-names = "rx", "tx";
11062306a36Sopenharmony_ci      mboxes = <&secure_proxy_main 11>,
11162306a36Sopenharmony_ci               <&secure_proxy_main 13>;
11262306a36Sopenharmony_ci      reg-names = "debug_messages";
11362306a36Sopenharmony_ci      reg = <0x44083000 0x1000>;
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci      k3_pds: power-controller {
11662306a36Sopenharmony_ci        compatible = "ti,sci-pm-domain";
11762306a36Sopenharmony_ci        #power-domain-cells = <2>;
11862306a36Sopenharmony_ci      };
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci      k3_clks: clock-controller {
12162306a36Sopenharmony_ci        compatible = "ti,k2g-sci-clk";
12262306a36Sopenharmony_ci        #clock-cells = <2>;
12362306a36Sopenharmony_ci      };
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci      k3_reset: reset-controller {
12662306a36Sopenharmony_ci        compatible = "ti,sci-reset";
12762306a36Sopenharmony_ci        #reset-cells = <2>;
12862306a36Sopenharmony_ci      };
12962306a36Sopenharmony_ci    };
130