1b3a37248SEddie Huang/* 2b3a37248SEddie Huang * Copyright (c) 2014 MediaTek Inc. 3b3a37248SEddie Huang * Author: Eddie Huang <eddie.huang@mediatek.com> 4b3a37248SEddie Huang * 5b3a37248SEddie Huang * This program is free software; you can redistribute it and/or modify 6b3a37248SEddie Huang * it under the terms of the GNU General Public License version 2 as 7b3a37248SEddie Huang * published by the Free Software Foundation. 8b3a37248SEddie Huang * 9b3a37248SEddie Huang * This program is distributed in the hope that it will be useful, 10b3a37248SEddie Huang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11b3a37248SEddie Huang * GNU General Public License for more details. 12b3a37248SEddie Huang */ 13b3a37248SEddie Huang 14f2ce7014SSascha Hauer#include <dt-bindings/clock/mt8173-clk.h> 15b3a37248SEddie Huang#include <dt-bindings/interrupt-controller/irq.h> 16b3a37248SEddie Huang#include <dt-bindings/interrupt-controller/arm-gic.h> 175ff6b3a6SYong Wu#include <dt-bindings/memory/mt8173-larb-port.h> 18bfcce47aSChunfeng Yun#include <dt-bindings/phy/phy.h> 19c02e0e86SKoro Chen#include <dt-bindings/power/mt8173-power.h> 20967313e2SPhilipp Zabel#include <dt-bindings/reset/mt8173-resets.h> 21359f9365SHongzhou Yang#include "mt8173-pinfunc.h" 22b3a37248SEddie Huang 23b3a37248SEddie Huang/ { 24b3a37248SEddie Huang compatible = "mediatek,mt8173"; 25b3a37248SEddie Huang interrupt-parent = <&sysirq>; 26b3a37248SEddie Huang #address-cells = <2>; 27b3a37248SEddie Huang #size-cells = <2>; 28b3a37248SEddie Huang 29b3a37248SEddie Huang cpus { 30b3a37248SEddie Huang #address-cells = <1>; 31b3a37248SEddie Huang #size-cells = <0>; 32b3a37248SEddie Huang 33b3a37248SEddie Huang cpu-map { 34b3a37248SEddie Huang cluster0 { 35b3a37248SEddie Huang core0 { 36b3a37248SEddie Huang cpu = <&cpu0>; 37b3a37248SEddie Huang }; 38b3a37248SEddie Huang core1 { 39b3a37248SEddie Huang cpu = <&cpu1>; 40b3a37248SEddie Huang }; 41b3a37248SEddie Huang }; 42b3a37248SEddie Huang 43b3a37248SEddie Huang cluster1 { 44b3a37248SEddie Huang core0 { 45b3a37248SEddie Huang cpu = <&cpu2>; 46b3a37248SEddie Huang }; 47b3a37248SEddie Huang core1 { 48b3a37248SEddie Huang cpu = <&cpu3>; 49b3a37248SEddie Huang }; 50b3a37248SEddie Huang }; 51b3a37248SEddie Huang }; 52b3a37248SEddie Huang 53b3a37248SEddie Huang cpu0: cpu@0 { 54b3a37248SEddie Huang device_type = "cpu"; 55b3a37248SEddie Huang compatible = "arm,cortex-a53"; 56b3a37248SEddie Huang reg = <0x000>; 57ad4df7a5SHoward Chen enable-method = "psci"; 58ad4df7a5SHoward Chen cpu-idle-states = <&CPU_SLEEP_0>; 59b3a37248SEddie Huang }; 60b3a37248SEddie Huang 61b3a37248SEddie Huang cpu1: cpu@1 { 62b3a37248SEddie Huang device_type = "cpu"; 63b3a37248SEddie Huang compatible = "arm,cortex-a53"; 64b3a37248SEddie Huang reg = <0x001>; 65b3a37248SEddie Huang enable-method = "psci"; 66ad4df7a5SHoward Chen cpu-idle-states = <&CPU_SLEEP_0>; 67b3a37248SEddie Huang }; 68b3a37248SEddie Huang 69b3a37248SEddie Huang cpu2: cpu@100 { 70b3a37248SEddie Huang device_type = "cpu"; 71b3a37248SEddie Huang compatible = "arm,cortex-a57"; 72b3a37248SEddie Huang reg = <0x100>; 73b3a37248SEddie Huang enable-method = "psci"; 74ad4df7a5SHoward Chen cpu-idle-states = <&CPU_SLEEP_0>; 75b3a37248SEddie Huang }; 76b3a37248SEddie Huang 77b3a37248SEddie Huang cpu3: cpu@101 { 78b3a37248SEddie Huang device_type = "cpu"; 79b3a37248SEddie Huang compatible = "arm,cortex-a57"; 80b3a37248SEddie Huang reg = <0x101>; 81b3a37248SEddie Huang enable-method = "psci"; 82ad4df7a5SHoward Chen cpu-idle-states = <&CPU_SLEEP_0>; 83ad4df7a5SHoward Chen }; 84ad4df7a5SHoward Chen 85ad4df7a5SHoward Chen idle-states { 86a13f18f5SLorenzo Pieralisi entry-method = "psci"; 87ad4df7a5SHoward Chen 88ad4df7a5SHoward Chen CPU_SLEEP_0: cpu-sleep-0 { 89ad4df7a5SHoward Chen compatible = "arm,idle-state"; 90ad4df7a5SHoward Chen local-timer-stop; 91ad4df7a5SHoward Chen entry-latency-us = <639>; 92ad4df7a5SHoward Chen exit-latency-us = <680>; 93ad4df7a5SHoward Chen min-residency-us = <1088>; 94ad4df7a5SHoward Chen arm,psci-suspend-param = <0x0010000>; 95ad4df7a5SHoward Chen }; 96b3a37248SEddie Huang }; 97b3a37248SEddie Huang }; 98b3a37248SEddie Huang 99b3a37248SEddie Huang psci { 10005bdabe7SFan Chen compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci"; 101b3a37248SEddie Huang method = "smc"; 102b3a37248SEddie Huang cpu_suspend = <0x84000001>; 103b3a37248SEddie Huang cpu_off = <0x84000002>; 104b3a37248SEddie Huang cpu_on = <0x84000003>; 105b3a37248SEddie Huang }; 106b3a37248SEddie Huang 107f2ce7014SSascha Hauer clk26m: oscillator@0 { 108f2ce7014SSascha Hauer compatible = "fixed-clock"; 109f2ce7014SSascha Hauer #clock-cells = <0>; 110f2ce7014SSascha Hauer clock-frequency = <26000000>; 111f2ce7014SSascha Hauer clock-output-names = "clk26m"; 112f2ce7014SSascha Hauer }; 113f2ce7014SSascha Hauer 114f2ce7014SSascha Hauer clk32k: oscillator@1 { 115f2ce7014SSascha Hauer compatible = "fixed-clock"; 116f2ce7014SSascha Hauer #clock-cells = <0>; 117f2ce7014SSascha Hauer clock-frequency = <32000>; 118f2ce7014SSascha Hauer clock-output-names = "clk32k"; 119f2ce7014SSascha Hauer }; 120f2ce7014SSascha Hauer 12167e56c56SJames Liao cpum_ck: oscillator@2 { 12267e56c56SJames Liao compatible = "fixed-clock"; 12367e56c56SJames Liao #clock-cells = <0>; 12467e56c56SJames Liao clock-frequency = <0>; 12567e56c56SJames Liao clock-output-names = "cpum_ck"; 12667e56c56SJames Liao }; 12767e56c56SJames Liao 128b3a37248SEddie Huang timer { 129b3a37248SEddie Huang compatible = "arm,armv8-timer"; 130b3a37248SEddie Huang interrupt-parent = <&gic>; 131b3a37248SEddie Huang interrupts = <GIC_PPI 13 132b3a37248SEddie Huang (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 133b3a37248SEddie Huang <GIC_PPI 14 134b3a37248SEddie Huang (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 135b3a37248SEddie Huang <GIC_PPI 11 136b3a37248SEddie Huang (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 137b3a37248SEddie Huang <GIC_PPI 10 138b3a37248SEddie Huang (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 139b3a37248SEddie Huang }; 140b3a37248SEddie Huang 141b3a37248SEddie Huang soc { 142b3a37248SEddie Huang #address-cells = <2>; 143b3a37248SEddie Huang #size-cells = <2>; 144b3a37248SEddie Huang compatible = "simple-bus"; 145b3a37248SEddie Huang ranges; 146b3a37248SEddie Huang 147f2ce7014SSascha Hauer topckgen: clock-controller@10000000 { 148f2ce7014SSascha Hauer compatible = "mediatek,mt8173-topckgen"; 149f2ce7014SSascha Hauer reg = <0 0x10000000 0 0x1000>; 150f2ce7014SSascha Hauer #clock-cells = <1>; 151f2ce7014SSascha Hauer }; 152f2ce7014SSascha Hauer 153f2ce7014SSascha Hauer infracfg: power-controller@10001000 { 154f2ce7014SSascha Hauer compatible = "mediatek,mt8173-infracfg", "syscon"; 155f2ce7014SSascha Hauer reg = <0 0x10001000 0 0x1000>; 156f2ce7014SSascha Hauer #clock-cells = <1>; 157f2ce7014SSascha Hauer #reset-cells = <1>; 158f2ce7014SSascha Hauer }; 159f2ce7014SSascha Hauer 160f2ce7014SSascha Hauer pericfg: power-controller@10003000 { 161f2ce7014SSascha Hauer compatible = "mediatek,mt8173-pericfg", "syscon"; 162f2ce7014SSascha Hauer reg = <0 0x10003000 0 0x1000>; 163f2ce7014SSascha Hauer #clock-cells = <1>; 164f2ce7014SSascha Hauer #reset-cells = <1>; 165f2ce7014SSascha Hauer }; 166f2ce7014SSascha Hauer 167f2ce7014SSascha Hauer syscfg_pctl_a: syscfg_pctl_a@10005000 { 168f2ce7014SSascha Hauer compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon"; 169f2ce7014SSascha Hauer reg = <0 0x10005000 0 0x1000>; 170f2ce7014SSascha Hauer }; 171f2ce7014SSascha Hauer 172f2ce7014SSascha Hauer pio: pinctrl@0x10005000 { 173359f9365SHongzhou Yang compatible = "mediatek,mt8173-pinctrl"; 1746769b93cSYingjoe Chen reg = <0 0x1000b000 0 0x1000>; 175359f9365SHongzhou Yang mediatek,pctl-regmap = <&syscfg_pctl_a>; 176359f9365SHongzhou Yang pins-are-numbered; 177359f9365SHongzhou Yang gpio-controller; 178359f9365SHongzhou Yang #gpio-cells = <2>; 179359f9365SHongzhou Yang interrupt-controller; 180359f9365SHongzhou Yang #interrupt-cells = <2>; 181359f9365SHongzhou Yang interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 182359f9365SHongzhou Yang <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 183359f9365SHongzhou Yang <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 184091cf598SEddie Huang 185091cf598SEddie Huang i2c0_pins_a: i2c0 { 186091cf598SEddie Huang pins1 { 187091cf598SEddie Huang pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>, 188091cf598SEddie Huang <MT8173_PIN_46_SCL0__FUNC_SCL0>; 189091cf598SEddie Huang bias-disable; 190091cf598SEddie Huang }; 191359f9365SHongzhou Yang }; 192359f9365SHongzhou Yang 193091cf598SEddie Huang i2c1_pins_a: i2c1 { 194091cf598SEddie Huang pins1 { 195091cf598SEddie Huang pinmux = <MT8173_PIN_125_SDA1__FUNC_SDA1>, 196091cf598SEddie Huang <MT8173_PIN_126_SCL1__FUNC_SCL1>; 197091cf598SEddie Huang bias-disable; 198091cf598SEddie Huang }; 199091cf598SEddie Huang }; 200091cf598SEddie Huang 201091cf598SEddie Huang i2c2_pins_a: i2c2 { 202091cf598SEddie Huang pins1 { 203091cf598SEddie Huang pinmux = <MT8173_PIN_43_SDA2__FUNC_SDA2>, 204091cf598SEddie Huang <MT8173_PIN_44_SCL2__FUNC_SCL2>; 205091cf598SEddie Huang bias-disable; 206091cf598SEddie Huang }; 207091cf598SEddie Huang }; 208091cf598SEddie Huang 209091cf598SEddie Huang i2c3_pins_a: i2c3 { 210091cf598SEddie Huang pins1 { 211091cf598SEddie Huang pinmux = <MT8173_PIN_106_SDA3__FUNC_SDA3>, 212091cf598SEddie Huang <MT8173_PIN_107_SCL3__FUNC_SCL3>; 213091cf598SEddie Huang bias-disable; 214091cf598SEddie Huang }; 215091cf598SEddie Huang }; 216091cf598SEddie Huang 217091cf598SEddie Huang i2c4_pins_a: i2c4 { 218091cf598SEddie Huang pins1 { 219091cf598SEddie Huang pinmux = <MT8173_PIN_133_SDA4__FUNC_SDA4>, 220091cf598SEddie Huang <MT8173_PIN_134_SCL4__FUNC_SCL4>; 221091cf598SEddie Huang bias-disable; 222091cf598SEddie Huang }; 223091cf598SEddie Huang }; 224091cf598SEddie Huang 225091cf598SEddie Huang i2c6_pins_a: i2c6 { 226091cf598SEddie Huang pins1 { 227091cf598SEddie Huang pinmux = <MT8173_PIN_100_MSDC2_DAT0__FUNC_SDA5>, 228091cf598SEddie Huang <MT8173_PIN_101_MSDC2_DAT1__FUNC_SCL5>; 229091cf598SEddie Huang bias-disable; 230091cf598SEddie Huang }; 231091cf598SEddie Huang }; 2326769b93cSYingjoe Chen }; 2336769b93cSYingjoe Chen 234c010ff53SSascha Hauer scpsys: scpsys@10006000 { 235c010ff53SSascha Hauer compatible = "mediatek,mt8173-scpsys"; 236c010ff53SSascha Hauer #power-domain-cells = <1>; 237c010ff53SSascha Hauer reg = <0 0x10006000 0 0x1000>; 238c010ff53SSascha Hauer clocks = <&clk26m>, 239e34573c9SJames Liao <&topckgen CLK_TOP_MM_SEL>, 240e34573c9SJames Liao <&topckgen CLK_TOP_VENC_SEL>, 241e34573c9SJames Liao <&topckgen CLK_TOP_VENC_LT_SEL>; 242e34573c9SJames Liao clock-names = "mfg", "mm", "venc", "venc_lt"; 243c010ff53SSascha Hauer infracfg = <&infracfg>; 244c010ff53SSascha Hauer }; 245c010ff53SSascha Hauer 24613421b3eSEddie Huang watchdog: watchdog@10007000 { 24713421b3eSEddie Huang compatible = "mediatek,mt8173-wdt", 24813421b3eSEddie Huang "mediatek,mt6589-wdt"; 24913421b3eSEddie Huang reg = <0 0x10007000 0 0x100>; 25013421b3eSEddie Huang }; 25113421b3eSEddie Huang 252b2c76e27SDaniel Kurtz timer: timer@10008000 { 253b2c76e27SDaniel Kurtz compatible = "mediatek,mt8173-timer", 254b2c76e27SDaniel Kurtz "mediatek,mt6577-timer"; 255b2c76e27SDaniel Kurtz reg = <0 0x10008000 0 0x1000>; 256b2c76e27SDaniel Kurtz interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_LOW>; 257b2c76e27SDaniel Kurtz clocks = <&infracfg CLK_INFRA_CLK_13M>, 258b2c76e27SDaniel Kurtz <&topckgen CLK_TOP_RTC_SEL>; 259b2c76e27SDaniel Kurtz }; 260b2c76e27SDaniel Kurtz 2616cf15fc2SSascha Hauer pwrap: pwrap@1000d000 { 2626cf15fc2SSascha Hauer compatible = "mediatek,mt8173-pwrap"; 2636cf15fc2SSascha Hauer reg = <0 0x1000d000 0 0x1000>; 2646cf15fc2SSascha Hauer reg-names = "pwrap"; 2656cf15fc2SSascha Hauer interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 2666cf15fc2SSascha Hauer resets = <&infracfg MT8173_INFRA_PMIC_WRAP_RST>; 2676cf15fc2SSascha Hauer reset-names = "pwrap"; 2686cf15fc2SSascha Hauer clocks = <&infracfg CLK_INFRA_PMICSPI>, <&infracfg CLK_INFRA_PMICWRAP>; 2696cf15fc2SSascha Hauer clock-names = "spi", "wrap"; 2706cf15fc2SSascha Hauer }; 2716cf15fc2SSascha Hauer 272b3a37248SEddie Huang sysirq: intpol-controller@10200620 { 273b3a37248SEddie Huang compatible = "mediatek,mt8173-sysirq", 274b3a37248SEddie Huang "mediatek,mt6577-sysirq"; 275b3a37248SEddie Huang interrupt-controller; 276b3a37248SEddie Huang #interrupt-cells = <3>; 277b3a37248SEddie Huang interrupt-parent = <&gic>; 278b3a37248SEddie Huang reg = <0 0x10200620 0 0x20>; 279b3a37248SEddie Huang }; 280b3a37248SEddie Huang 2815ff6b3a6SYong Wu iommu: iommu@10205000 { 2825ff6b3a6SYong Wu compatible = "mediatek,mt8173-m4u"; 2835ff6b3a6SYong Wu reg = <0 0x10205000 0 0x1000>; 2845ff6b3a6SYong Wu interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>; 2855ff6b3a6SYong Wu clocks = <&infracfg CLK_INFRA_M4U>; 2865ff6b3a6SYong Wu clock-names = "bclk"; 2875ff6b3a6SYong Wu mediatek,larbs = <&larb0 &larb1 &larb2 2885ff6b3a6SYong Wu &larb3 &larb4 &larb5>; 2895ff6b3a6SYong Wu #iommu-cells = <1>; 2905ff6b3a6SYong Wu }; 2915ff6b3a6SYong Wu 292f2ce7014SSascha Hauer apmixedsys: clock-controller@10209000 { 293f2ce7014SSascha Hauer compatible = "mediatek,mt8173-apmixedsys"; 294f2ce7014SSascha Hauer reg = <0 0x10209000 0 0x1000>; 295f2ce7014SSascha Hauer #clock-cells = <1>; 296f2ce7014SSascha Hauer }; 297f2ce7014SSascha Hauer 298b3a37248SEddie Huang gic: interrupt-controller@10220000 { 299b3a37248SEddie Huang compatible = "arm,gic-400"; 300b3a37248SEddie Huang #interrupt-cells = <3>; 301b3a37248SEddie Huang interrupt-parent = <&gic>; 302b3a37248SEddie Huang interrupt-controller; 303b3a37248SEddie Huang reg = <0 0x10221000 0 0x1000>, 304b3a37248SEddie Huang <0 0x10222000 0 0x2000>, 305b3a37248SEddie Huang <0 0x10224000 0 0x2000>, 306b3a37248SEddie Huang <0 0x10226000 0 0x2000>; 307b3a37248SEddie Huang interrupts = <GIC_PPI 9 308b3a37248SEddie Huang (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 309b3a37248SEddie Huang }; 310b3a37248SEddie Huang 311b3a37248SEddie Huang uart0: serial@11002000 { 312b3a37248SEddie Huang compatible = "mediatek,mt8173-uart", 313b3a37248SEddie Huang "mediatek,mt6577-uart"; 314b3a37248SEddie Huang reg = <0 0x11002000 0 0x400>; 315b3a37248SEddie Huang interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>; 3160e84faa1SSascha Hauer clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>; 3170e84faa1SSascha Hauer clock-names = "baud", "bus"; 318b3a37248SEddie Huang status = "disabled"; 319b3a37248SEddie Huang }; 320b3a37248SEddie Huang 321b3a37248SEddie Huang uart1: serial@11003000 { 322b3a37248SEddie Huang compatible = "mediatek,mt8173-uart", 323b3a37248SEddie Huang "mediatek,mt6577-uart"; 324b3a37248SEddie Huang reg = <0 0x11003000 0 0x400>; 325b3a37248SEddie Huang interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; 3260e84faa1SSascha Hauer clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>; 3270e84faa1SSascha Hauer clock-names = "baud", "bus"; 328b3a37248SEddie Huang status = "disabled"; 329b3a37248SEddie Huang }; 330b3a37248SEddie Huang 331b3a37248SEddie Huang uart2: serial@11004000 { 332b3a37248SEddie Huang compatible = "mediatek,mt8173-uart", 333b3a37248SEddie Huang "mediatek,mt6577-uart"; 334b3a37248SEddie Huang reg = <0 0x11004000 0 0x400>; 335b3a37248SEddie Huang interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; 3360e84faa1SSascha Hauer clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>; 3370e84faa1SSascha Hauer clock-names = "baud", "bus"; 338b3a37248SEddie Huang status = "disabled"; 339b3a37248SEddie Huang }; 340b3a37248SEddie Huang 341b3a37248SEddie Huang uart3: serial@11005000 { 342b3a37248SEddie Huang compatible = "mediatek,mt8173-uart", 343b3a37248SEddie Huang "mediatek,mt6577-uart"; 344b3a37248SEddie Huang reg = <0 0x11005000 0 0x400>; 345b3a37248SEddie Huang interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>; 3460e84faa1SSascha Hauer clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>; 3470e84faa1SSascha Hauer clock-names = "baud", "bus"; 348b3a37248SEddie Huang status = "disabled"; 349b3a37248SEddie Huang }; 350091cf598SEddie Huang 351091cf598SEddie Huang i2c0: i2c@11007000 { 352091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 353091cf598SEddie Huang reg = <0 0x11007000 0 0x70>, 354091cf598SEddie Huang <0 0x11000100 0 0x80>; 355091cf598SEddie Huang interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>; 356091cf598SEddie Huang clock-div = <16>; 357091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C0>, 358091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 359091cf598SEddie Huang clock-names = "main", "dma"; 360091cf598SEddie Huang pinctrl-names = "default"; 361091cf598SEddie Huang pinctrl-0 = <&i2c0_pins_a>; 362091cf598SEddie Huang #address-cells = <1>; 363091cf598SEddie Huang #size-cells = <0>; 364091cf598SEddie Huang status = "disabled"; 365091cf598SEddie Huang }; 366091cf598SEddie Huang 367091cf598SEddie Huang i2c1: i2c@11008000 { 368091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 369091cf598SEddie Huang reg = <0 0x11008000 0 0x70>, 370091cf598SEddie Huang <0 0x11000180 0 0x80>; 371091cf598SEddie Huang interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; 372091cf598SEddie Huang clock-div = <16>; 373091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C1>, 374091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 375091cf598SEddie Huang clock-names = "main", "dma"; 376091cf598SEddie Huang pinctrl-names = "default"; 377091cf598SEddie Huang pinctrl-0 = <&i2c1_pins_a>; 378091cf598SEddie Huang #address-cells = <1>; 379091cf598SEddie Huang #size-cells = <0>; 380091cf598SEddie Huang status = "disabled"; 381091cf598SEddie Huang }; 382091cf598SEddie Huang 383091cf598SEddie Huang i2c2: i2c@11009000 { 384091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 385091cf598SEddie Huang reg = <0 0x11009000 0 0x70>, 386091cf598SEddie Huang <0 0x11000200 0 0x80>; 387091cf598SEddie Huang interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>; 388091cf598SEddie Huang clock-div = <16>; 389091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C2>, 390091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 391091cf598SEddie Huang clock-names = "main", "dma"; 392091cf598SEddie Huang pinctrl-names = "default"; 393091cf598SEddie Huang pinctrl-0 = <&i2c2_pins_a>; 394091cf598SEddie Huang #address-cells = <1>; 395091cf598SEddie Huang #size-cells = <0>; 396091cf598SEddie Huang status = "disabled"; 397091cf598SEddie Huang }; 398091cf598SEddie Huang 399b0c936f5SLeilk Liu spi: spi@1100a000 { 400b0c936f5SLeilk Liu compatible = "mediatek,mt8173-spi"; 401b0c936f5SLeilk Liu #address-cells = <1>; 402b0c936f5SLeilk Liu #size-cells = <0>; 403b0c936f5SLeilk Liu reg = <0 0x1100a000 0 0x1000>; 404b0c936f5SLeilk Liu interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>; 405b0c936f5SLeilk Liu clocks = <&topckgen CLK_TOP_SYSPLL3_D2>, 406b0c936f5SLeilk Liu <&topckgen CLK_TOP_SPI_SEL>, 407b0c936f5SLeilk Liu <&pericfg CLK_PERI_SPI0>; 408b0c936f5SLeilk Liu clock-names = "parent-clk", "sel-clk", "spi-clk"; 409b0c936f5SLeilk Liu status = "disabled"; 410b0c936f5SLeilk Liu }; 411b0c936f5SLeilk Liu 4121ee35c05SYingjoe Chen i2c3: i2c@11010000 { 413091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 414091cf598SEddie Huang reg = <0 0x11010000 0 0x70>, 415091cf598SEddie Huang <0 0x11000280 0 0x80>; 416091cf598SEddie Huang interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>; 417091cf598SEddie Huang clock-div = <16>; 418091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C3>, 419091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 420091cf598SEddie Huang clock-names = "main", "dma"; 421091cf598SEddie Huang pinctrl-names = "default"; 422091cf598SEddie Huang pinctrl-0 = <&i2c3_pins_a>; 423091cf598SEddie Huang #address-cells = <1>; 424091cf598SEddie Huang #size-cells = <0>; 425091cf598SEddie Huang status = "disabled"; 426091cf598SEddie Huang }; 427091cf598SEddie Huang 4281ee35c05SYingjoe Chen i2c4: i2c@11011000 { 429091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 430091cf598SEddie Huang reg = <0 0x11011000 0 0x70>, 431091cf598SEddie Huang <0 0x11000300 0 0x80>; 432091cf598SEddie Huang interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>; 433091cf598SEddie Huang clock-div = <16>; 434091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C4>, 435091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 436091cf598SEddie Huang clock-names = "main", "dma"; 437091cf598SEddie Huang pinctrl-names = "default"; 438091cf598SEddie Huang pinctrl-0 = <&i2c4_pins_a>; 439091cf598SEddie Huang #address-cells = <1>; 440091cf598SEddie Huang #size-cells = <0>; 441091cf598SEddie Huang status = "disabled"; 442091cf598SEddie Huang }; 443091cf598SEddie Huang 4441ee35c05SYingjoe Chen i2c6: i2c@11013000 { 445091cf598SEddie Huang compatible = "mediatek,mt8173-i2c"; 446091cf598SEddie Huang reg = <0 0x11013000 0 0x70>, 447091cf598SEddie Huang <0 0x11000080 0 0x80>; 448091cf598SEddie Huang interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>; 449091cf598SEddie Huang clock-div = <16>; 450091cf598SEddie Huang clocks = <&pericfg CLK_PERI_I2C6>, 451091cf598SEddie Huang <&pericfg CLK_PERI_AP_DMA>; 452091cf598SEddie Huang clock-names = "main", "dma"; 453091cf598SEddie Huang pinctrl-names = "default"; 454091cf598SEddie Huang pinctrl-0 = <&i2c6_pins_a>; 455091cf598SEddie Huang #address-cells = <1>; 456091cf598SEddie Huang #size-cells = <0>; 457091cf598SEddie Huang status = "disabled"; 458091cf598SEddie Huang }; 459c02e0e86SKoro Chen 460c02e0e86SKoro Chen afe: audio-controller@11220000 { 461c02e0e86SKoro Chen compatible = "mediatek,mt8173-afe-pcm"; 462c02e0e86SKoro Chen reg = <0 0x11220000 0 0x1000>; 463c02e0e86SKoro Chen interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_FALLING>; 464c02e0e86SKoro Chen power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>; 465c02e0e86SKoro Chen clocks = <&infracfg CLK_INFRA_AUDIO>, 466c02e0e86SKoro Chen <&topckgen CLK_TOP_AUDIO_SEL>, 467c02e0e86SKoro Chen <&topckgen CLK_TOP_AUD_INTBUS_SEL>, 468c02e0e86SKoro Chen <&topckgen CLK_TOP_APLL1_DIV0>, 469c02e0e86SKoro Chen <&topckgen CLK_TOP_APLL2_DIV0>, 470c02e0e86SKoro Chen <&topckgen CLK_TOP_I2S0_M_SEL>, 471c02e0e86SKoro Chen <&topckgen CLK_TOP_I2S1_M_SEL>, 472c02e0e86SKoro Chen <&topckgen CLK_TOP_I2S2_M_SEL>, 473c02e0e86SKoro Chen <&topckgen CLK_TOP_I2S3_M_SEL>, 474c02e0e86SKoro Chen <&topckgen CLK_TOP_I2S3_B_SEL>; 475c02e0e86SKoro Chen clock-names = "infra_sys_audio_clk", 476c02e0e86SKoro Chen "top_pdn_audio", 477c02e0e86SKoro Chen "top_pdn_aud_intbus", 478c02e0e86SKoro Chen "bck0", 479c02e0e86SKoro Chen "bck1", 480c02e0e86SKoro Chen "i2s0_m", 481c02e0e86SKoro Chen "i2s1_m", 482c02e0e86SKoro Chen "i2s2_m", 483c02e0e86SKoro Chen "i2s3_m", 484c02e0e86SKoro Chen "i2s3_b"; 485c02e0e86SKoro Chen assigned-clocks = <&topckgen CLK_TOP_AUD_1_SEL>, 486c02e0e86SKoro Chen <&topckgen CLK_TOP_AUD_2_SEL>; 487c02e0e86SKoro Chen assigned-clock-parents = <&topckgen CLK_TOP_APLL1>, 488c02e0e86SKoro Chen <&topckgen CLK_TOP_APLL2>; 489c02e0e86SKoro Chen }; 4909719fa5aSEddie Huang 4919719fa5aSEddie Huang mmc0: mmc@11230000 { 4929719fa5aSEddie Huang compatible = "mediatek,mt8173-mmc", 4939719fa5aSEddie Huang "mediatek,mt8135-mmc"; 4949719fa5aSEddie Huang reg = <0 0x11230000 0 0x1000>; 4959719fa5aSEddie Huang interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>; 4969719fa5aSEddie Huang clocks = <&pericfg CLK_PERI_MSDC30_0>, 4979719fa5aSEddie Huang <&topckgen CLK_TOP_MSDC50_0_H_SEL>; 4989719fa5aSEddie Huang clock-names = "source", "hclk"; 4999719fa5aSEddie Huang status = "disabled"; 5009719fa5aSEddie Huang }; 5019719fa5aSEddie Huang 5029719fa5aSEddie Huang mmc1: mmc@11240000 { 5039719fa5aSEddie Huang compatible = "mediatek,mt8173-mmc", 5049719fa5aSEddie Huang "mediatek,mt8135-mmc"; 5059719fa5aSEddie Huang reg = <0 0x11240000 0 0x1000>; 5069719fa5aSEddie Huang interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>; 5079719fa5aSEddie Huang clocks = <&pericfg CLK_PERI_MSDC30_1>, 5089719fa5aSEddie Huang <&topckgen CLK_TOP_AXI_SEL>; 5099719fa5aSEddie Huang clock-names = "source", "hclk"; 5109719fa5aSEddie Huang status = "disabled"; 5119719fa5aSEddie Huang }; 5129719fa5aSEddie Huang 5139719fa5aSEddie Huang mmc2: mmc@11250000 { 5149719fa5aSEddie Huang compatible = "mediatek,mt8173-mmc", 5159719fa5aSEddie Huang "mediatek,mt8135-mmc"; 5169719fa5aSEddie Huang reg = <0 0x11250000 0 0x1000>; 5179719fa5aSEddie Huang interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>; 5189719fa5aSEddie Huang clocks = <&pericfg CLK_PERI_MSDC30_2>, 5199719fa5aSEddie Huang <&topckgen CLK_TOP_AXI_SEL>; 5209719fa5aSEddie Huang clock-names = "source", "hclk"; 5219719fa5aSEddie Huang status = "disabled"; 5229719fa5aSEddie Huang }; 5239719fa5aSEddie Huang 5249719fa5aSEddie Huang mmc3: mmc@11260000 { 5259719fa5aSEddie Huang compatible = "mediatek,mt8173-mmc", 5269719fa5aSEddie Huang "mediatek,mt8135-mmc"; 5279719fa5aSEddie Huang reg = <0 0x11260000 0 0x1000>; 5289719fa5aSEddie Huang interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>; 5299719fa5aSEddie Huang clocks = <&pericfg CLK_PERI_MSDC30_3>, 5309719fa5aSEddie Huang <&topckgen CLK_TOP_MSDC50_2_H_SEL>; 5319719fa5aSEddie Huang clock-names = "source", "hclk"; 5329719fa5aSEddie Huang status = "disabled"; 5339719fa5aSEddie Huang }; 53467e56c56SJames Liao 535bfcce47aSChunfeng Yun usb30: usb@11270000 { 536bfcce47aSChunfeng Yun compatible = "mediatek,mt8173-xhci"; 537bfcce47aSChunfeng Yun reg = <0 0x11270000 0 0x1000>, 538bfcce47aSChunfeng Yun <0 0x11280700 0 0x0100>; 539bfcce47aSChunfeng Yun interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_LOW>; 540bfcce47aSChunfeng Yun power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>; 541bfcce47aSChunfeng Yun clocks = <&topckgen CLK_TOP_USB30_SEL>, 542bfcce47aSChunfeng Yun <&pericfg CLK_PERI_USB0>, 543bfcce47aSChunfeng Yun <&pericfg CLK_PERI_USB1>; 544bfcce47aSChunfeng Yun clock-names = "sys_ck", 545bfcce47aSChunfeng Yun "wakeup_deb_p0", 546bfcce47aSChunfeng Yun "wakeup_deb_p1"; 547bfcce47aSChunfeng Yun phys = <&phy_port0 PHY_TYPE_USB3>, 548bfcce47aSChunfeng Yun <&phy_port1 PHY_TYPE_USB2>; 549bfcce47aSChunfeng Yun mediatek,syscon-wakeup = <&pericfg>; 550bfcce47aSChunfeng Yun status = "okay"; 551bfcce47aSChunfeng Yun }; 552bfcce47aSChunfeng Yun 553bfcce47aSChunfeng Yun u3phy: usb-phy@11290000 { 554bfcce47aSChunfeng Yun compatible = "mediatek,mt8173-u3phy"; 555bfcce47aSChunfeng Yun reg = <0 0x11290000 0 0x800>; 556bfcce47aSChunfeng Yun clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; 557bfcce47aSChunfeng Yun clock-names = "u3phya_ref"; 558bfcce47aSChunfeng Yun #address-cells = <2>; 559bfcce47aSChunfeng Yun #size-cells = <2>; 560bfcce47aSChunfeng Yun ranges; 561bfcce47aSChunfeng Yun status = "okay"; 562bfcce47aSChunfeng Yun 563bfcce47aSChunfeng Yun phy_port0: port@11290800 { 564bfcce47aSChunfeng Yun reg = <0 0x11290800 0 0x800>; 565bfcce47aSChunfeng Yun #phy-cells = <1>; 566bfcce47aSChunfeng Yun status = "okay"; 567bfcce47aSChunfeng Yun }; 568bfcce47aSChunfeng Yun 569bfcce47aSChunfeng Yun phy_port1: port@11291000 { 570bfcce47aSChunfeng Yun reg = <0 0x11291000 0 0x800>; 571bfcce47aSChunfeng Yun #phy-cells = <1>; 572bfcce47aSChunfeng Yun status = "okay"; 573bfcce47aSChunfeng Yun }; 574bfcce47aSChunfeng Yun }; 575bfcce47aSChunfeng Yun 57667e56c56SJames Liao mmsys: clock-controller@14000000 { 57767e56c56SJames Liao compatible = "mediatek,mt8173-mmsys", "syscon"; 57867e56c56SJames Liao reg = <0 0x14000000 0 0x1000>; 57967e56c56SJames Liao #clock-cells = <1>; 58067e56c56SJames Liao }; 58167e56c56SJames Liao 58261aee934SYH Huang pwm0: pwm@1401e000 { 58361aee934SYH Huang compatible = "mediatek,mt8173-disp-pwm", 58461aee934SYH Huang "mediatek,mt6595-disp-pwm"; 58561aee934SYH Huang reg = <0 0x1401e000 0 0x1000>; 58661aee934SYH Huang #pwm-cells = <2>; 58761aee934SYH Huang clocks = <&mmsys CLK_MM_DISP_PWM026M>, 58861aee934SYH Huang <&mmsys CLK_MM_DISP_PWM0MM>; 58961aee934SYH Huang clock-names = "main", "mm"; 59061aee934SYH Huang status = "disabled"; 59161aee934SYH Huang }; 59261aee934SYH Huang 59361aee934SYH Huang pwm1: pwm@1401f000 { 59461aee934SYH Huang compatible = "mediatek,mt8173-disp-pwm", 59561aee934SYH Huang "mediatek,mt6595-disp-pwm"; 59661aee934SYH Huang reg = <0 0x1401f000 0 0x1000>; 59761aee934SYH Huang #pwm-cells = <2>; 59861aee934SYH Huang clocks = <&mmsys CLK_MM_DISP_PWM126M>, 59961aee934SYH Huang <&mmsys CLK_MM_DISP_PWM1MM>; 60061aee934SYH Huang clock-names = "main", "mm"; 60161aee934SYH Huang status = "disabled"; 60261aee934SYH Huang }; 60361aee934SYH Huang 6045ff6b3a6SYong Wu larb0: larb@14021000 { 6055ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6065ff6b3a6SYong Wu reg = <0 0x14021000 0 0x1000>; 6075ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6085ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 6095ff6b3a6SYong Wu clocks = <&mmsys CLK_MM_SMI_LARB0>, 6105ff6b3a6SYong Wu <&mmsys CLK_MM_SMI_LARB0>; 6115ff6b3a6SYong Wu clock-names = "apb", "smi"; 6125ff6b3a6SYong Wu }; 6135ff6b3a6SYong Wu 6145ff6b3a6SYong Wu smi_common: smi@14022000 { 6155ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-common"; 6165ff6b3a6SYong Wu reg = <0 0x14022000 0 0x1000>; 6175ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 6185ff6b3a6SYong Wu clocks = <&mmsys CLK_MM_SMI_COMMON>, 6195ff6b3a6SYong Wu <&mmsys CLK_MM_SMI_COMMON>; 6205ff6b3a6SYong Wu clock-names = "apb", "smi"; 6215ff6b3a6SYong Wu }; 6225ff6b3a6SYong Wu 6235ff6b3a6SYong Wu larb4: larb@14027000 { 6245ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6255ff6b3a6SYong Wu reg = <0 0x14027000 0 0x1000>; 6265ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6275ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 6285ff6b3a6SYong Wu clocks = <&mmsys CLK_MM_SMI_LARB4>, 6295ff6b3a6SYong Wu <&mmsys CLK_MM_SMI_LARB4>; 6305ff6b3a6SYong Wu clock-names = "apb", "smi"; 6315ff6b3a6SYong Wu }; 6325ff6b3a6SYong Wu 63367e56c56SJames Liao imgsys: clock-controller@15000000 { 63467e56c56SJames Liao compatible = "mediatek,mt8173-imgsys", "syscon"; 63567e56c56SJames Liao reg = <0 0x15000000 0 0x1000>; 63667e56c56SJames Liao #clock-cells = <1>; 63767e56c56SJames Liao }; 63867e56c56SJames Liao 6395ff6b3a6SYong Wu larb2: larb@15001000 { 6405ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6415ff6b3a6SYong Wu reg = <0 0x15001000 0 0x1000>; 6425ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6435ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_ISP>; 6445ff6b3a6SYong Wu clocks = <&imgsys CLK_IMG_LARB2_SMI>, 6455ff6b3a6SYong Wu <&imgsys CLK_IMG_LARB2_SMI>; 6465ff6b3a6SYong Wu clock-names = "apb", "smi"; 6475ff6b3a6SYong Wu }; 6485ff6b3a6SYong Wu 64967e56c56SJames Liao vdecsys: clock-controller@16000000 { 65067e56c56SJames Liao compatible = "mediatek,mt8173-vdecsys", "syscon"; 65167e56c56SJames Liao reg = <0 0x16000000 0 0x1000>; 65267e56c56SJames Liao #clock-cells = <1>; 65367e56c56SJames Liao }; 65467e56c56SJames Liao 6555ff6b3a6SYong Wu larb1: larb@16010000 { 6565ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6575ff6b3a6SYong Wu reg = <0 0x16010000 0 0x1000>; 6585ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6595ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>; 6605ff6b3a6SYong Wu clocks = <&vdecsys CLK_VDEC_CKEN>, 6615ff6b3a6SYong Wu <&vdecsys CLK_VDEC_LARB_CKEN>; 6625ff6b3a6SYong Wu clock-names = "apb", "smi"; 6635ff6b3a6SYong Wu }; 6645ff6b3a6SYong Wu 66567e56c56SJames Liao vencsys: clock-controller@18000000 { 66667e56c56SJames Liao compatible = "mediatek,mt8173-vencsys", "syscon"; 66767e56c56SJames Liao reg = <0 0x18000000 0 0x1000>; 66867e56c56SJames Liao #clock-cells = <1>; 66967e56c56SJames Liao }; 67067e56c56SJames Liao 6715ff6b3a6SYong Wu larb3: larb@18001000 { 6725ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6735ff6b3a6SYong Wu reg = <0 0x18001000 0 0x1000>; 6745ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6755ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC>; 6765ff6b3a6SYong Wu clocks = <&vencsys CLK_VENC_CKE1>, 6775ff6b3a6SYong Wu <&vencsys CLK_VENC_CKE0>; 6785ff6b3a6SYong Wu clock-names = "apb", "smi"; 6795ff6b3a6SYong Wu }; 6805ff6b3a6SYong Wu 68167e56c56SJames Liao vencltsys: clock-controller@19000000 { 68267e56c56SJames Liao compatible = "mediatek,mt8173-vencltsys", "syscon"; 68367e56c56SJames Liao reg = <0 0x19000000 0 0x1000>; 68467e56c56SJames Liao #clock-cells = <1>; 68567e56c56SJames Liao }; 6865ff6b3a6SYong Wu 6875ff6b3a6SYong Wu larb5: larb@19001000 { 6885ff6b3a6SYong Wu compatible = "mediatek,mt8173-smi-larb"; 6895ff6b3a6SYong Wu reg = <0 0x19001000 0 0x1000>; 6905ff6b3a6SYong Wu mediatek,smi = <&smi_common>; 6915ff6b3a6SYong Wu power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC_LT>; 6925ff6b3a6SYong Wu clocks = <&vencltsys CLK_VENCLT_CKE1>, 6935ff6b3a6SYong Wu <&vencltsys CLK_VENCLT_CKE0>; 6945ff6b3a6SYong Wu clock-names = "apb", "smi"; 6955ff6b3a6SYong Wu }; 696b3a37248SEddie Huang }; 697b3a37248SEddie Huang}; 698b3a37248SEddie Huang 699