1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 2 /* 3 * Copyright (c) 2015 MediaTek Inc. 3 * Copyright (c) 2015 MediaTek Inc. 4 * Copyright (C) 2023 Collabora Ltd. 4 * Copyright (C) 2023 Collabora Ltd. 5 * Authors: Mars.C <mars.cheng@mediatek.com> 5 * Authors: Mars.C <mars.cheng@mediatek.com> 6 * AngeloGioacchino Del Regno <angelog 6 * AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 7 */ 7 */ 8 8 9 #include <dt-bindings/interrupt-controller/irq 9 #include <dt-bindings/interrupt-controller/irq.h> 10 #include <dt-bindings/interrupt-controller/arm 10 #include <dt-bindings/interrupt-controller/arm-gic.h> 11 #include <dt-bindings/clock/mediatek,mt6795-cl 11 #include <dt-bindings/clock/mediatek,mt6795-clk.h> 12 #include <dt-bindings/gce/mediatek,mt6795-gce. 12 #include <dt-bindings/gce/mediatek,mt6795-gce.h> 13 #include <dt-bindings/memory/mt6795-larb-port. 13 #include <dt-bindings/memory/mt6795-larb-port.h> 14 #include <dt-bindings/pinctrl/mt6795-pinfunc.h 14 #include <dt-bindings/pinctrl/mt6795-pinfunc.h> 15 #include <dt-bindings/power/mt6795-power.h> 15 #include <dt-bindings/power/mt6795-power.h> 16 #include <dt-bindings/reset/mediatek,mt6795-re 16 #include <dt-bindings/reset/mediatek,mt6795-resets.h> 17 17 18 / { 18 / { 19 compatible = "mediatek,mt6795"; 19 compatible = "mediatek,mt6795"; 20 interrupt-parent = <&sysirq>; 20 interrupt-parent = <&sysirq>; 21 #address-cells = <2>; 21 #address-cells = <2>; 22 #size-cells = <2>; 22 #size-cells = <2>; 23 23 24 aliases { 24 aliases { 25 ovl0 = &ovl0; 25 ovl0 = &ovl0; 26 ovl1 = &ovl1; 26 ovl1 = &ovl1; 27 rdma0 = &rdma0; 27 rdma0 = &rdma0; 28 rdma1 = &rdma1; 28 rdma1 = &rdma1; 29 rdma2 = &rdma2; 29 rdma2 = &rdma2; 30 wdma0 = &wdma0; 30 wdma0 = &wdma0; 31 wdma1 = &wdma1; 31 wdma1 = &wdma1; 32 color0 = &color0; 32 color0 = &color0; 33 color1 = &color1; 33 color1 = &color1; 34 split0 = &split0; 34 split0 = &split0; 35 split1 = &split1; 35 split1 = &split1; 36 dpi0 = &dpi0; 36 dpi0 = &dpi0; 37 dsi0 = &dsi0; 37 dsi0 = &dsi0; 38 dsi1 = &dsi1; 38 dsi1 = &dsi1; 39 }; 39 }; 40 40 41 psci { 41 psci { 42 compatible = "arm,psci-0.2"; 42 compatible = "arm,psci-0.2"; 43 method = "smc"; 43 method = "smc"; 44 }; 44 }; 45 45 46 cpus { 46 cpus { 47 #address-cells = <1>; 47 #address-cells = <1>; 48 #size-cells = <0>; 48 #size-cells = <0>; 49 49 50 cpu0: cpu@0 { 50 cpu0: cpu@0 { 51 device_type = "cpu"; 51 device_type = "cpu"; 52 compatible = "arm,cort 52 compatible = "arm,cortex-a53"; 53 enable-method = "psci" 53 enable-method = "psci"; 54 reg = <0x000>; 54 reg = <0x000>; 55 cci-control-port = <&c 55 cci-control-port = <&cci_control2>; 56 next-level-cache = <&l 56 next-level-cache = <&l2_0>; 57 }; 57 }; 58 58 59 cpu1: cpu@1 { 59 cpu1: cpu@1 { 60 device_type = "cpu"; 60 device_type = "cpu"; 61 compatible = "arm,cort 61 compatible = "arm,cortex-a53"; 62 enable-method = "psci" 62 enable-method = "psci"; 63 reg = <0x001>; 63 reg = <0x001>; 64 cci-control-port = <&c 64 cci-control-port = <&cci_control2>; 65 i-cache-size = <32768> 65 i-cache-size = <32768>; 66 i-cache-line-size = <6 66 i-cache-line-size = <64>; 67 i-cache-sets = <256>; 67 i-cache-sets = <256>; 68 d-cache-size = <32768> 68 d-cache-size = <32768>; 69 d-cache-line-size = <6 69 d-cache-line-size = <64>; 70 d-cache-sets = <128>; 70 d-cache-sets = <128>; 71 next-level-cache = <&l 71 next-level-cache = <&l2_0>; 72 }; 72 }; 73 73 74 cpu2: cpu@2 { 74 cpu2: cpu@2 { 75 device_type = "cpu"; 75 device_type = "cpu"; 76 compatible = "arm,cort 76 compatible = "arm,cortex-a53"; 77 enable-method = "psci" 77 enable-method = "psci"; 78 reg = <0x002>; 78 reg = <0x002>; 79 cci-control-port = <&c 79 cci-control-port = <&cci_control2>; 80 i-cache-size = <32768> 80 i-cache-size = <32768>; 81 i-cache-line-size = <6 81 i-cache-line-size = <64>; 82 i-cache-sets = <256>; 82 i-cache-sets = <256>; 83 d-cache-size = <32768> 83 d-cache-size = <32768>; 84 d-cache-line-size = <6 84 d-cache-line-size = <64>; 85 d-cache-sets = <128>; 85 d-cache-sets = <128>; 86 next-level-cache = <&l 86 next-level-cache = <&l2_0>; 87 }; 87 }; 88 88 89 cpu3: cpu@3 { 89 cpu3: cpu@3 { 90 device_type = "cpu"; 90 device_type = "cpu"; 91 compatible = "arm,cort 91 compatible = "arm,cortex-a53"; 92 enable-method = "psci" 92 enable-method = "psci"; 93 reg = <0x003>; 93 reg = <0x003>; 94 cci-control-port = <&c 94 cci-control-port = <&cci_control2>; 95 i-cache-size = <32768> 95 i-cache-size = <32768>; 96 i-cache-line-size = <6 96 i-cache-line-size = <64>; 97 i-cache-sets = <256>; 97 i-cache-sets = <256>; 98 d-cache-size = <32768> 98 d-cache-size = <32768>; 99 d-cache-line-size = <6 99 d-cache-line-size = <64>; 100 d-cache-sets = <128>; 100 d-cache-sets = <128>; 101 next-level-cache = <&l 101 next-level-cache = <&l2_0>; 102 }; 102 }; 103 103 104 cpu4: cpu@100 { 104 cpu4: cpu@100 { 105 device_type = "cpu"; 105 device_type = "cpu"; 106 compatible = "arm,cort 106 compatible = "arm,cortex-a53"; 107 enable-method = "psci" 107 enable-method = "psci"; 108 reg = <0x100>; 108 reg = <0x100>; 109 cci-control-port = <&c 109 cci-control-port = <&cci_control1>; 110 i-cache-size = <32768> 110 i-cache-size = <32768>; 111 i-cache-line-size = <6 111 i-cache-line-size = <64>; 112 i-cache-sets = <256>; 112 i-cache-sets = <256>; 113 d-cache-size = <32768> 113 d-cache-size = <32768>; 114 d-cache-line-size = <6 114 d-cache-line-size = <64>; 115 d-cache-sets = <128>; 115 d-cache-sets = <128>; 116 next-level-cache = <&l 116 next-level-cache = <&l2_1>; 117 }; 117 }; 118 118 119 cpu5: cpu@101 { 119 cpu5: cpu@101 { 120 device_type = "cpu"; 120 device_type = "cpu"; 121 compatible = "arm,cort 121 compatible = "arm,cortex-a53"; 122 enable-method = "psci" 122 enable-method = "psci"; 123 reg = <0x101>; 123 reg = <0x101>; 124 cci-control-port = <&c 124 cci-control-port = <&cci_control1>; 125 i-cache-size = <32768> 125 i-cache-size = <32768>; 126 i-cache-line-size = <6 126 i-cache-line-size = <64>; 127 i-cache-sets = <256>; 127 i-cache-sets = <256>; 128 d-cache-size = <32768> 128 d-cache-size = <32768>; 129 d-cache-line-size = <6 129 d-cache-line-size = <64>; 130 d-cache-sets = <128>; 130 d-cache-sets = <128>; 131 next-level-cache = <&l 131 next-level-cache = <&l2_1>; 132 }; 132 }; 133 133 134 cpu6: cpu@102 { 134 cpu6: cpu@102 { 135 device_type = "cpu"; 135 device_type = "cpu"; 136 compatible = "arm,cort 136 compatible = "arm,cortex-a53"; 137 enable-method = "psci" 137 enable-method = "psci"; 138 reg = <0x102>; 138 reg = <0x102>; 139 cci-control-port = <&c 139 cci-control-port = <&cci_control1>; 140 i-cache-size = <32768> 140 i-cache-size = <32768>; 141 i-cache-line-size = <6 141 i-cache-line-size = <64>; 142 i-cache-sets = <256>; 142 i-cache-sets = <256>; 143 d-cache-size = <32768> 143 d-cache-size = <32768>; 144 d-cache-line-size = <6 144 d-cache-line-size = <64>; 145 d-cache-sets = <128>; 145 d-cache-sets = <128>; 146 next-level-cache = <&l 146 next-level-cache = <&l2_1>; 147 }; 147 }; 148 148 149 cpu7: cpu@103 { 149 cpu7: cpu@103 { 150 device_type = "cpu"; 150 device_type = "cpu"; 151 compatible = "arm,cort 151 compatible = "arm,cortex-a53"; 152 enable-method = "psci" 152 enable-method = "psci"; 153 reg = <0x103>; 153 reg = <0x103>; 154 cci-control-port = <&c 154 cci-control-port = <&cci_control1>; 155 i-cache-size = <32768> 155 i-cache-size = <32768>; 156 i-cache-line-size = <6 156 i-cache-line-size = <64>; 157 i-cache-sets = <256>; 157 i-cache-sets = <256>; 158 d-cache-size = <32768> 158 d-cache-size = <32768>; 159 d-cache-line-size = <6 159 d-cache-line-size = <64>; 160 d-cache-sets = <128>; 160 d-cache-sets = <128>; 161 next-level-cache = <&l 161 next-level-cache = <&l2_1>; 162 }; 162 }; 163 163 164 cpu-map { 164 cpu-map { 165 cluster0 { 165 cluster0 { 166 core0 { 166 core0 { 167 cpu = 167 cpu = <&cpu0>; 168 }; 168 }; 169 169 170 core1 { 170 core1 { 171 cpu = 171 cpu = <&cpu1>; 172 }; 172 }; 173 173 174 core2 { 174 core2 { 175 cpu = 175 cpu = <&cpu2>; 176 }; 176 }; 177 177 178 core3 { 178 core3 { 179 cpu = 179 cpu = <&cpu3>; 180 }; 180 }; 181 }; 181 }; 182 182 183 cluster1 { 183 cluster1 { 184 core0 { 184 core0 { 185 cpu = 185 cpu = <&cpu4>; 186 }; 186 }; 187 187 188 core1 { 188 core1 { 189 cpu = 189 cpu = <&cpu5>; 190 }; 190 }; 191 191 192 core2 { 192 core2 { 193 cpu = 193 cpu = <&cpu6>; 194 }; 194 }; 195 195 196 core3 { 196 core3 { 197 cpu = 197 cpu = <&cpu7>; 198 }; 198 }; 199 }; 199 }; 200 }; 200 }; 201 201 202 l2_0: l2-cache0 { 202 l2_0: l2-cache0 { 203 compatible = "cache"; 203 compatible = "cache"; 204 cache-level = <2>; 204 cache-level = <2>; 205 cache-size = <1048576> 205 cache-size = <1048576>; 206 cache-line-size = <64> 206 cache-line-size = <64>; 207 cache-sets = <1024>; 207 cache-sets = <1024>; 208 cache-unified; 208 cache-unified; 209 }; 209 }; 210 210 211 l2_1: l2-cache1 { 211 l2_1: l2-cache1 { 212 compatible = "cache"; 212 compatible = "cache"; 213 cache-level = <2>; 213 cache-level = <2>; 214 cache-size = <1048576> 214 cache-size = <1048576>; 215 cache-line-size = <64> 215 cache-line-size = <64>; 216 cache-sets = <1024>; 216 cache-sets = <1024>; 217 cache-unified; 217 cache-unified; 218 }; 218 }; 219 }; 219 }; 220 220 221 clk26m: oscillator-26m { 221 clk26m: oscillator-26m { 222 compatible = "fixed-clock"; 222 compatible = "fixed-clock"; 223 #clock-cells = <0>; 223 #clock-cells = <0>; 224 clock-frequency = <26000000>; 224 clock-frequency = <26000000>; 225 clock-output-names = "clk26m"; 225 clock-output-names = "clk26m"; 226 }; 226 }; 227 227 228 clk32k: oscillator-32k { 228 clk32k: oscillator-32k { 229 compatible = "fixed-clock"; 229 compatible = "fixed-clock"; 230 #clock-cells = <0>; 230 #clock-cells = <0>; 231 clock-frequency = <32000>; 231 clock-frequency = <32000>; 232 clock-output-names = "clk32k"; 232 clock-output-names = "clk32k"; 233 }; 233 }; 234 234 235 system_clk: dummy13m { 235 system_clk: dummy13m { 236 compatible = "fixed-clock"; 236 compatible = "fixed-clock"; 237 clock-frequency = <13000000>; 237 clock-frequency = <13000000>; 238 #clock-cells = <0>; 238 #clock-cells = <0>; 239 }; 239 }; 240 240 241 pmu { 241 pmu { 242 compatible = "arm,cortex-a53-p 242 compatible = "arm,cortex-a53-pmu"; 243 interrupts = <GIC_SPI 8 IRQ_T 243 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_LOW>, 244 <GIC_SPI 9 IRQ_T 244 <GIC_SPI 9 IRQ_TYPE_LEVEL_LOW>, 245 <GIC_SPI 10 IRQ_T 245 <GIC_SPI 10 IRQ_TYPE_LEVEL_LOW>, 246 <GIC_SPI 11 IRQ_T 246 <GIC_SPI 11 IRQ_TYPE_LEVEL_LOW>; 247 interrupt-affinity = <&cpu0>, 247 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 248 }; 248 }; 249 249 250 timer { 250 timer { 251 compatible = "arm,armv8-timer" 251 compatible = "arm,armv8-timer"; 252 interrupt-parent = <&gic>; 252 interrupt-parent = <&gic>; 253 interrupts = <GIC_PPI 13 253 interrupts = <GIC_PPI 13 254 (GIC_CPU_MASK_SIM 254 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 255 <GIC_PPI 14 255 <GIC_PPI 14 256 (GIC_CPU_MASK_SIM 256 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 257 <GIC_PPI 11 257 <GIC_PPI 11 258 (GIC_CPU_MASK_SIM 258 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, 259 <GIC_PPI 10 259 <GIC_PPI 10 260 (GIC_CPU_MASK_SIM 260 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; 261 }; 261 }; 262 262 263 soc { 263 soc { 264 #address-cells = <2>; 264 #address-cells = <2>; 265 #size-cells = <2>; 265 #size-cells = <2>; 266 compatible = "simple-bus"; 266 compatible = "simple-bus"; 267 ranges; 267 ranges; 268 268 269 topckgen: syscon@10000000 { 269 topckgen: syscon@10000000 { 270 compatible = "mediatek 270 compatible = "mediatek,mt6795-topckgen", "syscon"; 271 reg = <0 0x10000000 0 271 reg = <0 0x10000000 0 0x1000>; 272 #clock-cells = <1>; 272 #clock-cells = <1>; 273 }; 273 }; 274 274 275 infracfg: syscon@10001000 { 275 infracfg: syscon@10001000 { 276 compatible = "mediatek 276 compatible = "mediatek,mt6795-infracfg", "syscon"; 277 reg = <0 0x10001000 0 277 reg = <0 0x10001000 0 0x1000>; 278 #clock-cells = <1>; 278 #clock-cells = <1>; 279 #reset-cells = <1>; 279 #reset-cells = <1>; 280 }; 280 }; 281 281 282 pericfg: syscon@10003000 { 282 pericfg: syscon@10003000 { 283 compatible = "mediatek 283 compatible = "mediatek,mt6795-pericfg", "syscon"; 284 reg = <0 0x10003000 0 284 reg = <0 0x10003000 0 0x1000>; 285 #clock-cells = <1>; 285 #clock-cells = <1>; 286 #reset-cells = <1>; 286 #reset-cells = <1>; 287 }; 287 }; 288 288 289 scpsys: syscon@10006000 { 289 scpsys: syscon@10006000 { 290 compatible = "syscon", 290 compatible = "syscon", "simple-mfd"; 291 reg = <0 0x10006000 0 291 reg = <0 0x10006000 0 0x1000>; 292 #power-domain-cells = 292 #power-domain-cells = <1>; 293 293 294 /* System Power Manage 294 /* System Power Manager */ 295 spm: power-controller 295 spm: power-controller { 296 compatible = " 296 compatible = "mediatek,mt6795-power-controller"; 297 #address-cells 297 #address-cells = <1>; 298 #size-cells = 298 #size-cells = <0>; 299 #power-domain- 299 #power-domain-cells = <1>; 300 300 301 /* power domai 301 /* power domains of the SoC */ 302 power-domain@M 302 power-domain@MT6795_POWER_DOMAIN_VDEC { 303 reg = 303 reg = <MT6795_POWER_DOMAIN_VDEC>; 304 clocks 304 clocks = <&topckgen CLK_TOP_MM_SEL>; 305 clock- 305 clock-names = "mm"; 306 #power 306 #power-domain-cells = <0>; 307 }; 307 }; 308 power-domain@M 308 power-domain@MT6795_POWER_DOMAIN_VENC { 309 reg = 309 reg = <MT6795_POWER_DOMAIN_VENC>; 310 clocks 310 clocks = <&topckgen CLK_TOP_MM_SEL>, 311 311 <&topckgen CLK_TOP_VENC_SEL>; 312 clock- 312 clock-names = "mm", "venc"; 313 #power 313 #power-domain-cells = <0>; 314 }; 314 }; 315 power-domain@M 315 power-domain@MT6795_POWER_DOMAIN_ISP { 316 reg = 316 reg = <MT6795_POWER_DOMAIN_ISP>; 317 clocks 317 clocks = <&topckgen CLK_TOP_MM_SEL>; 318 clock- 318 clock-names = "mm"; 319 #power 319 #power-domain-cells = <0>; 320 }; 320 }; 321 321 322 power-domain@M 322 power-domain@MT6795_POWER_DOMAIN_MM { 323 reg = 323 reg = <MT6795_POWER_DOMAIN_MM>; 324 clocks 324 clocks = <&topckgen CLK_TOP_MM_SEL>; 325 clock- 325 clock-names = "mm"; 326 #power 326 #power-domain-cells = <0>; 327 mediat 327 mediatek,infracfg = <&infracfg>; 328 }; 328 }; 329 329 330 power-domain@M 330 power-domain@MT6795_POWER_DOMAIN_MJC { 331 reg = 331 reg = <MT6795_POWER_DOMAIN_MJC>; 332 clocks 332 clocks = <&topckgen CLK_TOP_MM_SEL>, 333 333 <&topckgen CLK_TOP_MJC_SEL>; 334 clock- 334 clock-names = "mm", "mjc"; 335 #power 335 #power-domain-cells = <0>; 336 }; 336 }; 337 337 338 power-domain@M 338 power-domain@MT6795_POWER_DOMAIN_AUDIO { 339 reg = 339 reg = <MT6795_POWER_DOMAIN_AUDIO>; 340 #power 340 #power-domain-cells = <0>; 341 }; 341 }; 342 342 343 mfg_async: pow 343 mfg_async: power-domain@MT6795_POWER_DOMAIN_MFG_ASYNC { 344 reg = 344 reg = <MT6795_POWER_DOMAIN_MFG_ASYNC>; 345 clocks 345 clocks = <&clk26m>; 346 clock- 346 clock-names = "mfg"; 347 #addre 347 #address-cells = <1>; 348 #size- 348 #size-cells = <0>; 349 #power 349 #power-domain-cells = <1>; 350 350 351 power- 351 power-domain@MT6795_POWER_DOMAIN_MFG_2D { 352 352 reg = <MT6795_POWER_DOMAIN_MFG_2D>; 353 353 #address-cells = <1>; 354 354 #size-cells = <0>; 355 355 #power-domain-cells = <1>; 356 356 357 357 power-domain@MT6795_POWER_DOMAIN_MFG { 358 358 reg = <MT6795_POWER_DOMAIN_MFG>; 359 359 #power-domain-cells = <0>; 360 360 mediatek,infracfg = <&infracfg>; 361 361 }; 362 }; 362 }; 363 }; 363 }; 364 }; 364 }; 365 }; 365 }; 366 366 367 pio: pinctrl@10005000 { 367 pio: pinctrl@10005000 { 368 compatible = "mediatek 368 compatible = "mediatek,mt6795-pinctrl"; 369 reg = <0 0x10005000 0 369 reg = <0 0x10005000 0 0x1000>, <0 0x1000b000 0 0x1000>; 370 reg-names = "base", "e 370 reg-names = "base", "eint"; 371 interrupts = <GIC_SPI 371 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 372 <GIC_SPI 372 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 373 gpio-controller; 373 gpio-controller; 374 #gpio-cells = <2>; 374 #gpio-cells = <2>; 375 gpio-ranges = <&pio 0 375 gpio-ranges = <&pio 0 0 196>; 376 interrupt-controller; 376 interrupt-controller; 377 #interrupt-cells = <2> 377 #interrupt-cells = <2>; 378 }; 378 }; 379 379 380 watchdog: watchdog@10007000 { 380 watchdog: watchdog@10007000 { 381 compatible = "mediatek 381 compatible = "mediatek,mt6795-wdt"; 382 reg = <0 0x10007000 0 382 reg = <0 0x10007000 0 0x100>; 383 interrupts = <GIC_SPI 383 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>; 384 #reset-cells = <1>; 384 #reset-cells = <1>; 385 timeout-sec = <20>; 385 timeout-sec = <20>; 386 }; 386 }; 387 387 388 timer: timer@10008000 { 388 timer: timer@10008000 { 389 compatible = "mediatek 389 compatible = "mediatek,mt6795-timer", 390 "mediatek 390 "mediatek,mt6577-timer"; 391 reg = <0 0x10008000 0 391 reg = <0 0x10008000 0 0x1000>; 392 interrupts = <GIC_SPI 392 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>; 393 clocks = <&system_clk> 393 clocks = <&system_clk>, <&clk32k>; 394 }; 394 }; 395 395 396 pwrap: pwrap@1000d000 { 396 pwrap: pwrap@1000d000 { 397 compatible = "mediatek 397 compatible = "mediatek,mt6795-pwrap"; 398 reg = <0 0x1000d000 0 398 reg = <0 0x1000d000 0 0x1000>; 399 reg-names = "pwrap"; 399 reg-names = "pwrap"; 400 interrupts = <GIC_SPI 400 interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; 401 resets = <&infracfg MT 401 resets = <&infracfg MT6795_INFRA_RST0_PMIC_WRAP_RST>; 402 reset-names = "pwrap"; 402 reset-names = "pwrap"; 403 clocks = <&topckgen CL 403 clocks = <&topckgen CLK_TOP_PMICSPI_SEL>, <&clk26m>; 404 clock-names = "spi", " 404 clock-names = "spi", "wrap"; 405 }; 405 }; 406 406 407 sysirq: intpol-controller@1020 407 sysirq: intpol-controller@10200620 { 408 compatible = "mediatek 408 compatible = "mediatek,mt6795-sysirq", 409 "mediatek 409 "mediatek,mt6577-sysirq"; 410 interrupt-controller; 410 interrupt-controller; 411 #interrupt-cells = <3> 411 #interrupt-cells = <3>; 412 interrupt-parent = <&g 412 interrupt-parent = <&gic>; 413 reg = <0 0x10200620 0 413 reg = <0 0x10200620 0 0x20>; 414 }; 414 }; 415 415 416 systimer: timer@10200670 { 416 systimer: timer@10200670 { 417 compatible = "mediatek 417 compatible = "mediatek,mt6795-systimer"; 418 reg = <0 0x10200670 0 418 reg = <0 0x10200670 0 0x10>; 419 interrupts = <GIC_SPI 419 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 420 clocks = <&system_clk> 420 clocks = <&system_clk>; 421 clock-names = "clk13m" 421 clock-names = "clk13m"; 422 }; 422 }; 423 423 424 iommu: iommu@10205000 { 424 iommu: iommu@10205000 { 425 compatible = "mediatek 425 compatible = "mediatek,mt6795-m4u"; 426 reg = <0 0x10205000 0 426 reg = <0 0x10205000 0 0x1000>; 427 clocks = <&infracfg CL 427 clocks = <&infracfg CLK_INFRA_M4U>; 428 clock-names = "bclk"; 428 clock-names = "bclk"; 429 interrupts = <GIC_SPI 429 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_LOW>; 430 mediatek,larbs = <&lar 430 mediatek,larbs = <&larb0 &larb1 &larb2 &larb3>; 431 power-domains = <&spm 431 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 432 #iommu-cells = <1>; 432 #iommu-cells = <1>; 433 }; 433 }; 434 434 435 apmixedsys: syscon@10209000 { 435 apmixedsys: syscon@10209000 { 436 compatible = "mediatek 436 compatible = "mediatek,mt6795-apmixedsys", "syscon"; 437 reg = <0 0x10209000 0 437 reg = <0 0x10209000 0 0x1000>; 438 #clock-cells = <1>; 438 #clock-cells = <1>; 439 }; 439 }; 440 440 441 fhctl: clock-controller@10209f 441 fhctl: clock-controller@10209f00 { 442 compatible = "mediatek 442 compatible = "mediatek,mt6795-fhctl"; 443 reg = <0 0x10209f00 0 443 reg = <0 0x10209f00 0 0x100>; 444 status = "disabled"; 444 status = "disabled"; 445 }; 445 }; 446 446 447 gce: mailbox@10212000 { 447 gce: mailbox@10212000 { 448 compatible = "mediatek 448 compatible = "mediatek,mt6795-gce", "mediatek,mt8173-gce"; 449 reg = <0 0x10212000 0 449 reg = <0 0x10212000 0 0x1000>; 450 interrupts = <GIC_SPI 450 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>; 451 clocks = <&infracfg CL 451 clocks = <&infracfg CLK_INFRA_GCE>; 452 clock-names = "gce"; 452 clock-names = "gce"; 453 #mbox-cells = <2>; 453 #mbox-cells = <2>; 454 }; 454 }; 455 455 456 mipi_tx0: dsi-phy@10215000 { 456 mipi_tx0: dsi-phy@10215000 { 457 compatible = "mediatek 457 compatible = "mediatek,mt8173-mipi-tx"; 458 reg = <0 0x10215000 0 458 reg = <0 0x10215000 0 0x1000>; 459 clocks = <&clk26m>; 459 clocks = <&clk26m>; 460 clock-output-names = " 460 clock-output-names = "mipi_tx0_pll"; 461 #clock-cells = <0>; 461 #clock-cells = <0>; 462 #phy-cells = <0>; 462 #phy-cells = <0>; 463 status = "disabled"; 463 status = "disabled"; 464 }; 464 }; 465 465 466 mipi_tx1: dsi-phy@10216000 { 466 mipi_tx1: dsi-phy@10216000 { 467 compatible = "mediatek 467 compatible = "mediatek,mt8173-mipi-tx"; 468 reg = <0 0x10216000 0 468 reg = <0 0x10216000 0 0x1000>; 469 clocks = <&clk26m>; 469 clocks = <&clk26m>; 470 clock-output-names = " 470 clock-output-names = "mipi_tx1_pll"; 471 #clock-cells = <0>; 471 #clock-cells = <0>; 472 #phy-cells = <0>; 472 #phy-cells = <0>; 473 status = "disabled"; 473 status = "disabled"; 474 }; 474 }; 475 475 476 gic: interrupt-controller@1022 476 gic: interrupt-controller@10221000 { 477 compatible = "arm,gic- 477 compatible = "arm,gic-400"; 478 #interrupt-cells = <3> 478 #interrupt-cells = <3>; 479 interrupt-parent = <&g 479 interrupt-parent = <&gic>; 480 interrupt-controller; 480 interrupt-controller; 481 reg = <0 0x10221000 0 481 reg = <0 0x10221000 0 0x1000>, 482 <0 0x10222000 0 482 <0 0x10222000 0 0x2000>, 483 <0 0x10224000 0 483 <0 0x10224000 0 0x2000>, 484 <0 0x10226000 0 484 <0 0x10226000 0 0x2000>; 485 interrupts = <GIC_PPI 485 interrupts = <GIC_PPI 9 486 (GIC_CPU_MASK_ 486 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 487 }; 487 }; 488 488 489 cci: cci@10390000 { 489 cci: cci@10390000 { 490 compatible = "arm,cci- 490 compatible = "arm,cci-400"; 491 #address-cells = <1>; 491 #address-cells = <1>; 492 #size-cells = <1>; 492 #size-cells = <1>; 493 reg = <0 0x10390000 0 493 reg = <0 0x10390000 0 0x1000>; 494 ranges = <0 0 0x103900 494 ranges = <0 0 0x10390000 0x10000>; 495 495 496 cci_control0: slave-if 496 cci_control0: slave-if@1000 { 497 compatible = " 497 compatible = "arm,cci-400-ctrl-if"; 498 interface-type 498 interface-type = "ace-lite"; 499 reg = <0x1000 499 reg = <0x1000 0x1000>; 500 }; 500 }; 501 501 502 cci_control1: slave-if 502 cci_control1: slave-if@4000 { 503 compatible = " 503 compatible = "arm,cci-400-ctrl-if"; 504 interface-type 504 interface-type = "ace"; 505 reg = <0x4000 505 reg = <0x4000 0x1000>; 506 }; 506 }; 507 507 508 cci_control2: slave-if 508 cci_control2: slave-if@5000 { 509 compatible = " 509 compatible = "arm,cci-400-ctrl-if"; 510 interface-type 510 interface-type = "ace"; 511 reg = <0x5000 511 reg = <0x5000 0x1000>; 512 }; 512 }; 513 513 514 pmu@9000 { 514 pmu@9000 { 515 compatible = " 515 compatible = "arm,cci-400-pmu,r1"; 516 reg = <0x9000 516 reg = <0x9000 0x5000>; 517 interrupts = < 517 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 518 < 518 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 519 < 519 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>, 520 < 520 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>, 521 < 521 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 522 }; 522 }; 523 }; 523 }; 524 524 525 uart0: serial@11002000 { 525 uart0: serial@11002000 { 526 compatible = "mediatek 526 compatible = "mediatek,mt6795-uart", 527 "mediatek 527 "mediatek,mt6577-uart"; 528 reg = <0 0x11002000 0 528 reg = <0 0x11002000 0 0x400>; 529 interrupts = <GIC_SPI 529 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 530 clocks = <&pericfg CLK 530 clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>; 531 clock-names = "baud", 531 clock-names = "baud", "bus"; 532 dmas = <&apdma 0>, <&a 532 dmas = <&apdma 0>, <&apdma 1>; 533 dma-names = "tx", "rx" 533 dma-names = "tx", "rx"; 534 status = "disabled"; 534 status = "disabled"; 535 }; 535 }; 536 536 537 uart1: serial@11003000 { 537 uart1: serial@11003000 { 538 compatible = "mediatek 538 compatible = "mediatek,mt6795-uart", 539 "mediatek 539 "mediatek,mt6577-uart"; 540 reg = <0 0x11003000 0 540 reg = <0 0x11003000 0 0x400>; 541 interrupts = <GIC_SPI 541 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 542 clocks = <&pericfg CLK 542 clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>; 543 clock-names = "baud", 543 clock-names = "baud", "bus"; 544 dmas = <&apdma 2>, <&a 544 dmas = <&apdma 2>, <&apdma 3>; 545 dma-names = "tx", "rx" 545 dma-names = "tx", "rx"; 546 status = "disabled"; 546 status = "disabled"; 547 }; 547 }; 548 548 549 apdma: dma-controller@11000380 549 apdma: dma-controller@11000380 { 550 compatible = "mediatek 550 compatible = "mediatek,mt6795-uart-dma", 551 "mediatek 551 "mediatek,mt6577-uart-dma"; 552 reg = <0 0x11000380 0 552 reg = <0 0x11000380 0 0x60>, 553 <0 0x11000400 0 553 <0 0x11000400 0 0x60>, 554 <0 0x11000480 0 554 <0 0x11000480 0 0x60>, 555 <0 0x11000500 0 555 <0 0x11000500 0 0x60>, 556 <0 0x11000580 0 556 <0 0x11000580 0 0x60>, 557 <0 0x11000600 0 557 <0 0x11000600 0 0x60>, 558 <0 0x11000680 0 558 <0 0x11000680 0 0x60>, 559 <0 0x11000700 0 559 <0 0x11000700 0 0x60>; 560 interrupts = <GIC_SPI 560 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_LOW>, 561 <GIC_SPI 561 <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>, 562 <GIC_SPI 562 <GIC_SPI 105 IRQ_TYPE_LEVEL_LOW>, 563 <GIC_SPI 563 <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>, 564 <GIC_SPI 564 <GIC_SPI 107 IRQ_TYPE_LEVEL_LOW>, 565 <GIC_SPI 565 <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>, 566 <GIC_SPI 566 <GIC_SPI 109 IRQ_TYPE_LEVEL_LOW>, 567 <GIC_SPI 567 <GIC_SPI 110 IRQ_TYPE_LEVEL_LOW>; 568 dma-requests = <8>; 568 dma-requests = <8>; 569 clocks = <&pericfg CLK 569 clocks = <&pericfg CLK_PERI_AP_DMA>; 570 clock-names = "apdma"; 570 clock-names = "apdma"; 571 mediatek,dma-33bits; 571 mediatek,dma-33bits; 572 #dma-cells = <1>; 572 #dma-cells = <1>; 573 }; 573 }; 574 574 575 uart2: serial@11004000 { 575 uart2: serial@11004000 { 576 compatible = "mediatek 576 compatible = "mediatek,mt6795-uart", 577 "mediatek 577 "mediatek,mt6577-uart"; 578 reg = <0 0x11004000 0 578 reg = <0 0x11004000 0 0x400>; 579 interrupts = <GIC_SPI 579 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 580 clocks = <&pericfg CLK 580 clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>; 581 clock-names = "baud", 581 clock-names = "baud", "bus"; 582 dmas = <&apdma 4>, <&a 582 dmas = <&apdma 4>, <&apdma 5>; 583 dma-names = "tx", "rx" 583 dma-names = "tx", "rx"; 584 status = "disabled"; 584 status = "disabled"; 585 }; 585 }; 586 586 587 uart3: serial@11005000 { 587 uart3: serial@11005000 { 588 compatible = "mediatek 588 compatible = "mediatek,mt6795-uart", 589 "mediatek 589 "mediatek,mt6577-uart"; 590 reg = <0 0x11005000 0 590 reg = <0 0x11005000 0 0x400>; 591 interrupts = <GIC_SPI 591 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; 592 clocks = <&pericfg CLK 592 clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>; 593 clock-names = "baud", 593 clock-names = "baud", "bus"; 594 dmas = <&apdma 6>, <&a 594 dmas = <&apdma 6>, <&apdma 7>; 595 dma-names = "tx", "rx" 595 dma-names = "tx", "rx"; 596 status = "disabled"; 596 status = "disabled"; 597 }; 597 }; 598 598 599 pwm2: pwm@11006000 { 599 pwm2: pwm@11006000 { 600 compatible = "mediatek 600 compatible = "mediatek,mt6795-pwm"; 601 reg = <0 0x11006000 0 601 reg = <0 0x11006000 0 0x1000>; 602 #pwm-cells = <2>; 602 #pwm-cells = <2>; 603 interrupts = <GIC_SPI 603 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; 604 clocks = <&topckgen CL 604 clocks = <&topckgen CLK_TOP_PWM_SEL>, 605 <&pericfg CLK 605 <&pericfg CLK_PERI_PWM>, 606 <&pericfg CLK 606 <&pericfg CLK_PERI_PWM1>, 607 <&pericfg CLK 607 <&pericfg CLK_PERI_PWM2>, 608 <&pericfg CLK 608 <&pericfg CLK_PERI_PWM3>, 609 <&pericfg CLK 609 <&pericfg CLK_PERI_PWM4>, 610 <&pericfg CLK 610 <&pericfg CLK_PERI_PWM5>, 611 <&pericfg CLK 611 <&pericfg CLK_PERI_PWM6>, 612 <&pericfg CLK 612 <&pericfg CLK_PERI_PWM7>; 613 clock-names = "top", " 613 clock-names = "top", "main", "pwm1", "pwm2", "pwm3", 614 "pwm4", 614 "pwm4", "pwm5", "pwm6", "pwm7"; 615 status = "disabled"; 615 status = "disabled"; 616 }; 616 }; 617 617 618 i2c0: i2c@11007000 { 618 i2c0: i2c@11007000 { 619 compatible = "mediatek 619 compatible = "mediatek,mt6795-i2c", "mediatek,mt8173-i2c"; 620 reg = <0 0x11007000 0 620 reg = <0 0x11007000 0 0x70>, <0 0x11000100 0 0x80>; 621 interrupts = <GIC_SPI 621 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; 622 clock-div = <16>; 622 clock-div = <16>; 623 clocks = <&pericfg CLK 623 clocks = <&pericfg CLK_PERI_I2C0>, <&pericfg CLK_PERI_AP_DMA>; 624 clock-names = "main", 624 clock-names = "main", "dma"; 625 #address-cells = <1>; 625 #address-cells = <1>; 626 #size-cells = <0>; 626 #size-cells = <0>; 627 status = "disabled"; 627 status = "disabled"; 628 }; 628 }; 629 629 630 i2c1: i2c@11008000 { 630 i2c1: i2c@11008000 { 631 compatible = "mediatek 631 compatible = "mediatek,mt6795-i2c", "mediatek,mt8173-i2c"; 632 reg = <0 0x11008000 0 632 reg = <0 0x11008000 0 0x70>, <0 0x11000180 0 0x80>; 633 interrupts = <GIC_SPI 633 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; 634 clock-div = <16>; 634 clock-div = <16>; 635 clocks = <&pericfg CLK 635 clocks = <&pericfg CLK_PERI_I2C1>, <&pericfg CLK_PERI_AP_DMA>; 636 clock-names = "main", 636 clock-names = "main", "dma"; 637 #address-cells = <1>; 637 #address-cells = <1>; 638 #size-cells = <0>; 638 #size-cells = <0>; 639 status = "disabled"; 639 status = "disabled"; 640 }; 640 }; 641 641 642 i2c2: i2c@11009000 { 642 i2c2: i2c@11009000 { 643 compatible = "mediatek 643 compatible = "mediatek,mt6795-i2c", "mediatek,mt8173-i2c"; 644 reg = <0 0x11009000 0 644 reg = <0 0x11009000 0 0x70>, <0 0x11000200 0 0x80>; 645 interrupts = <GIC_SPI 645 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>; 646 clock-div = <16>; 646 clock-div = <16>; 647 clocks = <&pericfg CLK 647 clocks = <&pericfg CLK_PERI_I2C2>, <&pericfg CLK_PERI_AP_DMA>; 648 clock-names = "main", 648 clock-names = "main", "dma"; 649 #address-cells = <1>; 649 #address-cells = <1>; 650 #size-cells = <0>; 650 #size-cells = <0>; 651 status = "disabled"; 651 status = "disabled"; 652 }; 652 }; 653 653 654 i2c3: i2c@11010000 { 654 i2c3: i2c@11010000 { 655 compatible = "mediatek 655 compatible = "mediatek,mt6795-i2c", "mediatek,mt8173-i2c"; 656 reg = <0 0x11010000 0 656 reg = <0 0x11010000 0 0x70>, <0 0x11000280 0 0x80>; 657 interrupts = <GIC_SPI 657 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>; 658 clock-div = <16>; 658 clock-div = <16>; 659 clocks = <&pericfg CLK 659 clocks = <&pericfg CLK_PERI_I2C3>, <&pericfg CLK_PERI_AP_DMA>; 660 clock-names = "main", 660 clock-names = "main", "dma"; 661 #address-cells = <1>; 661 #address-cells = <1>; 662 #size-cells = <0>; 662 #size-cells = <0>; 663 status = "disabled"; 663 status = "disabled"; 664 }; 664 }; 665 665 666 i2c4: i2c@11011000 { 666 i2c4: i2c@11011000 { 667 compatible = "mediatek 667 compatible = "mediatek,mt6795-i2c", "mediatek,mt8173-i2c"; 668 reg = <0 0x11011000 0 668 reg = <0 0x11011000 0 0x70>, <0 0x11000300 0 0x80>; 669 interrupts = <GIC_SPI 669 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>; 670 clock-div = <16>; 670 clock-div = <16>; 671 clocks = <&pericfg CLK 671 clocks = <&pericfg CLK_PERI_I2C4>, <&pericfg CLK_PERI_AP_DMA>; 672 clock-names = "main", 672 clock-names = "main", "dma"; 673 #address-cells = <1>; 673 #address-cells = <1>; 674 #size-cells = <0>; 674 #size-cells = <0>; 675 status = "disabled"; 675 status = "disabled"; 676 }; 676 }; 677 677 678 mmc0: mmc@11230000 { 678 mmc0: mmc@11230000 { 679 compatible = "mediatek 679 compatible = "mediatek,mt6795-mmc"; 680 reg = <0 0x11230000 0 680 reg = <0 0x11230000 0 0x1000>; 681 interrupts = <GIC_SPI 681 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>; 682 clocks = <&pericfg CLK 682 clocks = <&pericfg CLK_PERI_MSDC30_0>, 683 <&topckgen CL 683 <&topckgen CLK_TOP_MSDC50_0_H_SEL>, 684 <&topckgen CL 684 <&topckgen CLK_TOP_MSDC50_0_SEL>; 685 clock-names = "source" 685 clock-names = "source", "hclk", "source_cg"; 686 status = "disabled"; 686 status = "disabled"; 687 }; 687 }; 688 688 689 mmc1: mmc@11240000 { 689 mmc1: mmc@11240000 { 690 compatible = "mediatek 690 compatible = "mediatek,mt6795-mmc"; 691 reg = <0 0x11240000 0 691 reg = <0 0x11240000 0 0x1000>; 692 interrupts = <GIC_SPI 692 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>; 693 clocks = <&pericfg CLK 693 clocks = <&pericfg CLK_PERI_MSDC30_1>, 694 <&topckgen CL 694 <&topckgen CLK_TOP_AXI_SEL>; 695 clock-names = "source" 695 clock-names = "source", "hclk"; 696 status = "disabled"; 696 status = "disabled"; 697 }; 697 }; 698 698 699 mmc2: mmc@11250000 { 699 mmc2: mmc@11250000 { 700 compatible = "mediatek 700 compatible = "mediatek,mt6795-mmc"; 701 reg = <0 0x11250000 0 701 reg = <0 0x11250000 0 0x1000>; 702 interrupts = <GIC_SPI 702 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>; 703 clocks = <&pericfg CLK 703 clocks = <&pericfg CLK_PERI_MSDC30_2>, 704 <&topckgen CL 704 <&topckgen CLK_TOP_AXI_SEL>; 705 clock-names = "source" 705 clock-names = "source", "hclk"; 706 status = "disabled"; 706 status = "disabled"; 707 }; 707 }; 708 708 709 mmc3: mmc@11260000 { 709 mmc3: mmc@11260000 { 710 compatible = "mediatek 710 compatible = "mediatek,mt6795-mmc"; 711 reg = <0 0x11260000 0 711 reg = <0 0x11260000 0 0x1000>; 712 interrupts = <GIC_SPI 712 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>; 713 clocks = <&pericfg CLK 713 clocks = <&pericfg CLK_PERI_MSDC30_3>, 714 <&topckgen CL 714 <&topckgen CLK_TOP_AXI_SEL>; 715 clock-names = "source" 715 clock-names = "source", "hclk"; 716 status = "disabled"; 716 status = "disabled"; 717 }; 717 }; 718 718 719 mmsys: syscon@14000000 { 719 mmsys: syscon@14000000 { 720 compatible = "mediatek 720 compatible = "mediatek,mt6795-mmsys", "syscon"; 721 reg = <0 0x14000000 0 721 reg = <0 0x14000000 0 0x1000>; 722 power-domains = <&spm 722 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 723 assigned-clocks = <&to 723 assigned-clocks = <&topckgen CLK_TOP_MM_SEL>; 724 assigned-clock-rates = 724 assigned-clock-rates = <400000000>; 725 #clock-cells = <1>; 725 #clock-cells = <1>; 726 #reset-cells = <1>; 726 #reset-cells = <1>; 727 mboxes = <&gce 0 CMDQ_ 727 mboxes = <&gce 0 CMDQ_THR_PRIO_HIGHEST>, 728 <&gce 1 CMDQ_ 728 <&gce 1 CMDQ_THR_PRIO_HIGHEST>; 729 mediatek,gce-client-re 729 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0 0x1000>; 730 }; 730 }; 731 731 732 ovl0: ovl@1400c000 { 732 ovl0: ovl@1400c000 { 733 compatible = "mediatek 733 compatible = "mediatek,mt6795-disp-ovl", "mediatek,mt8173-disp-ovl"; 734 reg = <0 0x1400c000 0 734 reg = <0 0x1400c000 0 0x1000>; 735 interrupts = <GIC_SPI 735 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_LOW>; 736 power-domains = <&spm 736 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 737 clocks = <&mmsys CLK_M 737 clocks = <&mmsys CLK_MM_DISP_OVL0>; 738 iommus = <&iommu M4U_P 738 iommus = <&iommu M4U_PORT_DISP_OVL0>; 739 mediatek,gce-client-re 739 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>; 740 }; 740 }; 741 741 742 ovl1: ovl@1400d000 { 742 ovl1: ovl@1400d000 { 743 compatible = "mediatek 743 compatible = "mediatek,mt6795-disp-ovl", "mediatek,mt8173-disp-ovl"; 744 reg = <0 0x1400d000 0 744 reg = <0 0x1400d000 0 0x1000>; 745 interrupts = <GIC_SPI 745 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>; 746 power-domains = <&spm 746 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 747 clocks = <&mmsys CLK_M 747 clocks = <&mmsys CLK_MM_DISP_OVL1>; 748 iommus = <&iommu M4U_P 748 iommus = <&iommu M4U_PORT_DISP_OVL1>; 749 mediatek,gce-client-re 749 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>; 750 }; 750 }; 751 751 752 rdma0: rdma@1400e000 { 752 rdma0: rdma@1400e000 { 753 compatible = "mediatek 753 compatible = "mediatek,mt6795-disp-rdma", "mediatek,mt8173-disp-rdma"; 754 reg = <0 0x1400e000 0 754 reg = <0 0x1400e000 0 0x1000>; 755 interrupts = <GIC_SPI 755 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_LOW>; 756 power-domains = <&spm 756 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 757 clocks = <&mmsys CLK_M 757 clocks = <&mmsys CLK_MM_DISP_RDMA0>; 758 iommus = <&iommu M4U_P 758 iommus = <&iommu M4U_PORT_DISP_RDMA0>; 759 mediatek,gce-client-re 759 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>; 760 }; 760 }; 761 761 762 rdma1: rdma@1400f000 { 762 rdma1: rdma@1400f000 { 763 compatible = "mediatek 763 compatible = "mediatek,mt6795-disp-rdma", "mediatek,mt8173-disp-rdma"; 764 reg = <0 0x1400f000 0 764 reg = <0 0x1400f000 0 0x1000>; 765 interrupts = <GIC_SPI 765 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_LOW>; 766 power-domains = <&spm 766 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 767 clocks = <&mmsys CLK_M 767 clocks = <&mmsys CLK_MM_DISP_RDMA1>; 768 iommus = <&iommu M4U_P 768 iommus = <&iommu M4U_PORT_DISP_RDMA1>; 769 mediatek,gce-client-re 769 mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>; 770 }; 770 }; 771 771 772 rdma2: rdma@14010000 { 772 rdma2: rdma@14010000 { 773 compatible = "mediatek 773 compatible = "mediatek,mt6795-disp-rdma", "mediatek,mt8173-disp-rdma"; 774 reg = <0 0x14010000 0 774 reg = <0 0x14010000 0 0x1000>; 775 interrupts = <GIC_SPI 775 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_LOW>; 776 power-domains = <&spm 776 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 777 clocks = <&mmsys CLK_M 777 clocks = <&mmsys CLK_MM_DISP_RDMA2>; 778 iommus = <&iommu M4U_P 778 iommus = <&iommu M4U_PORT_DISP_RDMA2>; 779 mediatek,gce-client-re 779 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>; 780 }; 780 }; 781 781 782 wdma0: wdma@14011000 { 782 wdma0: wdma@14011000 { 783 compatible = "mediatek 783 compatible = "mediatek,mt6795-disp-wdma", "mediatek,mt8173-disp-wdma"; 784 reg = <0 0x14011000 0 784 reg = <0 0x14011000 0 0x1000>; 785 interrupts = <GIC_SPI 785 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>; 786 power-domains = <&spm 786 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 787 clocks = <&mmsys CLK_M 787 clocks = <&mmsys CLK_MM_DISP_WDMA0>; 788 iommus = <&iommu M4U_P 788 iommus = <&iommu M4U_PORT_DISP_WDMA0>; 789 mediatek,gce-client-re 789 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>; 790 }; 790 }; 791 791 792 wdma1: wdma@14012000 { 792 wdma1: wdma@14012000 { 793 compatible = "mediatek 793 compatible = "mediatek,mt6795-disp-wdma", "mediatek,mt8173-disp-wdma"; 794 reg = <0 0x14012000 0 794 reg = <0 0x14012000 0 0x1000>; 795 interrupts = <GIC_SPI 795 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>; 796 power-domains = <&spm 796 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 797 clocks = <&mmsys CLK_M 797 clocks = <&mmsys CLK_MM_DISP_WDMA1>; 798 iommus = <&iommu M4U_P 798 iommus = <&iommu M4U_PORT_DISP_WDMA1>; 799 mediatek,gce-client-re 799 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>; 800 }; 800 }; 801 801 802 color0: color@14013000 { 802 color0: color@14013000 { 803 compatible = "mediatek 803 compatible = "mediatek,mt6795-disp-color", "mediatek,mt8173-disp-color"; 804 reg = <0 0x14013000 0 804 reg = <0 0x14013000 0 0x1000>; 805 interrupts = <GIC_SPI 805 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>; 806 power-domains = <&spm 806 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 807 clocks = <&mmsys CLK_M 807 clocks = <&mmsys CLK_MM_DISP_COLOR0>; 808 mediatek,gce-client-re 808 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x3000 0x1000>; 809 }; 809 }; 810 810 811 color1: color@14014000 { 811 color1: color@14014000 { 812 compatible = "mediatek 812 compatible = "mediatek,mt6795-disp-color", "mediatek,mt8173-disp-color"; 813 reg = <0 0x14014000 0 813 reg = <0 0x14014000 0 0x1000>; 814 interrupts = <GIC_SPI 814 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>; 815 power-domains = <&spm 815 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 816 clocks = <&mmsys CLK_M 816 clocks = <&mmsys CLK_MM_DISP_COLOR1>; 817 mediatek,gce-client-re 817 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x4000 0x1000>; 818 }; 818 }; 819 819 820 aal@14015000 { 820 aal@14015000 { 821 compatible = "mediatek 821 compatible = "mediatek,mt6795-disp-aal", "mediatek,mt8173-disp-aal"; 822 reg = <0 0x14015000 0 822 reg = <0 0x14015000 0 0x1000>; 823 interrupts = <GIC_SPI 823 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>; 824 power-domains = <&spm 824 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 825 clocks = <&mmsys CLK_M 825 clocks = <&mmsys CLK_MM_DISP_AAL>; 826 mediatek,gce-client-re 826 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>; 827 }; 827 }; 828 828 829 gamma@14016000 { 829 gamma@14016000 { 830 compatible = "mediatek 830 compatible = "mediatek,mt6795-disp-gamma", "mediatek,mt8173-disp-gamma"; 831 reg = <0 0x14016000 0 831 reg = <0 0x14016000 0 0x1000>; 832 interrupts = <GIC_SPI 832 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>; 833 power-domains = <&spm 833 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 834 clocks = <&mmsys CLK_M 834 clocks = <&mmsys CLK_MM_DISP_GAMMA>; 835 mediatek,gce-client-re 835 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x6000 0x1000>; 836 }; 836 }; 837 837 838 merge@14017000 { 838 merge@14017000 { 839 compatible = "mediatek 839 compatible = "mediatek,mt6795-disp-merge", "mediatek,mt8173-disp-merge"; 840 reg = <0 0x14017000 0 840 reg = <0 0x14017000 0 0x1000>; 841 power-domains = <&spm 841 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 842 clocks = <&mmsys CLK_M 842 clocks = <&mmsys CLK_MM_DISP_MERGE>; 843 }; 843 }; 844 844 845 split0: split@14018000 { 845 split0: split@14018000 { 846 compatible = "mediatek 846 compatible = "mediatek,mt6795-disp-split", "mediatek,mt8173-disp-split"; 847 reg = <0 0x14018000 0 847 reg = <0 0x14018000 0 0x1000>; 848 power-domains = <&spm 848 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 849 clocks = <&mmsys CLK_M 849 clocks = <&mmsys CLK_MM_DISP_SPLIT0>; 850 }; 850 }; 851 851 852 split1: split@14019000 { 852 split1: split@14019000 { 853 compatible = "mediatek 853 compatible = "mediatek,mt6795-disp-split", "mediatek,mt8173-disp-split"; 854 reg = <0 0x14019000 0 854 reg = <0 0x14019000 0 0x1000>; 855 power-domains = <&spm 855 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 856 clocks = <&mmsys CLK_M 856 clocks = <&mmsys CLK_MM_DISP_SPLIT1>; 857 }; 857 }; 858 858 859 ufoe@1401a000 { 859 ufoe@1401a000 { 860 compatible = "mediatek 860 compatible = "mediatek,mt6795-disp-ufoe", "mediatek,mt8173-disp-ufoe"; 861 reg = <0 0x1401a000 0 861 reg = <0 0x1401a000 0 0x1000>; 862 interrupts = <GIC_SPI 862 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>; 863 power-domains = <&spm 863 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 864 clocks = <&mmsys CLK_M 864 clocks = <&mmsys CLK_MM_DISP_UFOE>; 865 mediatek,gce-client-re 865 mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0xa000 0x1000>; 866 }; 866 }; 867 867 868 dsi0: dsi@1401b000 { 868 dsi0: dsi@1401b000 { 869 compatible = "mediatek 869 compatible = "mediatek,mt6795-dsi", "mediatek,mt8173-dsi"; 870 reg = <0 0x1401b000 0 870 reg = <0 0x1401b000 0 0x1000>; 871 interrupts = <GIC_SPI 871 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>; 872 power-domains = <&spm 872 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 873 clocks = <&mmsys CLK_M 873 clocks = <&mmsys CLK_MM_DSI0_ENGINE>, 874 <&mmsys CLK_M 874 <&mmsys CLK_MM_DSI0_DIGITAL>, 875 <&mipi_tx0>; 875 <&mipi_tx0>; 876 clock-names = "engine" 876 clock-names = "engine", "digital", "hs"; 877 phys = <&mipi_tx0>; 877 phys = <&mipi_tx0>; 878 phy-names = "dphy"; 878 phy-names = "dphy"; 879 status = "disabled"; 879 status = "disabled"; 880 }; 880 }; 881 881 882 dsi1: dsi@1401c000 { 882 dsi1: dsi@1401c000 { 883 compatible = "mediatek 883 compatible = "mediatek,mt6795-dsi", "mediatek,mt8173-dsi"; 884 reg = <0 0x1401c000 0 884 reg = <0 0x1401c000 0 0x1000>; 885 interrupts = <GIC_SPI 885 interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_LOW>; 886 power-domains = <&spm 886 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 887 clocks = <&mmsys CLK_M 887 clocks = <&mmsys CLK_MM_DSI1_ENGINE>, 888 <&mmsys CLK_M 888 <&mmsys CLK_MM_DSI1_DIGITAL>, 889 <&mipi_tx1>; 889 <&mipi_tx1>; 890 clock-names = "engine" 890 clock-names = "engine", "digital", "hs"; 891 phys = <&mipi_tx1>; 891 phys = <&mipi_tx1>; 892 phy-names = "dphy"; 892 phy-names = "dphy"; 893 status = "disabled"; 893 status = "disabled"; 894 }; 894 }; 895 895 896 dpi0: dpi@1401d000 { 896 dpi0: dpi@1401d000 { 897 compatible = "mediatek 897 compatible = "mediatek,mt6795-dpi", "mediatek,mt8183-dpi"; 898 reg = <0 0x1401d000 0 898 reg = <0 0x1401d000 0 0x1000>; 899 interrupts = <GIC_SPI 899 interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_LOW>; 900 power-domains = <&spm 900 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 901 clocks = <&mmsys CLK_M 901 clocks = <&mmsys CLK_MM_DPI_PIXEL>, 902 <&mmsys CLK_M 902 <&mmsys CLK_MM_DPI_ENGINE>, 903 <&apmixedsys 903 <&apmixedsys CLK_APMIXED_TVDPLL>; 904 clock-names = "pixel", 904 clock-names = "pixel", "engine", "pll"; 905 status = "disabled"; 905 status = "disabled"; 906 }; 906 }; 907 907 908 pwm0: pwm@1401e000 { 908 pwm0: pwm@1401e000 { 909 compatible = "mediatek 909 compatible = "mediatek,mt6795-disp-pwm", "mediatek,mt8173-disp-pwm"; 910 reg = <0 0x1401e000 0 910 reg = <0 0x1401e000 0 0x1000>; 911 #pwm-cells = <2>; 911 #pwm-cells = <2>; 912 clocks = <&mmsys CLK_M 912 clocks = <&mmsys CLK_MM_DISP_PWM026M>, <&mmsys CLK_MM_DISP_PWM0MM>; 913 clock-names = "main", 913 clock-names = "main", "mm"; 914 status = "disabled"; 914 status = "disabled"; 915 }; 915 }; 916 916 917 pwm1: pwm@1401f000 { 917 pwm1: pwm@1401f000 { 918 compatible = "mediatek 918 compatible = "mediatek,mt6795-disp-pwm", "mediatek,mt8173-disp-pwm"; 919 reg = <0 0x1401f000 0 919 reg = <0 0x1401f000 0 0x1000>; 920 #pwm-cells = <2>; 920 #pwm-cells = <2>; 921 clocks = <&mmsys CLK_M 921 clocks = <&mmsys CLK_MM_DISP_PWM126M>, <&mmsys CLK_MM_DISP_PWM1MM>; 922 clock-names = "main", 922 clock-names = "main", "mm"; 923 status = "disabled"; 923 status = "disabled"; 924 }; 924 }; 925 925 926 mutex: mutex@14020000 { 926 mutex: mutex@14020000 { 927 compatible = "mediatek 927 compatible = "mediatek,mt8173-disp-mutex"; 928 reg = <0 0x14020000 0 928 reg = <0 0x14020000 0 0x1000>; 929 interrupts = <GIC_SPI 929 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_LOW>; 930 power-domains = <&spm 930 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 931 clocks = <&mmsys CLK_M 931 clocks = <&mmsys CLK_MM_MUTEX_32K>; 932 mediatek,gce-events = 932 mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>, 933 933 <CMDQ_EVENT_MUTEX1_STREAM_EOF>; 934 mediatek,gce-client-re 934 mediatek,gce-client-reg = <&gce SUBSYS_1402XXXX 0 0x1000>; 935 }; 935 }; 936 936 937 larb0: larb@14021000 { 937 larb0: larb@14021000 { 938 compatible = "mediatek 938 compatible = "mediatek,mt6795-smi-larb"; 939 reg = <0 0x14021000 0 939 reg = <0 0x14021000 0 0x1000>; 940 clocks = <&mmsys CLK_M 940 clocks = <&mmsys CLK_MM_SMI_COMMON>, <&mmsys CLK_MM_SMI_LARB0>; 941 clock-names = "apb", " 941 clock-names = "apb", "smi"; 942 mediatek,smi = <&smi_c 942 mediatek,smi = <&smi_common>; 943 mediatek,larb-id = <0> 943 mediatek,larb-id = <0>; 944 power-domains = <&spm 944 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 945 }; 945 }; 946 946 947 smi_common: smi@14022000 { 947 smi_common: smi@14022000 { 948 compatible = "mediatek 948 compatible = "mediatek,mt6795-smi-common"; 949 reg = <0 0x14022000 0 949 reg = <0 0x14022000 0 0x1000>; 950 power-domains = <&spm 950 power-domains = <&spm MT6795_POWER_DOMAIN_MM>; 951 clocks = <&infracfg CL 951 clocks = <&infracfg CLK_INFRA_SMI>, <&mmsys CLK_MM_SMI_COMMON>; 952 clock-names = "apb", " 952 clock-names = "apb", "smi"; 953 }; 953 }; 954 954 955 od@14023000 { 955 od@14023000 { 956 compatible = "mediatek 956 compatible = "mediatek,mt6795-disp-od", "mediatek,mt8173-disp-od"; 957 reg = <0 0x14023000 0 957 reg = <0 0x14023000 0 0x1000>; 958 clocks = <&mmsys CLK_M 958 clocks = <&mmsys CLK_MM_DISP_OD>; 959 mediatek,gce-client-re 959 mediatek,gce-client-reg = <&gce SUBSYS_1402XXXX 0x3000 0x1000>; 960 }; 960 }; 961 961 962 larb2: larb@15001000 { 962 larb2: larb@15001000 { 963 compatible = "mediatek 963 compatible = "mediatek,mt6795-smi-larb"; 964 reg = <0 0x15001000 0 964 reg = <0 0x15001000 0 0x1000>; 965 clocks = <&mmsys CLK_M 965 clocks = <&mmsys CLK_MM_SMI_COMMON>, <&infracfg CLK_INFRA_SMI>; 966 clock-names = "apb", " 966 clock-names = "apb", "smi"; 967 mediatek,smi = <&smi_c 967 mediatek,smi = <&smi_common>; 968 mediatek,larb-id = <2> 968 mediatek,larb-id = <2>; 969 power-domains = <&spm 969 power-domains = <&spm MT6795_POWER_DOMAIN_ISP>; 970 }; 970 }; 971 971 972 vdecsys: clock-controller@1600 972 vdecsys: clock-controller@16000000 { 973 compatible = "mediatek 973 compatible = "mediatek,mt6795-vdecsys"; 974 reg = <0 0x16000000 0 974 reg = <0 0x16000000 0 0x1000>; 975 #clock-cells = <1>; 975 #clock-cells = <1>; 976 }; 976 }; 977 977 978 larb1: larb@16010000 { 978 larb1: larb@16010000 { 979 compatible = "mediatek 979 compatible = "mediatek,mt6795-smi-larb"; 980 reg = <0 0x16010000 0 980 reg = <0 0x16010000 0 0x1000>; 981 mediatek,smi = <&smi_c 981 mediatek,smi = <&smi_common>; 982 mediatek,larb-id = <1> 982 mediatek,larb-id = <1>; 983 clocks = <&vdecsys CLK 983 clocks = <&vdecsys CLK_VDEC_CKEN>, <&vdecsys CLK_VDEC_LARB_CKEN>; 984 clock-names = "apb", " 984 clock-names = "apb", "smi"; 985 power-domains = <&spm 985 power-domains = <&spm MT6795_POWER_DOMAIN_VDEC>; 986 }; 986 }; 987 987 988 vencsys: clock-controller@1800 988 vencsys: clock-controller@18000000 { 989 compatible = "mediatek 989 compatible = "mediatek,mt6795-vencsys"; 990 reg = <0 0x18000000 0 990 reg = <0 0x18000000 0 0x1000>; 991 #clock-cells = <1>; 991 #clock-cells = <1>; 992 }; 992 }; 993 993 994 larb3: larb@18001000 { 994 larb3: larb@18001000 { 995 compatible = "mediatek 995 compatible = "mediatek,mt6795-smi-larb"; 996 reg = <0 0x18001000 0 996 reg = <0 0x18001000 0 0x1000>; 997 clocks = <&vencsys CLK 997 clocks = <&vencsys CLK_VENC_VENC>, <&vencsys CLK_VENC_LARB>; 998 clock-names = "apb", " 998 clock-names = "apb", "smi"; 999 mediatek,smi = <&smi_c 999 mediatek,smi = <&smi_common>; 1000 mediatek,larb-id = <3 1000 mediatek,larb-id = <3>; 1001 power-domains = <&spm 1001 power-domains = <&spm MT6795_POWER_DOMAIN_VENC>; 1002 }; 1002 }; 1003 }; 1003 }; 1004 }; 1004 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.