// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* * NXP S32G2 SoC family * * Copyright (c) 2021 SUSE LLC * Copyright 2017-2021, 2024 NXP */ #include / { compatible = "nxp,s32g2"; interrupt-parent = <&gic>; #address-cells = <2>; #size-cells = <2>; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; scmi_buf: shm@d0000000 { compatible = "arm,scmi-shmem"; reg = <0x0 0xd0000000 0x0 0x80>; no-map; }; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x0>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; }; cpu1: cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x1>; enable-method = "psci"; next-level-cache = <&cluster0_l2>; }; cpu2: cpu@100 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x100>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; }; cpu3: cpu@101 { device_type = "cpu"; compatible = "arm,cortex-a53"; reg = <0x101>; enable-method = "psci"; next-level-cache = <&cluster1_l2>; }; cluster0_l2: l2-cache0 { compatible = "cache"; cache-level = <2>; cache-unified; }; cluster1_l2: l2-cache1 { compatible = "cache"; cache-level = <2>; cache-unified; }; }; pmu { compatible = "arm,cortex-a53-pmu"; interrupts = ; }; timer { compatible = "arm,armv8-timer"; interrupts = , , , ; }; firmware { scmi { compatible = "arm,scmi-smc"; arm,smc-id = <0xc20000fe>; #address-cells = <1>; #size-cells = <0>; shmem = <&scmi_buf>; clks: protocol@14 { reg = <0x14>; #clock-cells = <1>; }; }; psci { compatible = "arm,psci-1.0"; method = "smc"; }; }; soc@0 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0 0 0 0x80000000>; pinctrl: pinctrl@4009c240 { compatible = "nxp,s32g2-siul2-pinctrl"; /* MSCR0-MSCR101 registers on siul2_0 */ reg = <0x4009c240 0x198>, /* MSCR112-MSCR122 registers on siul2_1 */ <0x44010400 0x2c>, /* MSCR144-MSCR190 registers on siul2_1 */ <0x44010480 0xbc>, /* IMCR0-IMCR83 registers on siul2_0 */ <0x4009ca40 0x150>, /* IMCR119-IMCR397 registers on siul2_1 */ <0x44010c1c 0x45c>, /* IMCR430-IMCR495 registers on siul2_1 */ <0x440110f8 0x108>; jtag_pins: jtag-pins { jtag-grp0 { pinmux = <0x0>; input-enable; bias-pull-up; slew-rate = <166>; }; jtag-grp1 { pinmux = <0x11>; slew-rate = <166>; }; jtag-grp2 { pinmux = <0x40>; input-enable; bias-pull-down; slew-rate = <166>; }; jtag-grp3 { pinmux = <0x23c0>, <0x23d0>, <0x2320>; }; jtag-grp4 { pinmux = <0x51>; input-enable; bias-pull-up; slew-rate = <166>; }; }; pinctrl_usdhc0: usdhc0grp-pins { usdhc0-grp0 { pinmux = <0x2e1>, <0x381>; output-enable; bias-pull-down; slew-rate = <150>; }; usdhc0-grp1 { pinmux = <0x2f1>, <0x301>, <0x311>, <0x321>, <0x331>, <0x341>, <0x351>, <0x361>, <0x371>; output-enable; input-enable; bias-pull-up; slew-rate = <150>; }; usdhc0-grp2 { pinmux = <0x391>; output-enable; slew-rate = <150>; }; usdhc0-grp3 { pinmux = <0x3a0>; input-enable; slew-rate = <150>; }; usdhc0-grp4 { pinmux = <0x2032>, <0x2042>, <0x2052>, <0x2062>, <0x2072>, <0x2082>, <0x2092>, <0x20a2>, <0x20b2>, <0x20c2>; }; }; pinctrl_usdhc0_100mhz: usdhc0-100mhzgrp-pins { usdhc0-100mhz-grp0 { pinmux = <0x2e1>, <0x381>; output-enable; bias-pull-down; slew-rate = <150>; }; usdhc0-100mhz-grp1 { pinmux = <0x2f1>, <0x301>, <0x311>, <0x321>, <0x331>, <0x341>, <0x351>, <0x361>, <0x371>; output-enable; input-enable; bias-pull-up; slew-rate = <150>; }; usdhc0-100mhz-grp2 { pinmux = <0x391>; output-enable; slew-rate = <150>; }; usdhc0-100mhz-grp3 { pinmux = <0x3a0>; input-enable; slew-rate = <150>; }; usdhc0-100mhz-grp4 { pinmux = <0x2032>, <0x2042>, <0x2052>, <0x2062>, <0x2072>, <0x2082>, <0x2092>, <0x20a2>, <0x20b2>, <0x20c2>; }; }; pinctrl_usdhc0_200mhz: usdhc0-200mhzgrp-pins { usdhc0-200mhz-grp0 { pinmux = <0x2e1>, <0x381>; output-enable; bias-pull-down; slew-rate = <208>; }; usdhc0-200mhz-grp1 { pinmux = <0x2f1>, <0x301>, <0x311>, <0x321>, <0x331>, <0x341>, <0x351>, <0x361>, <0x371>; output-enable; input-enable; bias-pull-up; slew-rate = <208>; }; usdhc0-200mhz-grp2 { pinmux = <0x391>; output-enable; slew-rate = <208>; }; usdhc0-200mhz-grp3 { pinmux = <0x3a0>; input-enable; slew-rate = <208>; }; usdhc0-200mhz-grp4 { pinmux = <0x2032>, <0x2042>, <0x2052>, <0x2062>, <0x2072>, <0x2082>, <0x2092>, <0x20a2>, <0x20b2>, <0x20c2>; }; }; }; uart0: serial@401c8000 { compatible = "nxp,s32g2-linflexuart", "fsl,s32v234-linflexuart"; reg = <0x401c8000 0x3000>; interrupts = ; status = "disabled"; }; uart1: serial@401cc000 { compatible = "nxp,s32g2-linflexuart", "fsl,s32v234-linflexuart"; reg = <0x401cc000 0x3000>; interrupts = ; status = "disabled"; }; uart2: serial@402bc000 { compatible = "nxp,s32g2-linflexuart", "fsl,s32v234-linflexuart"; reg = <0x402bc000 0x3000>; interrupts = ; status = "disabled"; }; usdhc0: mmc@402f0000 { compatible = "nxp,s32g2-usdhc"; reg = <0x402f0000 0x1000>; interrupts = ; clocks = <&clks 32>, <&clks 31>, <&clks 33>; clock-names = "ipg", "ahb", "per"; bus-width = <8>; status = "disabled"; }; gic: interrupt-controller@50800000 { compatible = "arm,gic-v3"; reg = <0x50800000 0x10000>, <0x50880000 0x80000>, <0x50400000 0x2000>, <0x50410000 0x2000>, <0x50420000 0x2000>; interrupts = ; interrupt-controller; #interrupt-cells = <3>; }; }; };