Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| 2 | /* |
| 3 | * Copyright (c) 2018 Amlogic, Inc. All rights reserved. |
| 4 | */ |
| 5 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 6 | #include <dt-bindings/phy/phy.h> |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 7 | #include <dt-bindings/gpio/gpio.h> |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 8 | #include <dt-bindings/clock/g12a-clkc.h> |
| 9 | #include <dt-bindings/clock/g12a-aoclkc.h> |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 10 | #include <dt-bindings/interrupt-controller/irq.h> |
| 11 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 12 | #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 13 | |
| 14 | / { |
| 15 | compatible = "amlogic,g12a"; |
| 16 | |
| 17 | interrupt-parent = <&gic>; |
| 18 | #address-cells = <2>; |
| 19 | #size-cells = <2>; |
| 20 | |
| 21 | cpus { |
| 22 | #address-cells = <0x2>; |
| 23 | #size-cells = <0x0>; |
| 24 | |
| 25 | cpu0: cpu@0 { |
| 26 | device_type = "cpu"; |
| 27 | compatible = "arm,cortex-a53"; |
| 28 | reg = <0x0 0x0>; |
| 29 | enable-method = "psci"; |
| 30 | next-level-cache = <&l2>; |
| 31 | }; |
| 32 | |
| 33 | cpu1: cpu@1 { |
| 34 | device_type = "cpu"; |
| 35 | compatible = "arm,cortex-a53"; |
| 36 | reg = <0x0 0x1>; |
| 37 | enable-method = "psci"; |
| 38 | next-level-cache = <&l2>; |
| 39 | }; |
| 40 | |
| 41 | cpu2: cpu@2 { |
| 42 | device_type = "cpu"; |
| 43 | compatible = "arm,cortex-a53"; |
| 44 | reg = <0x0 0x2>; |
| 45 | enable-method = "psci"; |
| 46 | next-level-cache = <&l2>; |
| 47 | }; |
| 48 | |
| 49 | cpu3: cpu@3 { |
| 50 | device_type = "cpu"; |
| 51 | compatible = "arm,cortex-a53"; |
| 52 | reg = <0x0 0x3>; |
| 53 | enable-method = "psci"; |
| 54 | next-level-cache = <&l2>; |
| 55 | }; |
| 56 | |
| 57 | l2: l2-cache0 { |
| 58 | compatible = "cache"; |
| 59 | }; |
| 60 | }; |
| 61 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 62 | efuse: efuse { |
| 63 | compatible = "amlogic,meson-gxbb-efuse"; |
| 64 | clocks = <&clkc CLKID_EFUSE>; |
| 65 | #address-cells = <1>; |
| 66 | #size-cells = <1>; |
| 67 | read-only; |
| 68 | }; |
| 69 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 70 | psci { |
| 71 | compatible = "arm,psci-1.0"; |
| 72 | method = "smc"; |
| 73 | }; |
| 74 | |
| 75 | reserved-memory { |
| 76 | #address-cells = <2>; |
| 77 | #size-cells = <2>; |
| 78 | ranges; |
| 79 | |
| 80 | /* 3 MiB reserved for ARM Trusted Firmware (BL31) */ |
| 81 | secmon_reserved: secmon@5000000 { |
| 82 | reg = <0x0 0x05000000 0x0 0x300000>; |
| 83 | no-map; |
| 84 | }; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 85 | |
| 86 | linux,cma { |
| 87 | compatible = "shared-dma-pool"; |
| 88 | reusable; |
| 89 | size = <0x0 0x10000000>; |
| 90 | alignment = <0x0 0x400000>; |
| 91 | linux,cma-default; |
| 92 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 93 | }; |
| 94 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 95 | sm: secure-monitor { |
| 96 | compatible = "amlogic,meson-gxbb-sm"; |
| 97 | }; |
| 98 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 99 | soc { |
| 100 | compatible = "simple-bus"; |
| 101 | #address-cells = <2>; |
| 102 | #size-cells = <2>; |
| 103 | ranges; |
| 104 | |
| 105 | apb: bus@ff600000 { |
| 106 | compatible = "simple-bus"; |
| 107 | reg = <0x0 0xff600000 0x0 0x200000>; |
| 108 | #address-cells = <2>; |
| 109 | #size-cells = <2>; |
| 110 | ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>; |
| 111 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 112 | hdmi_tx: hdmi-tx@0 { |
| 113 | compatible = "amlogic,meson-g12a-dw-hdmi"; |
| 114 | reg = <0x0 0x0 0x0 0x10000>; |
| 115 | interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>; |
| 116 | resets = <&reset RESET_HDMITX_CAPB3>, |
| 117 | <&reset RESET_HDMITX_PHY>, |
| 118 | <&reset RESET_HDMITX>; |
| 119 | reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; |
| 120 | clocks = <&clkc CLKID_HDMI>, |
| 121 | <&clkc CLKID_HTX_PCLK>, |
| 122 | <&clkc CLKID_VPU_INTR>; |
| 123 | clock-names = "isfr", "iahb", "venci"; |
| 124 | #address-cells = <1>; |
| 125 | #size-cells = <0>; |
| 126 | status = "disabled"; |
| 127 | |
| 128 | /* VPU VENC Input */ |
| 129 | hdmi_tx_venc_port: port@0 { |
| 130 | reg = <0>; |
| 131 | |
| 132 | hdmi_tx_in: endpoint { |
| 133 | remote-endpoint = <&hdmi_tx_out>; |
| 134 | }; |
| 135 | }; |
| 136 | |
| 137 | /* TMDS Output */ |
| 138 | hdmi_tx_tmds_port: port@1 { |
| 139 | reg = <1>; |
| 140 | }; |
| 141 | }; |
| 142 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 143 | periphs: bus@34400 { |
| 144 | compatible = "simple-bus"; |
| 145 | reg = <0x0 0x34400 0x0 0x400>; |
| 146 | #address-cells = <2>; |
| 147 | #size-cells = <2>; |
| 148 | ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 149 | |
| 150 | periphs_pinctrl: pinctrl@40 { |
| 151 | compatible = "amlogic,meson-g12a-periphs-pinctrl"; |
| 152 | #address-cells = <2>; |
| 153 | #size-cells = <2>; |
| 154 | ranges; |
| 155 | |
| 156 | gpio: bank@40 { |
| 157 | reg = <0x0 0x40 0x0 0x4c>, |
| 158 | <0x0 0xe8 0x0 0x18>, |
| 159 | <0x0 0x120 0x0 0x18>, |
| 160 | <0x0 0x2c0 0x0 0x40>, |
| 161 | <0x0 0x340 0x0 0x1c>; |
| 162 | reg-names = "gpio", |
| 163 | "pull", |
| 164 | "pull-enable", |
| 165 | "mux", |
| 166 | "ds"; |
| 167 | gpio-controller; |
| 168 | #gpio-cells = <2>; |
| 169 | gpio-ranges = <&periphs_pinctrl 0 0 86>; |
| 170 | }; |
| 171 | |
| 172 | cec_ao_a_h_pins: cec_ao_a_h { |
| 173 | mux { |
| 174 | groups = "cec_ao_a_h"; |
| 175 | function = "cec_ao_a_h"; |
| 176 | bias-disable; |
| 177 | }; |
| 178 | }; |
| 179 | |
| 180 | cec_ao_b_h_pins: cec_ao_b_h { |
| 181 | mux { |
| 182 | groups = "cec_ao_b_h"; |
| 183 | function = "cec_ao_b_h"; |
| 184 | bias-disable; |
| 185 | }; |
| 186 | }; |
| 187 | |
| 188 | hdmitx_ddc_pins: hdmitx_ddc { |
| 189 | mux { |
| 190 | groups = "hdmitx_sda", |
| 191 | "hdmitx_sck"; |
| 192 | function = "hdmitx"; |
| 193 | bias-disable; |
| 194 | }; |
| 195 | }; |
| 196 | |
| 197 | hdmitx_hpd_pins: hdmitx_hpd { |
| 198 | mux { |
| 199 | groups = "hdmitx_hpd_in"; |
| 200 | function = "hdmitx"; |
| 201 | bias-disable; |
| 202 | }; |
| 203 | }; |
| 204 | |
| 205 | uart_a_pins: uart-a { |
| 206 | mux { |
| 207 | groups = "uart_a_tx", |
| 208 | "uart_a_rx"; |
| 209 | function = "uart_a"; |
| 210 | bias-disable; |
| 211 | }; |
| 212 | }; |
| 213 | |
| 214 | uart_a_cts_rts_pins: uart-a-cts-rts { |
| 215 | mux { |
| 216 | groups = "uart_a_cts", |
| 217 | "uart_a_rts"; |
| 218 | function = "uart_a"; |
| 219 | bias-disable; |
| 220 | }; |
| 221 | }; |
| 222 | |
| 223 | uart_b_pins: uart-b { |
| 224 | mux { |
| 225 | groups = "uart_b_tx", |
| 226 | "uart_b_rx"; |
| 227 | function = "uart_b"; |
| 228 | bias-disable; |
| 229 | }; |
| 230 | }; |
| 231 | |
| 232 | uart_c_pins: uart-c { |
| 233 | mux { |
| 234 | groups = "uart_c_tx", |
| 235 | "uart_c_rx"; |
| 236 | function = "uart_c"; |
| 237 | bias-disable; |
| 238 | }; |
| 239 | }; |
| 240 | |
| 241 | uart_c_cts_rts_pins: uart-c-cts-rts { |
| 242 | mux { |
| 243 | groups = "uart_c_cts", |
| 244 | "uart_c_rts"; |
| 245 | function = "uart_c"; |
| 246 | bias-disable; |
| 247 | }; |
| 248 | }; |
| 249 | }; |
| 250 | }; |
| 251 | |
| 252 | usb2_phy0: phy@36000 { |
| 253 | compatible = "amlogic,g12a-usb2-phy"; |
| 254 | reg = <0x0 0x36000 0x0 0x2000>; |
| 255 | clocks = <&xtal>; |
| 256 | clock-names = "xtal"; |
| 257 | resets = <&reset RESET_USB_PHY20>; |
| 258 | reset-names = "phy"; |
| 259 | #phy-cells = <0>; |
| 260 | }; |
| 261 | |
| 262 | dmc: bus@38000 { |
| 263 | compatible = "simple-bus"; |
| 264 | reg = <0x0 0x38000 0x0 0x400>; |
| 265 | #address-cells = <2>; |
| 266 | #size-cells = <2>; |
| 267 | ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>; |
| 268 | |
| 269 | canvas: video-lut@48 { |
| 270 | compatible = "amlogic,canvas"; |
| 271 | reg = <0x0 0x48 0x0 0x14>; |
| 272 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 273 | }; |
| 274 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 275 | usb2_phy1: phy@3a000 { |
| 276 | compatible = "amlogic,g12a-usb2-phy"; |
| 277 | reg = <0x0 0x3a000 0x0 0x2000>; |
| 278 | clocks = <&xtal>; |
| 279 | clock-names = "xtal"; |
| 280 | resets = <&reset RESET_USB_PHY21>; |
| 281 | reset-names = "phy"; |
| 282 | #phy-cells = <0>; |
| 283 | }; |
| 284 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 285 | hiu: bus@3c000 { |
| 286 | compatible = "simple-bus"; |
| 287 | reg = <0x0 0x3c000 0x0 0x1400>; |
| 288 | #address-cells = <2>; |
| 289 | #size-cells = <2>; |
| 290 | ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>; |
| 291 | |
| 292 | hhi: system-controller@0 { |
| 293 | compatible = "amlogic,meson-gx-hhi-sysctrl", |
| 294 | "simple-mfd", "syscon"; |
| 295 | reg = <0 0 0 0x400>; |
| 296 | |
| 297 | clkc: clock-controller { |
| 298 | compatible = "amlogic,g12a-clkc"; |
| 299 | #clock-cells = <1>; |
| 300 | clocks = <&xtal>; |
| 301 | clock-names = "xtal"; |
| 302 | }; |
| 303 | }; |
| 304 | }; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 305 | |
| 306 | usb3_pcie_phy: phy@46000 { |
| 307 | compatible = "amlogic,g12a-usb3-pcie-phy"; |
| 308 | reg = <0x0 0x46000 0x0 0x2000>; |
| 309 | clocks = <&clkc CLKID_PCIE_PLL>; |
| 310 | clock-names = "ref_clk"; |
| 311 | resets = <&reset RESET_PCIE_PHY>; |
| 312 | reset-names = "phy"; |
| 313 | assigned-clocks = <&clkc CLKID_PCIE_PLL>; |
| 314 | assigned-clock-rates = <100000000>; |
| 315 | #phy-cells = <1>; |
| 316 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 317 | }; |
| 318 | |
| 319 | aobus: bus@ff800000 { |
| 320 | compatible = "simple-bus"; |
| 321 | reg = <0x0 0xff800000 0x0 0x100000>; |
| 322 | #address-cells = <2>; |
| 323 | #size-cells = <2>; |
| 324 | ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>; |
| 325 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 326 | rti: sys-ctrl@0 { |
| 327 | compatible = "amlogic,meson-gx-ao-sysctrl", |
| 328 | "simple-mfd", "syscon"; |
| 329 | reg = <0x0 0x0 0x0 0x100>; |
| 330 | #address-cells = <2>; |
| 331 | #size-cells = <2>; |
| 332 | ranges = <0x0 0x0 0x0 0x0 0x0 0x100>; |
| 333 | |
| 334 | clkc_AO: clock-controller { |
| 335 | compatible = "amlogic,meson-g12a-aoclkc"; |
| 336 | #clock-cells = <1>; |
| 337 | #reset-cells = <1>; |
| 338 | clocks = <&xtal>, <&clkc CLKID_CLK81>; |
| 339 | clock-names = "xtal", "mpeg-clk"; |
| 340 | }; |
| 341 | |
| 342 | pwrc_vpu: power-controller-vpu { |
| 343 | compatible = "amlogic,meson-g12a-pwrc-vpu"; |
| 344 | #power-domain-cells = <0>; |
| 345 | amlogic,hhi-sysctrl = <&hhi>; |
| 346 | resets = <&reset RESET_VIU>, |
| 347 | <&reset RESET_VENC>, |
| 348 | <&reset RESET_VCBUS>, |
| 349 | <&reset RESET_BT656>, |
| 350 | <&reset RESET_RDMA>, |
| 351 | <&reset RESET_VENCI>, |
| 352 | <&reset RESET_VENCP>, |
| 353 | <&reset RESET_VDAC>, |
| 354 | <&reset RESET_VDI6>, |
| 355 | <&reset RESET_VENCL>, |
| 356 | <&reset RESET_VID_LOCK>; |
| 357 | clocks = <&clkc CLKID_VPU>, |
| 358 | <&clkc CLKID_VAPB>; |
| 359 | clock-names = "vpu", "vapb"; |
| 360 | /* |
| 361 | * VPU clocking is provided by two identical clock paths |
| 362 | * VPU_0 and VPU_1 muxed to a single clock by a glitch |
| 363 | * free mux to safely change frequency while running. |
| 364 | * Same for VAPB but with a final gate after the glitch free mux. |
| 365 | */ |
| 366 | assigned-clocks = <&clkc CLKID_VPU_0_SEL>, |
| 367 | <&clkc CLKID_VPU_0>, |
| 368 | <&clkc CLKID_VPU>, /* Glitch free mux */ |
| 369 | <&clkc CLKID_VAPB_0_SEL>, |
| 370 | <&clkc CLKID_VAPB_0>, |
| 371 | <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */ |
| 372 | assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, |
| 373 | <0>, /* Do Nothing */ |
| 374 | <&clkc CLKID_VPU_0>, |
| 375 | <&clkc CLKID_FCLK_DIV4>, |
| 376 | <0>, /* Do Nothing */ |
| 377 | <&clkc CLKID_VAPB_0>; |
| 378 | assigned-clock-rates = <0>, /* Do Nothing */ |
| 379 | <666666666>, |
| 380 | <0>, /* Do Nothing */ |
| 381 | <0>, /* Do Nothing */ |
| 382 | <250000000>, |
| 383 | <0>; /* Do Nothing */ |
| 384 | }; |
| 385 | |
| 386 | ao_pinctrl: pinctrl@14 { |
| 387 | compatible = "amlogic,meson-g12a-aobus-pinctrl"; |
| 388 | #address-cells = <2>; |
| 389 | #size-cells = <2>; |
| 390 | ranges; |
| 391 | |
| 392 | gpio_ao: bank@14 { |
| 393 | reg = <0x0 0x14 0x0 0x8>, |
| 394 | <0x0 0x1c 0x0 0x8>, |
| 395 | <0x0 0x24 0x0 0x14>; |
| 396 | reg-names = "mux", |
| 397 | "ds", |
| 398 | "gpio"; |
| 399 | gpio-controller; |
| 400 | #gpio-cells = <2>; |
| 401 | gpio-ranges = <&ao_pinctrl 0 0 15>; |
| 402 | }; |
| 403 | |
| 404 | uart_ao_a_pins: uart-a-ao { |
| 405 | mux { |
| 406 | groups = "uart_ao_a_tx", |
| 407 | "uart_ao_a_rx"; |
| 408 | function = "uart_ao_a"; |
| 409 | bias-disable; |
| 410 | }; |
| 411 | }; |
| 412 | |
| 413 | uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts { |
| 414 | mux { |
| 415 | groups = "uart_ao_a_cts", |
| 416 | "uart_ao_a_rts"; |
| 417 | function = "uart_ao_a"; |
| 418 | bias-disable; |
| 419 | }; |
| 420 | }; |
| 421 | }; |
| 422 | }; |
| 423 | |
| 424 | cec_AO: cec@100 { |
| 425 | compatible = "amlogic,meson-gx-ao-cec"; |
| 426 | reg = <0x0 0x00100 0x0 0x14>; |
| 427 | interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>; |
| 428 | clocks = <&clkc_AO CLKID_AO_CEC>; |
| 429 | clock-names = "core"; |
| 430 | status = "disabled"; |
| 431 | }; |
| 432 | |
| 433 | sec_AO: ao-secure@140 { |
| 434 | compatible = "amlogic,meson-gx-ao-secure", "syscon"; |
| 435 | reg = <0x0 0x140 0x0 0x140>; |
| 436 | amlogic,has-chip-id; |
| 437 | }; |
| 438 | |
| 439 | cecb_AO: cec@280 { |
| 440 | compatible = "amlogic,meson-g12a-ao-cec"; |
| 441 | reg = <0x0 0x00280 0x0 0x1c>; |
| 442 | interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>; |
| 443 | clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>; |
| 444 | clock-names = "oscin"; |
| 445 | status = "disabled"; |
| 446 | }; |
| 447 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 448 | uart_AO: serial@3000 { |
| 449 | compatible = "amlogic,meson-gx-uart", |
| 450 | "amlogic,meson-ao-uart"; |
| 451 | reg = <0x0 0x3000 0x0 0x18>; |
| 452 | interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; |
| 453 | clocks = <&xtal>, <&xtal>, <&xtal>; |
| 454 | clock-names = "xtal", "pclk", "baud"; |
| 455 | status = "disabled"; |
| 456 | }; |
| 457 | |
| 458 | uart_AO_B: serial@4000 { |
| 459 | compatible = "amlogic,meson-gx-uart", |
| 460 | "amlogic,meson-ao-uart"; |
| 461 | reg = <0x0 0x4000 0x0 0x18>; |
| 462 | interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; |
| 463 | clocks = <&xtal>, <&xtal>, <&xtal>; |
| 464 | clock-names = "xtal", "pclk", "baud"; |
| 465 | status = "disabled"; |
| 466 | }; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 467 | |
| 468 | saradc: adc@9000 { |
| 469 | compatible = "amlogic,meson-g12a-saradc", |
| 470 | "amlogic,meson-saradc"; |
| 471 | reg = <0x0 0x9000 0x0 0x48>; |
| 472 | #io-channel-cells = <1>; |
| 473 | interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>; |
| 474 | clocks = <&xtal>, |
| 475 | <&clkc_AO CLKID_AO_SAR_ADC>, |
| 476 | <&clkc_AO CLKID_AO_SAR_ADC_CLK>, |
| 477 | <&clkc_AO CLKID_AO_SAR_ADC_SEL>; |
| 478 | clock-names = "clkin", "core", "adc_clk", "adc_sel"; |
| 479 | status = "disabled"; |
| 480 | }; |
| 481 | }; |
| 482 | |
| 483 | vpu: vpu@ff900000 { |
| 484 | compatible = "amlogic,meson-g12a-vpu"; |
| 485 | reg = <0x0 0xff900000 0x0 0x100000>, |
| 486 | <0x0 0xff63c000 0x0 0x1000>; |
| 487 | reg-names = "vpu", "hhi"; |
| 488 | interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; |
| 489 | #address-cells = <1>; |
| 490 | #size-cells = <0>; |
| 491 | amlogic,canvas = <&canvas>; |
| 492 | power-domains = <&pwrc_vpu>; |
| 493 | |
| 494 | /* CVBS VDAC output port */ |
| 495 | cvbs_vdac_port: port@0 { |
| 496 | reg = <0>; |
| 497 | }; |
| 498 | |
| 499 | /* HDMI-TX output port */ |
| 500 | hdmi_tx_port: port@1 { |
| 501 | reg = <1>; |
| 502 | |
| 503 | hdmi_tx_out: endpoint { |
| 504 | remote-endpoint = <&hdmi_tx_in>; |
| 505 | }; |
| 506 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 507 | }; |
| 508 | |
| 509 | gic: interrupt-controller@ffc01000 { |
| 510 | compatible = "arm,gic-400"; |
| 511 | reg = <0x0 0xffc01000 0 0x1000>, |
| 512 | <0x0 0xffc02000 0 0x2000>, |
| 513 | <0x0 0xffc04000 0 0x2000>, |
| 514 | <0x0 0xffc06000 0 0x2000>; |
| 515 | interrupt-controller; |
| 516 | interrupts = <GIC_PPI 9 |
| 517 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; |
| 518 | #interrupt-cells = <3>; |
| 519 | #address-cells = <0>; |
| 520 | }; |
| 521 | |
| 522 | cbus: bus@ffd00000 { |
| 523 | compatible = "simple-bus"; |
| 524 | reg = <0x0 0xffd00000 0x0 0x100000>; |
| 525 | #address-cells = <2>; |
| 526 | #size-cells = <2>; |
| 527 | ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>; |
| 528 | |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 529 | reset: reset-controller@1004 { |
| 530 | compatible = "amlogic,meson-g12a-reset", |
| 531 | "amlogic,meson-axg-reset"; |
| 532 | reg = <0x0 0x1004 0x0 0x9c>; |
| 533 | #reset-cells = <1>; |
| 534 | }; |
| 535 | |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 536 | clk_msr: clock-measure@18000 { |
| 537 | compatible = "amlogic,meson-g12a-clk-measure"; |
| 538 | reg = <0x0 0x18000 0x0 0x10>; |
| 539 | }; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 540 | |
| 541 | uart_C: serial@22000 { |
| 542 | compatible = "amlogic,meson-gx-uart"; |
| 543 | reg = <0x0 0x22000 0x0 0x18>; |
| 544 | interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>; |
| 545 | clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>; |
| 546 | clock-names = "xtal", "pclk", "baud"; |
| 547 | status = "disabled"; |
| 548 | }; |
| 549 | |
| 550 | uart_B: serial@23000 { |
| 551 | compatible = "amlogic,meson-gx-uart"; |
| 552 | reg = <0x0 0x23000 0x0 0x18>; |
| 553 | interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; |
| 554 | clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>; |
| 555 | clock-names = "xtal", "pclk", "baud"; |
| 556 | status = "disabled"; |
| 557 | }; |
| 558 | |
| 559 | uart_A: serial@24000 { |
| 560 | compatible = "amlogic,meson-gx-uart"; |
| 561 | reg = <0x0 0x24000 0x0 0x18>; |
| 562 | interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; |
| 563 | clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>; |
| 564 | clock-names = "xtal", "pclk", "baud"; |
| 565 | status = "disabled"; |
| 566 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 567 | }; |
Neil Armstrong | dfbcea2 | 2019-05-28 10:50:36 +0200 | [diff] [blame] | 568 | |
| 569 | usb: usb@ffe09000 { |
| 570 | status = "disabled"; |
| 571 | compatible = "amlogic,meson-g12a-usb-ctrl"; |
| 572 | reg = <0x0 0xffe09000 0x0 0xa0>; |
| 573 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |
| 574 | #address-cells = <2>; |
| 575 | #size-cells = <2>; |
| 576 | ranges; |
| 577 | |
| 578 | clocks = <&clkc CLKID_USB>; |
| 579 | resets = <&reset RESET_USB>; |
| 580 | |
| 581 | dr_mode = "otg"; |
| 582 | |
| 583 | phys = <&usb2_phy0>, <&usb2_phy1>, |
| 584 | <&usb3_pcie_phy PHY_TYPE_USB3>; |
| 585 | phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0"; |
| 586 | |
| 587 | dwc2: usb@ff400000 { |
| 588 | compatible = "amlogic,meson-g12a-usb", "snps,dwc2"; |
| 589 | reg = <0x0 0xff400000 0x0 0x40000>; |
| 590 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; |
| 591 | clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; |
| 592 | clock-names = "ddr"; |
| 593 | phys = <&usb2_phy1>; |
| 594 | dr_mode = "peripheral"; |
| 595 | g-rx-fifo-size = <192>; |
| 596 | g-np-tx-fifo-size = <128>; |
| 597 | g-tx-fifo-size = <128 128 16 16 16>; |
| 598 | }; |
| 599 | |
| 600 | dwc3: usb@ff500000 { |
| 601 | compatible = "snps,dwc3"; |
| 602 | reg = <0x0 0xff500000 0x0 0x100000>; |
| 603 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; |
| 604 | dr_mode = "host"; |
| 605 | snps,dis_u2_susphy_quirk; |
| 606 | snps,quirk-frame-length-adjustment; |
| 607 | }; |
| 608 | }; |
| 609 | |
| 610 | mali: gpu@ffe40000 { |
| 611 | compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; |
| 612 | reg = <0x0 0xffe40000 0x0 0x40000>; |
| 613 | interrupt-parent = <&gic>; |
| 614 | interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, |
| 615 | <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, |
| 616 | <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; |
| 617 | interrupt-names = "gpu", "mmu", "job"; |
| 618 | clocks = <&clkc CLKID_MALI>; |
| 619 | resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; |
| 620 | |
| 621 | /* |
| 622 | * Mali clocking is provided by two identical clock paths |
| 623 | * MALI_0 and MALI_1 muxed to a single clock by a glitch |
| 624 | * free mux to safely change frequency while running. |
| 625 | */ |
| 626 | assigned-clocks = <&clkc CLKID_MALI_0_SEL>, |
| 627 | <&clkc CLKID_MALI_0>, |
| 628 | <&clkc CLKID_MALI>; /* Glitch free mux */ |
| 629 | assigned-clock-parents = <&clkc CLKID_FCLK_DIV2P5>, |
| 630 | <0>, /* Do Nothing */ |
| 631 | <&clkc CLKID_MALI_0>; |
| 632 | assigned-clock-rates = <0>, /* Do Nothing */ |
| 633 | <800000000>, |
| 634 | <0>; /* Do Nothing */ |
| 635 | }; |
Neil Armstrong | a7b09d5 | 2019-03-08 15:09:40 +0100 | [diff] [blame] | 636 | }; |
| 637 | |
| 638 | timer { |
| 639 | compatible = "arm,armv8-timer"; |
| 640 | interrupts = <GIC_PPI 13 |
| 641 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, |
| 642 | <GIC_PPI 14 |
| 643 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, |
| 644 | <GIC_PPI 11 |
| 645 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, |
| 646 | <GIC_PPI 10 |
| 647 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; |
| 648 | }; |
| 649 | |
| 650 | xtal: xtal-clk { |
| 651 | compatible = "fixed-clock"; |
| 652 | clock-frequency = <24000000>; |
| 653 | clock-output-names = "xtal"; |
| 654 | #clock-cells = <0>; |
| 655 | }; |
| 656 | |
| 657 | }; |