1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2b97ee269SEmmanuel Vadot%YAML 1.2 3b97ee269SEmmanuel Vadot--- 4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/firmware/fsl,scu.yaml# 5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6b97ee269SEmmanuel Vadot 7b97ee269SEmmanuel Vadottitle: NXP i.MX System Controller Firmware (SCFW) 8b97ee269SEmmanuel Vadot 9b97ee269SEmmanuel Vadotmaintainers: 10b97ee269SEmmanuel Vadot - Dong Aisheng <aisheng.dong@nxp.com> 11b97ee269SEmmanuel Vadot 12b97ee269SEmmanuel Vadotdescription: 13b97ee269SEmmanuel Vadot The System Controller Firmware (SCFW) is a low-level system function 14b97ee269SEmmanuel Vadot which runs on a dedicated Cortex-M core to provide power, clock, and 15b97ee269SEmmanuel Vadot resource management. It exists on some i.MX8 processors. e.g. i.MX8QM 16b97ee269SEmmanuel Vadot (QM, QP), and i.MX8QX (QXP, DX). 17b97ee269SEmmanuel Vadot The AP communicates with the SC using a multi-ported MU module found 18b97ee269SEmmanuel Vadot in the LSIO subsystem. The current definition of this MU module provides 19b97ee269SEmmanuel Vadot 5 remote AP connections to the SC to support up to 5 execution environments 20b97ee269SEmmanuel Vadot (TZ, HV, standard Linux, etc.). The SC side of this MU module interfaces 21b97ee269SEmmanuel Vadot with the LSIO DSC IP bus. The SC firmware will communicate with this MU 22b97ee269SEmmanuel Vadot using the MSI bus. 23b97ee269SEmmanuel Vadot 24b97ee269SEmmanuel Vadotproperties: 25b97ee269SEmmanuel Vadot compatible: 26b97ee269SEmmanuel Vadot const: fsl,imx-scu 27b97ee269SEmmanuel Vadot 28b97ee269SEmmanuel Vadot clock-controller: 29b97ee269SEmmanuel Vadot description: 30b97ee269SEmmanuel Vadot Clock controller node that provides the clocks controlled by the SCU 31b97ee269SEmmanuel Vadot $ref: /schemas/clock/fsl,scu-clk.yaml 32b97ee269SEmmanuel Vadot 33*7ef62cebSEmmanuel Vadot gpio: 34*7ef62cebSEmmanuel Vadot description: 35*7ef62cebSEmmanuel Vadot Control the GPIO PINs on SCU domain over the firmware APIs 36*7ef62cebSEmmanuel Vadot $ref: /schemas/gpio/fsl,imx8qxp-sc-gpio.yaml 37*7ef62cebSEmmanuel Vadot 38b97ee269SEmmanuel Vadot ocotp: 39b97ee269SEmmanuel Vadot description: 40b97ee269SEmmanuel Vadot OCOTP controller node provided by the SCU 41b97ee269SEmmanuel Vadot $ref: /schemas/nvmem/fsl,scu-ocotp.yaml 42b97ee269SEmmanuel Vadot 43b97ee269SEmmanuel Vadot keys: 44b97ee269SEmmanuel Vadot description: 45b97ee269SEmmanuel Vadot Keys provided by the SCU 46b97ee269SEmmanuel Vadot $ref: /schemas/input/fsl,scu-key.yaml 47b97ee269SEmmanuel Vadot 48b97ee269SEmmanuel Vadot mboxes: 49b97ee269SEmmanuel Vadot description: 50b97ee269SEmmanuel Vadot A list of phandles of TX MU channels followed by a list of phandles of 51b97ee269SEmmanuel Vadot RX MU channels. The list may include at the end one more optional MU 52b97ee269SEmmanuel Vadot channel for general interrupt. The number of expected tx and rx 53b97ee269SEmmanuel Vadot channels is 1 TX and 1 RX channels if MU instance is "fsl,imx8-mu-scu" 54b97ee269SEmmanuel Vadot compatible, 4 TX and 4 RX channels otherwise. All MU channels must be 55b97ee269SEmmanuel Vadot within the same MU instance. Cross instances are not allowed. The MU 56b97ee269SEmmanuel Vadot instance can only be one of LSIO MU0~M4 for imx8qxp and imx8qm. Users 57b97ee269SEmmanuel Vadot need to ensure that one is used that does not conflict with other 58b97ee269SEmmanuel Vadot execution environments such as ATF. 59b97ee269SEmmanuel Vadot oneOf: 60b97ee269SEmmanuel Vadot - items: 61b97ee269SEmmanuel Vadot - description: TX0 MU channel 62b97ee269SEmmanuel Vadot - description: RX0 MU channel 63b97ee269SEmmanuel Vadot - items: 64b97ee269SEmmanuel Vadot - description: TX0 MU channel 65b97ee269SEmmanuel Vadot - description: RX0 MU channel 66b97ee269SEmmanuel Vadot - description: optional MU channel for general interrupt 67b97ee269SEmmanuel Vadot - items: 68b97ee269SEmmanuel Vadot - description: TX0 MU channel 69b97ee269SEmmanuel Vadot - description: TX1 MU channel 70b97ee269SEmmanuel Vadot - description: TX2 MU channel 71b97ee269SEmmanuel Vadot - description: TX3 MU channel 72b97ee269SEmmanuel Vadot - description: RX0 MU channel 73b97ee269SEmmanuel Vadot - description: RX1 MU channel 74b97ee269SEmmanuel Vadot - description: RX2 MU channel 75b97ee269SEmmanuel Vadot - description: RX3 MU channel 76b97ee269SEmmanuel Vadot - items: 77b97ee269SEmmanuel Vadot - description: TX0 MU channel 78b97ee269SEmmanuel Vadot - description: TX1 MU channel 79b97ee269SEmmanuel Vadot - description: TX2 MU channel 80b97ee269SEmmanuel Vadot - description: TX3 MU channel 81b97ee269SEmmanuel Vadot - description: RX0 MU channel 82b97ee269SEmmanuel Vadot - description: RX1 MU channel 83b97ee269SEmmanuel Vadot - description: RX2 MU channel 84b97ee269SEmmanuel Vadot - description: RX3 MU channel 85b97ee269SEmmanuel Vadot - description: optional MU channel for general interrupt 86b97ee269SEmmanuel Vadot 87b97ee269SEmmanuel Vadot mbox-names: 88b97ee269SEmmanuel Vadot oneOf: 89b97ee269SEmmanuel Vadot - items: 90b97ee269SEmmanuel Vadot - const: tx0 91b97ee269SEmmanuel Vadot - const: rx0 92b97ee269SEmmanuel Vadot - items: 93b97ee269SEmmanuel Vadot - const: tx0 94b97ee269SEmmanuel Vadot - const: rx0 95b97ee269SEmmanuel Vadot - const: gip3 96b97ee269SEmmanuel Vadot - items: 97b97ee269SEmmanuel Vadot - const: tx0 98b97ee269SEmmanuel Vadot - const: tx1 99b97ee269SEmmanuel Vadot - const: tx2 100b97ee269SEmmanuel Vadot - const: tx3 101b97ee269SEmmanuel Vadot - const: rx0 102b97ee269SEmmanuel Vadot - const: rx1 103b97ee269SEmmanuel Vadot - const: rx2 104b97ee269SEmmanuel Vadot - const: rx3 105b97ee269SEmmanuel Vadot - items: 106b97ee269SEmmanuel Vadot - const: tx0 107b97ee269SEmmanuel Vadot - const: tx1 108b97ee269SEmmanuel Vadot - const: tx2 109b97ee269SEmmanuel Vadot - const: tx3 110b97ee269SEmmanuel Vadot - const: rx0 111b97ee269SEmmanuel Vadot - const: rx1 112b97ee269SEmmanuel Vadot - const: rx2 113b97ee269SEmmanuel Vadot - const: rx3 114b97ee269SEmmanuel Vadot - const: gip3 115b97ee269SEmmanuel Vadot 116b97ee269SEmmanuel Vadot pinctrl: 117b97ee269SEmmanuel Vadot description: 118b97ee269SEmmanuel Vadot Pin controller provided by the SCU 119b97ee269SEmmanuel Vadot $ref: /schemas/pinctrl/fsl,scu-pinctrl.yaml 120b97ee269SEmmanuel Vadot 121b97ee269SEmmanuel Vadot power-controller: 122b97ee269SEmmanuel Vadot description: 123b97ee269SEmmanuel Vadot Power domains controller node that provides the power domains 124b97ee269SEmmanuel Vadot controlled by the SCU 125b97ee269SEmmanuel Vadot $ref: /schemas/power/fsl,scu-pd.yaml 126b97ee269SEmmanuel Vadot 127b97ee269SEmmanuel Vadot rtc: 128b97ee269SEmmanuel Vadot description: 129b97ee269SEmmanuel Vadot RTC controller provided by the SCU 130b97ee269SEmmanuel Vadot $ref: /schemas/rtc/fsl,scu-rtc.yaml 131b97ee269SEmmanuel Vadot 132b97ee269SEmmanuel Vadot thermal-sensor: 133b97ee269SEmmanuel Vadot description: 134b97ee269SEmmanuel Vadot Thermal sensor provided by the SCU 135b97ee269SEmmanuel Vadot $ref: /schemas/thermal/fsl,scu-thermal.yaml 136b97ee269SEmmanuel Vadot 137b97ee269SEmmanuel Vadot watchdog: 138b97ee269SEmmanuel Vadot description: 139b97ee269SEmmanuel Vadot Watchdog controller provided by the SCU 140b97ee269SEmmanuel Vadot $ref: /schemas/watchdog/fsl,scu-wdt.yaml 141b97ee269SEmmanuel Vadot 142b97ee269SEmmanuel Vadotrequired: 143b97ee269SEmmanuel Vadot - compatible 144b97ee269SEmmanuel Vadot - mbox-names 145b97ee269SEmmanuel Vadot - mboxes 146b97ee269SEmmanuel Vadot 147b97ee269SEmmanuel VadotadditionalProperties: false 148b97ee269SEmmanuel Vadot 149b97ee269SEmmanuel Vadotexamples: 150b97ee269SEmmanuel Vadot - | 151b97ee269SEmmanuel Vadot #include <dt-bindings/firmware/imx/rsrc.h> 152b97ee269SEmmanuel Vadot #include <dt-bindings/input/input.h> 153b97ee269SEmmanuel Vadot #include <dt-bindings/pinctrl/pads-imx8qxp.h> 154b97ee269SEmmanuel Vadot 155b97ee269SEmmanuel Vadot firmware { 156b97ee269SEmmanuel Vadot system-controller { 157b97ee269SEmmanuel Vadot compatible = "fsl,imx-scu"; 158b97ee269SEmmanuel Vadot mbox-names = "tx0", "tx1", "tx2", "tx3", 159b97ee269SEmmanuel Vadot "rx0", "rx1", "rx2", "rx3", 160b97ee269SEmmanuel Vadot "gip3"; 161b97ee269SEmmanuel Vadot mboxes = <&lsio_mu1 0 0 &lsio_mu1 0 1 &lsio_mu1 0 2 &lsio_mu1 0 3 162b97ee269SEmmanuel Vadot &lsio_mu1 1 0 &lsio_mu1 1 1 &lsio_mu1 1 2 &lsio_mu1 1 3 163b97ee269SEmmanuel Vadot &lsio_mu1 3 3>; 164b97ee269SEmmanuel Vadot 165b97ee269SEmmanuel Vadot clock-controller { 166b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-clk", "fsl,scu-clk"; 167b97ee269SEmmanuel Vadot #clock-cells = <2>; 168b97ee269SEmmanuel Vadot }; 169b97ee269SEmmanuel Vadot 170b97ee269SEmmanuel Vadot pinctrl { 171b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-iomuxc"; 172b97ee269SEmmanuel Vadot 173b97ee269SEmmanuel Vadot pinctrl_lpuart0: lpuart0grp { 174b97ee269SEmmanuel Vadot fsl,pins = < 175b97ee269SEmmanuel Vadot IMX8QXP_UART0_RX_ADMA_UART0_RX 0x06000020 176b97ee269SEmmanuel Vadot IMX8QXP_UART0_TX_ADMA_UART0_TX 0x06000020 177b97ee269SEmmanuel Vadot >; 178b97ee269SEmmanuel Vadot }; 179b97ee269SEmmanuel Vadot }; 180b97ee269SEmmanuel Vadot 181b97ee269SEmmanuel Vadot ocotp { 182b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-scu-ocotp"; 183b97ee269SEmmanuel Vadot #address-cells = <1>; 184b97ee269SEmmanuel Vadot #size-cells = <1>; 185b97ee269SEmmanuel Vadot 186b97ee269SEmmanuel Vadot fec_mac0: mac@2c4 { 187b97ee269SEmmanuel Vadot reg = <0x2c4 6>; 188b97ee269SEmmanuel Vadot }; 189b97ee269SEmmanuel Vadot }; 190b97ee269SEmmanuel Vadot 191b97ee269SEmmanuel Vadot power-controller { 192b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-scu-pd", "fsl,scu-pd"; 193b97ee269SEmmanuel Vadot #power-domain-cells = <1>; 194b97ee269SEmmanuel Vadot }; 195b97ee269SEmmanuel Vadot 196b97ee269SEmmanuel Vadot rtc { 197b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-sc-rtc"; 198b97ee269SEmmanuel Vadot }; 199b97ee269SEmmanuel Vadot 200b97ee269SEmmanuel Vadot keys { 201b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-sc-key", "fsl,imx-sc-key"; 202b97ee269SEmmanuel Vadot linux,keycodes = <KEY_POWER>; 203b97ee269SEmmanuel Vadot }; 204b97ee269SEmmanuel Vadot 205b97ee269SEmmanuel Vadot watchdog { 206b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-sc-wdt", "fsl,imx-sc-wdt"; 207b97ee269SEmmanuel Vadot timeout-sec = <60>; 208b97ee269SEmmanuel Vadot }; 209b97ee269SEmmanuel Vadot 210b97ee269SEmmanuel Vadot thermal-sensor { 211b97ee269SEmmanuel Vadot compatible = "fsl,imx8qxp-sc-thermal", "fsl,imx-sc-thermal"; 212b97ee269SEmmanuel Vadot #thermal-sensor-cells = <1>; 213b97ee269SEmmanuel Vadot }; 214b97ee269SEmmanuel Vadot }; 215b97ee269SEmmanuel Vadot }; 216