1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2f126890aSEmmanuel Vadot/* 3f126890aSEmmanuel Vadot * Copyright (c) 2021 Amlogic, Inc. All rights reserved. 4f126890aSEmmanuel Vadot */ 5f126890aSEmmanuel Vadot 6f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 7f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 8f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 901950c46SEmmanuel Vadot#include <dt-bindings/reset/amlogic,c3-reset.h> 10*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/amlogic,c3-pll-clkc.h> 11*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/amlogic,c3-scmi-clkc.h> 12*b2d2a78aSEmmanuel Vadot#include <dt-bindings/clock/amlogic,c3-peripherals-clkc.h> 13*b2d2a78aSEmmanuel Vadot#include <dt-bindings/power/amlogic,c3-pwrc.h> 14*b2d2a78aSEmmanuel Vadot#include <dt-bindings/gpio/amlogic-c3-gpio.h> 15f126890aSEmmanuel Vadot 16f126890aSEmmanuel Vadot/ { 17f126890aSEmmanuel Vadot cpus { 18f126890aSEmmanuel Vadot #address-cells = <2>; 19f126890aSEmmanuel Vadot #size-cells = <0>; 20f126890aSEmmanuel Vadot 21f126890aSEmmanuel Vadot cpu0: cpu@0 { 22f126890aSEmmanuel Vadot device_type = "cpu"; 23f126890aSEmmanuel Vadot compatible = "arm,cortex-a35"; 24f126890aSEmmanuel Vadot reg = <0x0 0x0>; 25f126890aSEmmanuel Vadot enable-method = "psci"; 26f126890aSEmmanuel Vadot }; 27f126890aSEmmanuel Vadot 28f126890aSEmmanuel Vadot cpu1: cpu@1 { 29f126890aSEmmanuel Vadot device_type = "cpu"; 30f126890aSEmmanuel Vadot compatible = "arm,cortex-a35"; 31f126890aSEmmanuel Vadot reg = <0x0 0x1>; 32f126890aSEmmanuel Vadot enable-method = "psci"; 33f126890aSEmmanuel Vadot }; 34f126890aSEmmanuel Vadot }; 35f126890aSEmmanuel Vadot 36f126890aSEmmanuel Vadot timer { 37f126890aSEmmanuel Vadot compatible = "arm,armv8-timer"; 38f126890aSEmmanuel Vadot interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 39f126890aSEmmanuel Vadot <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 40f126890aSEmmanuel Vadot <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 41f126890aSEmmanuel Vadot <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 42f126890aSEmmanuel Vadot }; 43f126890aSEmmanuel Vadot 44f126890aSEmmanuel Vadot psci { 45f126890aSEmmanuel Vadot compatible = "arm,psci-1.0"; 46f126890aSEmmanuel Vadot method = "smc"; 47f126890aSEmmanuel Vadot }; 48f126890aSEmmanuel Vadot 49f126890aSEmmanuel Vadot xtal: xtal-clk { 50f126890aSEmmanuel Vadot compatible = "fixed-clock"; 51f126890aSEmmanuel Vadot clock-frequency = <24000000>; 52f126890aSEmmanuel Vadot clock-output-names = "xtal"; 53f126890aSEmmanuel Vadot #clock-cells = <0>; 54f126890aSEmmanuel Vadot }; 55f126890aSEmmanuel Vadot 56aa1a8ff2SEmmanuel Vadot sm: secure-monitor { 57aa1a8ff2SEmmanuel Vadot compatible = "amlogic,meson-gxbb-sm"; 58aa1a8ff2SEmmanuel Vadot 59aa1a8ff2SEmmanuel Vadot pwrc: power-controller { 60aa1a8ff2SEmmanuel Vadot compatible = "amlogic,c3-pwrc"; 61aa1a8ff2SEmmanuel Vadot #power-domain-cells = <1>; 62aa1a8ff2SEmmanuel Vadot }; 63aa1a8ff2SEmmanuel Vadot }; 64aa1a8ff2SEmmanuel Vadot 65*b2d2a78aSEmmanuel Vadot sram@7f50e00 { 66*b2d2a78aSEmmanuel Vadot compatible = "mmio-sram"; 67*b2d2a78aSEmmanuel Vadot reg = <0x0 0x07f50e00 0x0 0x100>; 68*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 69*b2d2a78aSEmmanuel Vadot #size-cells = <1>; 70*b2d2a78aSEmmanuel Vadot ranges = <0 0x0 0x07f50e00 0x100>; 71*b2d2a78aSEmmanuel Vadot 72*b2d2a78aSEmmanuel Vadot scmi_shmem: sram@0 { 73*b2d2a78aSEmmanuel Vadot compatible = "arm,scmi-shmem"; 74*b2d2a78aSEmmanuel Vadot reg = <0x0 0x100>; 75*b2d2a78aSEmmanuel Vadot }; 76*b2d2a78aSEmmanuel Vadot }; 77*b2d2a78aSEmmanuel Vadot 78*b2d2a78aSEmmanuel Vadot firmware { 79*b2d2a78aSEmmanuel Vadot scmi: scmi { 80*b2d2a78aSEmmanuel Vadot compatible = "arm,scmi-smc"; 81*b2d2a78aSEmmanuel Vadot arm,smc-id = <0x820000C1>; 82*b2d2a78aSEmmanuel Vadot shmem = <&scmi_shmem>; 83*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 84*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 85*b2d2a78aSEmmanuel Vadot 86*b2d2a78aSEmmanuel Vadot scmi_clk: protocol@14 { 87*b2d2a78aSEmmanuel Vadot reg = <0x14>; 88*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 89*b2d2a78aSEmmanuel Vadot }; 90*b2d2a78aSEmmanuel Vadot }; 91*b2d2a78aSEmmanuel Vadot }; 92*b2d2a78aSEmmanuel Vadot 93f126890aSEmmanuel Vadot soc { 94f126890aSEmmanuel Vadot compatible = "simple-bus"; 95f126890aSEmmanuel Vadot #address-cells = <2>; 96f126890aSEmmanuel Vadot #size-cells = <2>; 97f126890aSEmmanuel Vadot ranges; 98f126890aSEmmanuel Vadot 99f126890aSEmmanuel Vadot gic: interrupt-controller@fff01000 { 100f126890aSEmmanuel Vadot compatible = "arm,gic-400"; 101f126890aSEmmanuel Vadot #interrupt-cells = <3>; 102f126890aSEmmanuel Vadot #address-cells = <0>; 103f126890aSEmmanuel Vadot interrupt-controller; 104f126890aSEmmanuel Vadot reg = <0x0 0xfff01000 0 0x1000>, 105f126890aSEmmanuel Vadot <0x0 0xfff02000 0 0x2000>, 106f126890aSEmmanuel Vadot <0x0 0xfff04000 0 0x2000>, 107f126890aSEmmanuel Vadot <0x0 0xfff06000 0 0x2000>; 108f126890aSEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 109f126890aSEmmanuel Vadot }; 110f126890aSEmmanuel Vadot 111f126890aSEmmanuel Vadot apb4: bus@fe000000 { 112f126890aSEmmanuel Vadot compatible = "simple-bus"; 113f126890aSEmmanuel Vadot reg = <0x0 0xfe000000 0x0 0x480000>; 114f126890aSEmmanuel Vadot #address-cells = <2>; 115f126890aSEmmanuel Vadot #size-cells = <2>; 116f126890aSEmmanuel Vadot ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>; 117f126890aSEmmanuel Vadot 118*b2d2a78aSEmmanuel Vadot clkc_periphs: clock-controller@0 { 119*b2d2a78aSEmmanuel Vadot compatible = "amlogic,c3-peripherals-clkc"; 120*b2d2a78aSEmmanuel Vadot reg = <0x0 0x0 0x0 0x49c>; 121*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 122*b2d2a78aSEmmanuel Vadot clocks = <&xtal>, 123*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_OSC>, 124*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_FIXED_PLL_OSC>, 125*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2>, 126*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2P5>, 127*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV3>, 128*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV4>, 129*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV5>, 130*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV7>, 131*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_GP0_PLL>, 132*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_GP1_PLL_OSC>, 133*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_HIFI_PLL>, 134*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_SYS_CLK>, 135*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_AXI_CLK>, 136*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_SYS_PLL_DIV16>, 137*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_CPU_CLK_DIV16>; 138*b2d2a78aSEmmanuel Vadot clock-names = "xtal_24m", 139*b2d2a78aSEmmanuel Vadot "oscin", 140*b2d2a78aSEmmanuel Vadot "fix", 141*b2d2a78aSEmmanuel Vadot "fdiv2", 142*b2d2a78aSEmmanuel Vadot "fdiv2p5", 143*b2d2a78aSEmmanuel Vadot "fdiv3", 144*b2d2a78aSEmmanuel Vadot "fdiv4", 145*b2d2a78aSEmmanuel Vadot "fdiv5", 146*b2d2a78aSEmmanuel Vadot "fdiv7", 147*b2d2a78aSEmmanuel Vadot "gp0", 148*b2d2a78aSEmmanuel Vadot "gp1", 149*b2d2a78aSEmmanuel Vadot "hifi", 150*b2d2a78aSEmmanuel Vadot "sysclk", 151*b2d2a78aSEmmanuel Vadot "axiclk", 152*b2d2a78aSEmmanuel Vadot "sysplldiv16", 153*b2d2a78aSEmmanuel Vadot "cpudiv16"; 154*b2d2a78aSEmmanuel Vadot }; 155*b2d2a78aSEmmanuel Vadot 15601950c46SEmmanuel Vadot reset: reset-controller@2000 { 15701950c46SEmmanuel Vadot compatible = "amlogic,c3-reset"; 15801950c46SEmmanuel Vadot reg = <0x0 0x2000 0x0 0x98>; 15901950c46SEmmanuel Vadot #reset-cells = <1>; 16001950c46SEmmanuel Vadot }; 16101950c46SEmmanuel Vadot 1628d13bc63SEmmanuel Vadot watchdog@2100 { 1638d13bc63SEmmanuel Vadot compatible = "amlogic,c3-wdt", "amlogic,t7-wdt"; 1648d13bc63SEmmanuel Vadot reg = <0x0 0x2100 0x0 0x10>; 1658d13bc63SEmmanuel Vadot clocks = <&xtal>; 1668d13bc63SEmmanuel Vadot }; 1678d13bc63SEmmanuel Vadot 168aa1a8ff2SEmmanuel Vadot periphs_pinctrl: pinctrl@4000 { 169aa1a8ff2SEmmanuel Vadot compatible = "amlogic,c3-periphs-pinctrl"; 170aa1a8ff2SEmmanuel Vadot #address-cells = <2>; 171aa1a8ff2SEmmanuel Vadot #size-cells = <2>; 172*b2d2a78aSEmmanuel Vadot ranges = <0x0 0x0 0x0 0x4000 0x0 0x02de>; 173aa1a8ff2SEmmanuel Vadot 174*b2d2a78aSEmmanuel Vadot gpio: bank@0 { 175*b2d2a78aSEmmanuel Vadot reg = <0x0 0x0 0x0 0x004c>, 176*b2d2a78aSEmmanuel Vadot <0x0 0x100 0x0 0x01de>; 177aa1a8ff2SEmmanuel Vadot reg-names = "mux", "gpio"; 178aa1a8ff2SEmmanuel Vadot gpio-controller; 179aa1a8ff2SEmmanuel Vadot #gpio-cells = <2>; 180aa1a8ff2SEmmanuel Vadot gpio-ranges = <&periphs_pinctrl 0 0 55>; 181aa1a8ff2SEmmanuel Vadot }; 182*b2d2a78aSEmmanuel Vadot 183*b2d2a78aSEmmanuel Vadot i2c0_pins1: i2c0-pins1 { 184*b2d2a78aSEmmanuel Vadot mux { 185*b2d2a78aSEmmanuel Vadot groups = "i2c0_sda_e", 186*b2d2a78aSEmmanuel Vadot "i2c0_scl_e"; 187*b2d2a78aSEmmanuel Vadot function = "i2c0"; 188*b2d2a78aSEmmanuel Vadot bias-disable; 189*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 190*b2d2a78aSEmmanuel Vadot }; 191*b2d2a78aSEmmanuel Vadot }; 192*b2d2a78aSEmmanuel Vadot 193*b2d2a78aSEmmanuel Vadot i2c0_pins2: i2c0-pins2 { 194*b2d2a78aSEmmanuel Vadot mux { 195*b2d2a78aSEmmanuel Vadot groups = "i2c0_sda_d", 196*b2d2a78aSEmmanuel Vadot "i2c0_scl_d"; 197*b2d2a78aSEmmanuel Vadot function = "i2c0"; 198*b2d2a78aSEmmanuel Vadot bias-disable; 199*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 200*b2d2a78aSEmmanuel Vadot }; 201*b2d2a78aSEmmanuel Vadot }; 202*b2d2a78aSEmmanuel Vadot 203*b2d2a78aSEmmanuel Vadot i2c1_pins1: i2c1-pins1 { 204*b2d2a78aSEmmanuel Vadot mux { 205*b2d2a78aSEmmanuel Vadot groups = "i2c1_sda_x", 206*b2d2a78aSEmmanuel Vadot "i2c1_scl_x"; 207*b2d2a78aSEmmanuel Vadot function = "i2c1"; 208*b2d2a78aSEmmanuel Vadot bias-disable; 209*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 210*b2d2a78aSEmmanuel Vadot }; 211*b2d2a78aSEmmanuel Vadot }; 212*b2d2a78aSEmmanuel Vadot 213*b2d2a78aSEmmanuel Vadot i2c1_pins2: i2c1-pins2 { 214*b2d2a78aSEmmanuel Vadot mux { 215*b2d2a78aSEmmanuel Vadot groups = "i2c1_sda_d", 216*b2d2a78aSEmmanuel Vadot "i2c1_scl_d"; 217*b2d2a78aSEmmanuel Vadot function = "i2c1"; 218*b2d2a78aSEmmanuel Vadot bias-disable; 219*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 220*b2d2a78aSEmmanuel Vadot }; 221*b2d2a78aSEmmanuel Vadot }; 222*b2d2a78aSEmmanuel Vadot 223*b2d2a78aSEmmanuel Vadot i2c1_pins3: i2c1-pins3 { 224*b2d2a78aSEmmanuel Vadot mux { 225*b2d2a78aSEmmanuel Vadot groups = "i2c1_sda_a", 226*b2d2a78aSEmmanuel Vadot "i2c1_scl_a"; 227*b2d2a78aSEmmanuel Vadot function = "i2c1"; 228*b2d2a78aSEmmanuel Vadot bias-disable; 229*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 230*b2d2a78aSEmmanuel Vadot }; 231*b2d2a78aSEmmanuel Vadot }; 232*b2d2a78aSEmmanuel Vadot 233*b2d2a78aSEmmanuel Vadot i2c1_pins4: i2c1-pins4 { 234*b2d2a78aSEmmanuel Vadot mux { 235*b2d2a78aSEmmanuel Vadot groups = "i2c1_sda_b", 236*b2d2a78aSEmmanuel Vadot "i2c1_scl_b"; 237*b2d2a78aSEmmanuel Vadot function = "i2c1"; 238*b2d2a78aSEmmanuel Vadot bias-disable; 239*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 240*b2d2a78aSEmmanuel Vadot }; 241*b2d2a78aSEmmanuel Vadot }; 242*b2d2a78aSEmmanuel Vadot 243*b2d2a78aSEmmanuel Vadot i2c2_pins1: i2c2-pins1 { 244*b2d2a78aSEmmanuel Vadot mux { 245*b2d2a78aSEmmanuel Vadot groups = "i2c2_sda", 246*b2d2a78aSEmmanuel Vadot "i2c2_scl"; 247*b2d2a78aSEmmanuel Vadot function = "i2c2"; 248*b2d2a78aSEmmanuel Vadot bias-disable; 249*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 250*b2d2a78aSEmmanuel Vadot }; 251*b2d2a78aSEmmanuel Vadot }; 252*b2d2a78aSEmmanuel Vadot 253*b2d2a78aSEmmanuel Vadot i2c3_pins1: i2c3-pins1 { 254*b2d2a78aSEmmanuel Vadot mux { 255*b2d2a78aSEmmanuel Vadot groups = "i2c3_sda_c", 256*b2d2a78aSEmmanuel Vadot "i2c3_scl_c"; 257*b2d2a78aSEmmanuel Vadot function = "i2c3"; 258*b2d2a78aSEmmanuel Vadot bias-disable; 259*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 260*b2d2a78aSEmmanuel Vadot }; 261*b2d2a78aSEmmanuel Vadot }; 262*b2d2a78aSEmmanuel Vadot 263*b2d2a78aSEmmanuel Vadot i2c3_pins2: i2c3-pins2 { 264*b2d2a78aSEmmanuel Vadot mux { 265*b2d2a78aSEmmanuel Vadot groups = "i2c3_sda_x", 266*b2d2a78aSEmmanuel Vadot "i2c3_scl_x"; 267*b2d2a78aSEmmanuel Vadot function = "i2c3"; 268*b2d2a78aSEmmanuel Vadot bias-disable; 269*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 270*b2d2a78aSEmmanuel Vadot }; 271*b2d2a78aSEmmanuel Vadot }; 272*b2d2a78aSEmmanuel Vadot 273*b2d2a78aSEmmanuel Vadot i2c3_pins3: i2c3-pins3 { 274*b2d2a78aSEmmanuel Vadot mux { 275*b2d2a78aSEmmanuel Vadot groups = "i2c3_sda_d", 276*b2d2a78aSEmmanuel Vadot "i2c3_scl_d"; 277*b2d2a78aSEmmanuel Vadot function = "i2c3"; 278*b2d2a78aSEmmanuel Vadot bias-disable; 279*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 280*b2d2a78aSEmmanuel Vadot }; 281*b2d2a78aSEmmanuel Vadot }; 282*b2d2a78aSEmmanuel Vadot 283*b2d2a78aSEmmanuel Vadot nand_pins: nand-pins { 284*b2d2a78aSEmmanuel Vadot mux { 285*b2d2a78aSEmmanuel Vadot groups = "emmc_nand_d0", 286*b2d2a78aSEmmanuel Vadot "emmc_nand_d1", 287*b2d2a78aSEmmanuel Vadot "emmc_nand_d2", 288*b2d2a78aSEmmanuel Vadot "emmc_nand_d3", 289*b2d2a78aSEmmanuel Vadot "emmc_nand_d4", 290*b2d2a78aSEmmanuel Vadot "emmc_nand_d5", 291*b2d2a78aSEmmanuel Vadot "emmc_nand_d6", 292*b2d2a78aSEmmanuel Vadot "emmc_nand_d7", 293*b2d2a78aSEmmanuel Vadot "nand_ce0", 294*b2d2a78aSEmmanuel Vadot "nand_ale", 295*b2d2a78aSEmmanuel Vadot "nand_cle", 296*b2d2a78aSEmmanuel Vadot "nand_wen_clk", 297*b2d2a78aSEmmanuel Vadot "nand_ren_wr"; 298*b2d2a78aSEmmanuel Vadot function = "nand"; 299*b2d2a78aSEmmanuel Vadot input-enable; 300*b2d2a78aSEmmanuel Vadot }; 301*b2d2a78aSEmmanuel Vadot }; 302*b2d2a78aSEmmanuel Vadot 303*b2d2a78aSEmmanuel Vadot sdcard_pins: sdcard-pins { 304*b2d2a78aSEmmanuel Vadot mux { 305*b2d2a78aSEmmanuel Vadot groups = "sdcard_d0", 306*b2d2a78aSEmmanuel Vadot "sdcard_d1", 307*b2d2a78aSEmmanuel Vadot "sdcard_d2", 308*b2d2a78aSEmmanuel Vadot "sdcard_d3", 309*b2d2a78aSEmmanuel Vadot "sdcard_clk", 310*b2d2a78aSEmmanuel Vadot "sdcard_cmd"; 311*b2d2a78aSEmmanuel Vadot function = "sdcard"; 312*b2d2a78aSEmmanuel Vadot bias-pull-up; 313*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <4000>; 314*b2d2a78aSEmmanuel Vadot }; 315*b2d2a78aSEmmanuel Vadot }; 316*b2d2a78aSEmmanuel Vadot 317*b2d2a78aSEmmanuel Vadot sdcard_clk_gate_pins: sdcard-clk-cmd-pins { 318*b2d2a78aSEmmanuel Vadot mux { 319*b2d2a78aSEmmanuel Vadot groups = "GPIOC_4"; 320*b2d2a78aSEmmanuel Vadot function = "gpio_periphs"; 321*b2d2a78aSEmmanuel Vadot bias-pull-down; 322*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <4000>; 323*b2d2a78aSEmmanuel Vadot }; 324*b2d2a78aSEmmanuel Vadot }; 325*b2d2a78aSEmmanuel Vadot 326*b2d2a78aSEmmanuel Vadot sdio_m_clk_gate_pins: sdio-m-clk-cmd-pins { 327*b2d2a78aSEmmanuel Vadot mux { 328*b2d2a78aSEmmanuel Vadot groups = "sdio_clk"; 329*b2d2a78aSEmmanuel Vadot function = "sdio"; 330*b2d2a78aSEmmanuel Vadot bias-pull-down; 331*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <4000>; 332*b2d2a78aSEmmanuel Vadot }; 333*b2d2a78aSEmmanuel Vadot }; 334*b2d2a78aSEmmanuel Vadot 335*b2d2a78aSEmmanuel Vadot sdio_m_pins: sdio-m-all-pins { 336*b2d2a78aSEmmanuel Vadot mux { 337*b2d2a78aSEmmanuel Vadot groups = "sdio_d0", 338*b2d2a78aSEmmanuel Vadot "sdio_d1", 339*b2d2a78aSEmmanuel Vadot "sdio_d2", 340*b2d2a78aSEmmanuel Vadot "sdio_d3", 341*b2d2a78aSEmmanuel Vadot "sdio_clk", 342*b2d2a78aSEmmanuel Vadot "sdio_cmd"; 343*b2d2a78aSEmmanuel Vadot function = "sdio"; 344*b2d2a78aSEmmanuel Vadot input-enable; 345*b2d2a78aSEmmanuel Vadot bias-pull-up; 346*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <4000>; 347*b2d2a78aSEmmanuel Vadot }; 348*b2d2a78aSEmmanuel Vadot }; 349*b2d2a78aSEmmanuel Vadot 350*b2d2a78aSEmmanuel Vadot spicc0_pins1: spicc0-pins1 { 351*b2d2a78aSEmmanuel Vadot mux { 352*b2d2a78aSEmmanuel Vadot groups = "spi_a_mosi_b", 353*b2d2a78aSEmmanuel Vadot "spi_a_miso_b", 354*b2d2a78aSEmmanuel Vadot "spi_a_clk_b"; 355*b2d2a78aSEmmanuel Vadot function = "spi_a"; 356*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 357*b2d2a78aSEmmanuel Vadot }; 358*b2d2a78aSEmmanuel Vadot }; 359*b2d2a78aSEmmanuel Vadot 360*b2d2a78aSEmmanuel Vadot spicc0_pins2: spicc0-pins2 { 361*b2d2a78aSEmmanuel Vadot mux { 362*b2d2a78aSEmmanuel Vadot groups = "spi_a_mosi_c", 363*b2d2a78aSEmmanuel Vadot "spi_a_miso_c", 364*b2d2a78aSEmmanuel Vadot "spi_a_clk_c"; 365*b2d2a78aSEmmanuel Vadot function = "spi_a"; 366*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 367*b2d2a78aSEmmanuel Vadot }; 368*b2d2a78aSEmmanuel Vadot }; 369*b2d2a78aSEmmanuel Vadot 370*b2d2a78aSEmmanuel Vadot spicc0_pins3: spicc0-pins3 { 371*b2d2a78aSEmmanuel Vadot mux { 372*b2d2a78aSEmmanuel Vadot groups = "spi_a_mosi_x", 373*b2d2a78aSEmmanuel Vadot "spi_a_miso_x", 374*b2d2a78aSEmmanuel Vadot "spi_a_clk_x"; 375*b2d2a78aSEmmanuel Vadot function = "spi_a"; 376*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 377*b2d2a78aSEmmanuel Vadot }; 378*b2d2a78aSEmmanuel Vadot }; 379*b2d2a78aSEmmanuel Vadot 380*b2d2a78aSEmmanuel Vadot spicc1_pins1: spicc1-pins1 { 381*b2d2a78aSEmmanuel Vadot mux { 382*b2d2a78aSEmmanuel Vadot groups = "spi_b_mosi_d", 383*b2d2a78aSEmmanuel Vadot "spi_b_miso_d", 384*b2d2a78aSEmmanuel Vadot "spi_b_clk_d"; 385*b2d2a78aSEmmanuel Vadot function = "spi_b"; 386*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 387*b2d2a78aSEmmanuel Vadot }; 388*b2d2a78aSEmmanuel Vadot }; 389*b2d2a78aSEmmanuel Vadot 390*b2d2a78aSEmmanuel Vadot spicc1_pins2: spicc1-pins2 { 391*b2d2a78aSEmmanuel Vadot mux { 392*b2d2a78aSEmmanuel Vadot groups = "spi_b_mosi_x", 393*b2d2a78aSEmmanuel Vadot "spi_b_miso_x", 394*b2d2a78aSEmmanuel Vadot "spi_b_clk_x"; 395*b2d2a78aSEmmanuel Vadot function = "spi_b"; 396*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <3000>; 397*b2d2a78aSEmmanuel Vadot }; 398*b2d2a78aSEmmanuel Vadot }; 399*b2d2a78aSEmmanuel Vadot 400*b2d2a78aSEmmanuel Vadot spifc_pins: spifc-pins { 401*b2d2a78aSEmmanuel Vadot mux { 402*b2d2a78aSEmmanuel Vadot groups = "spif_mo", 403*b2d2a78aSEmmanuel Vadot "spif_mi", 404*b2d2a78aSEmmanuel Vadot "spif_clk", 405*b2d2a78aSEmmanuel Vadot "spif_cs", 406*b2d2a78aSEmmanuel Vadot "spif_hold", 407*b2d2a78aSEmmanuel Vadot "spif_wp", 408*b2d2a78aSEmmanuel Vadot "spif_clk_loop"; 409*b2d2a78aSEmmanuel Vadot function = "spif"; 410*b2d2a78aSEmmanuel Vadot drive-strength-microamp = <4000>; 411*b2d2a78aSEmmanuel Vadot }; 412*b2d2a78aSEmmanuel Vadot }; 413aa1a8ff2SEmmanuel Vadot }; 414aa1a8ff2SEmmanuel Vadot 415aa1a8ff2SEmmanuel Vadot gpio_intc: interrupt-controller@4080 { 4160e8011faSEmmanuel Vadot compatible = "amlogic,c3-gpio-intc", "amlogic,meson-gpio-intc"; 417aa1a8ff2SEmmanuel Vadot reg = <0x0 0x4080 0x0 0x0020>; 418aa1a8ff2SEmmanuel Vadot interrupt-controller; 419aa1a8ff2SEmmanuel Vadot #interrupt-cells = <2>; 420aa1a8ff2SEmmanuel Vadot amlogic,channel-interrupts = 421aa1a8ff2SEmmanuel Vadot <10 11 12 13 14 15 16 17 18 19 20 21>; 422aa1a8ff2SEmmanuel Vadot }; 423aa1a8ff2SEmmanuel Vadot 424*b2d2a78aSEmmanuel Vadot clkc_pll: clock-controller@8000 { 425*b2d2a78aSEmmanuel Vadot compatible = "amlogic,c3-pll-clkc"; 426*b2d2a78aSEmmanuel Vadot reg = <0x0 0x8000 0x0 0x1a4>; 427*b2d2a78aSEmmanuel Vadot #clock-cells = <1>; 428*b2d2a78aSEmmanuel Vadot clocks = <&scmi_clk CLKID_TOP_PLL_OSC>, 429*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_MCLK_PLL_OSC>, 430*b2d2a78aSEmmanuel Vadot <&scmi_clk CLKID_FIXED_PLL_OSC>; 431*b2d2a78aSEmmanuel Vadot clock-names = "top", 432*b2d2a78aSEmmanuel Vadot "mclk", 433*b2d2a78aSEmmanuel Vadot "fix"; 434*b2d2a78aSEmmanuel Vadot }; 435*b2d2a78aSEmmanuel Vadot 436*b2d2a78aSEmmanuel Vadot eth_phy: mdio-multiplexer@28000 { 437*b2d2a78aSEmmanuel Vadot compatible = "amlogic,g12a-mdio-mux"; 438*b2d2a78aSEmmanuel Vadot reg = <0x0 0x28000 0x0 0xa4>; 439*b2d2a78aSEmmanuel Vadot 440*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_ETH_PHY>, 441*b2d2a78aSEmmanuel Vadot <&xtal>, 442*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_50M>; 443*b2d2a78aSEmmanuel Vadot clock-names = "pclk", "clkin0", "clkin1"; 444*b2d2a78aSEmmanuel Vadot mdio-parent-bus = <&mdio0>; 445*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 446*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 447*b2d2a78aSEmmanuel Vadot 448*b2d2a78aSEmmanuel Vadot ext_mdio: mdio@0 { 449*b2d2a78aSEmmanuel Vadot reg = <0>; 450*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 451*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 452*b2d2a78aSEmmanuel Vadot }; 453*b2d2a78aSEmmanuel Vadot 454*b2d2a78aSEmmanuel Vadot int_mdio: mdio@1 { 455*b2d2a78aSEmmanuel Vadot reg = <1>; 456*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 457*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 458*b2d2a78aSEmmanuel Vadot 459*b2d2a78aSEmmanuel Vadot internal_ephy: ethernet_phy@8 { 460*b2d2a78aSEmmanuel Vadot compatible = "ethernet-phy-id0180.3301", 461*b2d2a78aSEmmanuel Vadot "ethernet-phy-ieee802.3-c22"; 462*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 463*b2d2a78aSEmmanuel Vadot reg = <8>; 464*b2d2a78aSEmmanuel Vadot max-speed = <100>; 465*b2d2a78aSEmmanuel Vadot }; 466*b2d2a78aSEmmanuel Vadot }; 467*b2d2a78aSEmmanuel Vadot }; 468*b2d2a78aSEmmanuel Vadot 469*b2d2a78aSEmmanuel Vadot spicc0: spi@50000 { 470*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-g12a-spicc"; 471*b2d2a78aSEmmanuel Vadot reg = <0x0 0x50000 0x0 0x44>; 472*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>; 473*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_SPICC_0>, 474*b2d2a78aSEmmanuel Vadot <&clkc_periphs CLKID_SPICC_A>; 475*b2d2a78aSEmmanuel Vadot clock-names = "core", "pclk"; 476*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 477*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 478*b2d2a78aSEmmanuel Vadot status = "disabled"; 479*b2d2a78aSEmmanuel Vadot }; 480*b2d2a78aSEmmanuel Vadot 481*b2d2a78aSEmmanuel Vadot spicc1: spi@52000 { 482*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-g12a-spicc"; 483*b2d2a78aSEmmanuel Vadot reg = <0x0 0x52000 0x0 0x44>; 484*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 485*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_SPICC_1>, 486*b2d2a78aSEmmanuel Vadot <&clkc_periphs CLKID_SPICC_B>; 487*b2d2a78aSEmmanuel Vadot clock-names = "core", "pclk"; 488*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 489*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 490*b2d2a78aSEmmanuel Vadot status = "disabled"; 491*b2d2a78aSEmmanuel Vadot }; 492*b2d2a78aSEmmanuel Vadot 493*b2d2a78aSEmmanuel Vadot spifc: spi@56000 { 494*b2d2a78aSEmmanuel Vadot compatible = "amlogic,a1-spifc"; 495*b2d2a78aSEmmanuel Vadot reg = <0x0 0x56000 0x0 0x290>; 496*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 182 IRQ_TYPE_EDGE_RISING>; 497*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SPIFC>; 498*b2d2a78aSEmmanuel Vadot clock-names = "core"; 499*b2d2a78aSEmmanuel Vadot status = "disabled"; 500*b2d2a78aSEmmanuel Vadot }; 501*b2d2a78aSEmmanuel Vadot 502*b2d2a78aSEmmanuel Vadot i2c0: i2c@66000 { 503*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-i2c"; 504*b2d2a78aSEmmanuel Vadot reg = <0x0 0x66000 0x0 0x24>; 505*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 160 IRQ_TYPE_EDGE_RISING>; 506*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 507*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 508*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_I2C_M_A>; 509*b2d2a78aSEmmanuel Vadot status = "disabled"; 510*b2d2a78aSEmmanuel Vadot }; 511*b2d2a78aSEmmanuel Vadot 512*b2d2a78aSEmmanuel Vadot i2c1: i2c@68000 { 513*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-i2c"; 514*b2d2a78aSEmmanuel Vadot reg = <0x0 0x68000 0x0 0x24>; 515*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 161 IRQ_TYPE_EDGE_RISING>; 516*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 517*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 518*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_I2C_M_B>; 519*b2d2a78aSEmmanuel Vadot status = "disabled"; 520*b2d2a78aSEmmanuel Vadot }; 521*b2d2a78aSEmmanuel Vadot 522*b2d2a78aSEmmanuel Vadot i2c2: i2c@6a000 { 523*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-i2c"; 524*b2d2a78aSEmmanuel Vadot reg = <0x0 0x6a000 0x0 0x24>; 525*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 162 IRQ_TYPE_EDGE_RISING>; 526*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 527*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 528*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_I2C_M_C>; 529*b2d2a78aSEmmanuel Vadot status = "disabled"; 530*b2d2a78aSEmmanuel Vadot }; 531*b2d2a78aSEmmanuel Vadot 532*b2d2a78aSEmmanuel Vadot i2c3: i2c@6c000 { 533*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-i2c"; 534*b2d2a78aSEmmanuel Vadot reg = <0x0 0x6c000 0x0 0x24>; 535*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 163 IRQ_TYPE_EDGE_RISING>; 536*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 537*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 538*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_I2C_M_D>; 539*b2d2a78aSEmmanuel Vadot status = "disabled"; 540*b2d2a78aSEmmanuel Vadot }; 541*b2d2a78aSEmmanuel Vadot 542f126890aSEmmanuel Vadot uart_b: serial@7a000 { 543f126890aSEmmanuel Vadot compatible = "amlogic,meson-s4-uart", 544f126890aSEmmanuel Vadot "amlogic,meson-ao-uart"; 545f126890aSEmmanuel Vadot reg = <0x0 0x7a000 0x0 0x18>; 546f126890aSEmmanuel Vadot interrupts = <GIC_SPI 169 IRQ_TYPE_EDGE_RISING>; 547f126890aSEmmanuel Vadot status = "disabled"; 548*b2d2a78aSEmmanuel Vadot clocks = <&xtal>, <&clkc_periphs CLKID_SYS_UART_B>, <&xtal>; 549f126890aSEmmanuel Vadot clock-names = "xtal", "pclk", "baud"; 550f126890aSEmmanuel Vadot }; 551f126890aSEmmanuel Vadot 552*b2d2a78aSEmmanuel Vadot sec_ao: ao-secure@10220 { 553*b2d2a78aSEmmanuel Vadot compatible = "amlogic,c3-ao-secure", 554*b2d2a78aSEmmanuel Vadot "amlogic,meson-gx-ao-secure", 555*b2d2a78aSEmmanuel Vadot "syscon"; 556*b2d2a78aSEmmanuel Vadot reg = <0x0 0x10220 0x0 0x140>; 557*b2d2a78aSEmmanuel Vadot amlogic,has-chip-id; 558*b2d2a78aSEmmanuel Vadot }; 559*b2d2a78aSEmmanuel Vadot 560*b2d2a78aSEmmanuel Vadot sdio: mmc@88000 { 561*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-mmc"; 562*b2d2a78aSEmmanuel Vadot reg = <0x0 0x88000 0x0 0x800>; 563*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>; 564*b2d2a78aSEmmanuel Vadot power-domains = <&pwrc PWRC_C3_SDIOA_ID>; 565*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_A>, 566*b2d2a78aSEmmanuel Vadot <&clkc_periphs CLKID_SD_EMMC_A>, 567*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2>; 568*b2d2a78aSEmmanuel Vadot clock-names = "core","clkin0", "clkin1"; 569*b2d2a78aSEmmanuel Vadot no-mmc; 570*b2d2a78aSEmmanuel Vadot no-sd; 571*b2d2a78aSEmmanuel Vadot resets = <&reset RESET_SD_EMMC_A>; 572*b2d2a78aSEmmanuel Vadot status = "disabled"; 573*b2d2a78aSEmmanuel Vadot }; 574*b2d2a78aSEmmanuel Vadot 575*b2d2a78aSEmmanuel Vadot sd: mmc@8a000 { 576*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-mmc"; 577*b2d2a78aSEmmanuel Vadot reg = <0x0 0x8a000 0x0 0x800>; 578*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>; 579*b2d2a78aSEmmanuel Vadot power-domains = <&pwrc PWRC_C3_SDCARD_ID>; 580*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_B>, 581*b2d2a78aSEmmanuel Vadot <&clkc_periphs CLKID_SD_EMMC_B>, 582*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2>; 583*b2d2a78aSEmmanuel Vadot clock-names = "core", "clkin0", "clkin1"; 584*b2d2a78aSEmmanuel Vadot no-mmc; 585*b2d2a78aSEmmanuel Vadot no-sdio; 586*b2d2a78aSEmmanuel Vadot resets = <&reset RESET_SD_EMMC_B>; 587*b2d2a78aSEmmanuel Vadot status = "disabled"; 588*b2d2a78aSEmmanuel Vadot }; 589*b2d2a78aSEmmanuel Vadot 590*b2d2a78aSEmmanuel Vadot nand: nand-controller@8d000 { 591*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-axg-nfc"; 592*b2d2a78aSEmmanuel Vadot reg = <0x0 0x8d000 0x0 0x200>, 593*b2d2a78aSEmmanuel Vadot <0x0 0x8C000 0x0 0x4>; 594*b2d2a78aSEmmanuel Vadot reg-names = "nfc", "emmc"; 595*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 87 IRQ_TYPE_EDGE_RISING>; 596*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_SD_EMMC_C>, 597*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2>; 598*b2d2a78aSEmmanuel Vadot clock-names = "core", "device"; 599*b2d2a78aSEmmanuel Vadot status = "disabled"; 600*b2d2a78aSEmmanuel Vadot }; 601*b2d2a78aSEmmanuel Vadot }; 602*b2d2a78aSEmmanuel Vadot 603*b2d2a78aSEmmanuel Vadot ethmac: ethernet@fdc00000 { 604*b2d2a78aSEmmanuel Vadot compatible = "amlogic,meson-g12a-dwmac", 605*b2d2a78aSEmmanuel Vadot "snps,dwmac-3.70a", 606*b2d2a78aSEmmanuel Vadot "snps,dwmac"; 607*b2d2a78aSEmmanuel Vadot reg = <0x0 0xfdc00000 0x0 0x10000>, 608*b2d2a78aSEmmanuel Vadot <0x0 0xfe024000 0x0 0x8>; 609*b2d2a78aSEmmanuel Vadot interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 610*b2d2a78aSEmmanuel Vadot interrupt-names = "macirq"; 611*b2d2a78aSEmmanuel Vadot power-domains = <&pwrc PWRC_C3_ETH_ID>; 612*b2d2a78aSEmmanuel Vadot clocks = <&clkc_periphs CLKID_SYS_ETH_MAC>, 613*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_DIV2>, 614*b2d2a78aSEmmanuel Vadot <&clkc_pll CLKID_FCLK_50M>; 615*b2d2a78aSEmmanuel Vadot clock-names = "stmmaceth", "clkin0", "clkin1"; 616*b2d2a78aSEmmanuel Vadot rx-fifo-depth = <4096>; 617*b2d2a78aSEmmanuel Vadot tx-fifo-depth = <2048>; 618*b2d2a78aSEmmanuel Vadot status = "disabled"; 619*b2d2a78aSEmmanuel Vadot 620*b2d2a78aSEmmanuel Vadot mdio0: mdio { 621*b2d2a78aSEmmanuel Vadot compatible = "snps,dwmac-mdio"; 622*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 623*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 624*b2d2a78aSEmmanuel Vadot }; 625f126890aSEmmanuel Vadot }; 626f126890aSEmmanuel Vadot }; 627f126890aSEmmanuel Vadot}; 628