1bfcef28aSBeniamino Galvani/* 2bfcef28aSBeniamino Galvani * Copyright (c) 2016 Andreas Färber 3bfcef28aSBeniamino Galvani * 4bfcef28aSBeniamino Galvani * This file is dual-licensed: you can use it either under the terms 5bfcef28aSBeniamino Galvani * of the GPL or the X11 license, at your option. Note that this dual 6bfcef28aSBeniamino Galvani * licensing only applies to this file, and not this project as a 7bfcef28aSBeniamino Galvani * whole. 8bfcef28aSBeniamino Galvani * 9bfcef28aSBeniamino Galvani * a) This library is free software; you can redistribute it and/or 10bfcef28aSBeniamino Galvani * modify it under the terms of the GNU General Public License as 11bfcef28aSBeniamino Galvani * published by the Free Software Foundation; either version 2 of the 12bfcef28aSBeniamino Galvani * License, or (at your option) any later version. 13bfcef28aSBeniamino Galvani * 14bfcef28aSBeniamino Galvani * This library is distributed in the hope that it will be useful, 15bfcef28aSBeniamino Galvani * but WITHOUT ANY WARRANTY; without even the implied warranty of 16bfcef28aSBeniamino Galvani * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17bfcef28aSBeniamino Galvani * GNU General Public License for more details. 18bfcef28aSBeniamino Galvani * 19bfcef28aSBeniamino Galvani * Or, alternatively, 20bfcef28aSBeniamino Galvani * 21bfcef28aSBeniamino Galvani * b) Permission is hereby granted, free of charge, to any person 22bfcef28aSBeniamino Galvani * obtaining a copy of this software and associated documentation 23bfcef28aSBeniamino Galvani * files (the "Software"), to deal in the Software without 24bfcef28aSBeniamino Galvani * restriction, including without limitation the rights to use, 25bfcef28aSBeniamino Galvani * copy, modify, merge, publish, distribute, sublicense, and/or 26bfcef28aSBeniamino Galvani * sell copies of the Software, and to permit persons to whom the 27bfcef28aSBeniamino Galvani * Software is furnished to do so, subject to the following 28bfcef28aSBeniamino Galvani * conditions: 29bfcef28aSBeniamino Galvani * 30bfcef28aSBeniamino Galvani * The above copyright notice and this permission notice shall be 31bfcef28aSBeniamino Galvani * included in all copies or substantial portions of the Software. 32bfcef28aSBeniamino Galvani * 33bfcef28aSBeniamino Galvani * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34bfcef28aSBeniamino Galvani * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35bfcef28aSBeniamino Galvani * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36bfcef28aSBeniamino Galvani * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37bfcef28aSBeniamino Galvani * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38bfcef28aSBeniamino Galvani * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39bfcef28aSBeniamino Galvani * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40bfcef28aSBeniamino Galvani * OTHER DEALINGS IN THE SOFTWARE. 41bfcef28aSBeniamino Galvani */ 42bfcef28aSBeniamino Galvani 43a3b02a1dSHeiner Kallweit#include "meson-gx.dtsi" 44dd83840eSBeniamino Galvani#include <dt-bindings/gpio/meson-gxbb-gpio.h> 45dd83840eSBeniamino Galvani#include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> 46a3b02a1dSHeiner Kallweit#include <dt-bindings/clock/gxbb-clkc.h> 47a3b02a1dSHeiner Kallweit#include <dt-bindings/clock/gxbb-aoclkc.h> 48a3b02a1dSHeiner Kallweit#include <dt-bindings/reset/gxbb-aoclkc.h> 49bfcef28aSBeniamino Galvani 50bfcef28aSBeniamino Galvani/ { 51bfcef28aSBeniamino Galvani compatible = "amlogic,meson-gxbb"; 52bfcef28aSBeniamino Galvani 53bfcef28aSBeniamino Galvani soc { 54a3b02a1dSHeiner Kallweit usb0_phy: phy@c0000000 { 55a3b02a1dSHeiner Kallweit compatible = "amlogic,meson-gxbb-usb2-phy"; 56a3b02a1dSHeiner Kallweit #phy-cells = <0>; 57a3b02a1dSHeiner Kallweit reg = <0x0 0xc0000000 0x0 0x20>; 58a3b02a1dSHeiner Kallweit resets = <&reset RESET_USB_OTG>; 59a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>; 60a3b02a1dSHeiner Kallweit clock-names = "usb_general", "usb"; 61bfcef28aSBeniamino Galvani status = "disabled"; 62bfcef28aSBeniamino Galvani }; 63dd83840eSBeniamino Galvani 64a3b02a1dSHeiner Kallweit usb1_phy: phy@c0000020 { 65a3b02a1dSHeiner Kallweit compatible = "amlogic,meson-gxbb-usb2-phy"; 66a3b02a1dSHeiner Kallweit #phy-cells = <0>; 67a3b02a1dSHeiner Kallweit reg = <0x0 0xc0000020 0x0 0x20>; 68a3b02a1dSHeiner Kallweit resets = <&reset RESET_USB_OTG>; 69a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; 70a3b02a1dSHeiner Kallweit clock-names = "usb_general", "usb"; 71dd83840eSBeniamino Galvani status = "disabled"; 72dd83840eSBeniamino Galvani }; 73dd83840eSBeniamino Galvani 74a3b02a1dSHeiner Kallweit usb0: usb@c9000000 { 75a3b02a1dSHeiner Kallweit compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; 76a3b02a1dSHeiner Kallweit reg = <0x0 0xc9000000 0x0 0x40000>; 77a3b02a1dSHeiner Kallweit interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 78a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; 79a3b02a1dSHeiner Kallweit clock-names = "otg"; 80a3b02a1dSHeiner Kallweit phys = <&usb0_phy>; 81a3b02a1dSHeiner Kallweit phy-names = "usb2-phy"; 82a3b02a1dSHeiner Kallweit dr_mode = "host"; 83a3b02a1dSHeiner Kallweit status = "disabled"; 84a3b02a1dSHeiner Kallweit }; 85a3b02a1dSHeiner Kallweit 86a3b02a1dSHeiner Kallweit usb1: usb@c9100000 { 87a3b02a1dSHeiner Kallweit compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; 88a3b02a1dSHeiner Kallweit reg = <0x0 0xc9100000 0x0 0x40000>; 89a3b02a1dSHeiner Kallweit interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 90a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; 91a3b02a1dSHeiner Kallweit clock-names = "otg"; 92a3b02a1dSHeiner Kallweit phys = <&usb1_phy>; 93a3b02a1dSHeiner Kallweit phy-names = "usb2-phy"; 94a3b02a1dSHeiner Kallweit dr_mode = "host"; 95a3b02a1dSHeiner Kallweit status = "disabled"; 96a3b02a1dSHeiner Kallweit }; 97a3b02a1dSHeiner Kallweit }; 98a3b02a1dSHeiner Kallweit}; 99a3b02a1dSHeiner Kallweit 100a3b02a1dSHeiner Kallweitðmac { 101a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_ETH>, 102a3b02a1dSHeiner Kallweit <&clkc CLKID_FCLK_DIV2>, 103a3b02a1dSHeiner Kallweit <&clkc CLKID_MPLL2>; 104a3b02a1dSHeiner Kallweit clock-names = "stmmaceth", "clkin0", "clkin1"; 105bfcef28aSBeniamino Galvani}; 106bfcef28aSBeniamino Galvani 107a3b02a1dSHeiner Kallweit&aobus { 108dd83840eSBeniamino Galvani pinctrl_aobus: pinctrl@14 { 109dd83840eSBeniamino Galvani compatible = "amlogic,meson-gxbb-aobus-pinctrl"; 110dd83840eSBeniamino Galvani #address-cells = <2>; 111dd83840eSBeniamino Galvani #size-cells = <2>; 112dd83840eSBeniamino Galvani ranges; 113dd83840eSBeniamino Galvani 114dd83840eSBeniamino Galvani gpio_ao: bank@14 { 115dd83840eSBeniamino Galvani reg = <0x0 0x00014 0x0 0x8>, 116dd83840eSBeniamino Galvani <0x0 0x0002c 0x0 0x4>, 117dd83840eSBeniamino Galvani <0x0 0x00024 0x0 0x8>; 118dd83840eSBeniamino Galvani reg-names = "mux", "pull", "gpio"; 119dd83840eSBeniamino Galvani gpio-controller; 120dd83840eSBeniamino Galvani #gpio-cells = <2>; 121*4a63a75cSBeniamino Galvani gpio-ranges = <&pinctrl_aobus 0 0 14>; 122dd83840eSBeniamino Galvani }; 123dd83840eSBeniamino Galvani 124dd83840eSBeniamino Galvani uart_ao_a_pins: uart_ao_a { 125dd83840eSBeniamino Galvani mux { 126dd83840eSBeniamino Galvani groups = "uart_tx_ao_a", "uart_rx_ao_a"; 127dd83840eSBeniamino Galvani function = "uart_ao"; 128dd83840eSBeniamino Galvani }; 129dd83840eSBeniamino Galvani }; 130a3b02a1dSHeiner Kallweit 131a3b02a1dSHeiner Kallweit uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts { 132a3b02a1dSHeiner Kallweit mux { 133a3b02a1dSHeiner Kallweit groups = "uart_cts_ao_a", 134a3b02a1dSHeiner Kallweit "uart_rts_ao_a"; 135a3b02a1dSHeiner Kallweit function = "uart_ao"; 136a3b02a1dSHeiner Kallweit }; 137dd83840eSBeniamino Galvani }; 138dd83840eSBeniamino Galvani 139a3b02a1dSHeiner Kallweit uart_ao_b_pins: uart_ao_b { 140a3b02a1dSHeiner Kallweit mux { 141a3b02a1dSHeiner Kallweit groups = "uart_tx_ao_b", "uart_rx_ao_b"; 142a3b02a1dSHeiner Kallweit function = "uart_ao_b"; 143a3b02a1dSHeiner Kallweit }; 144a3b02a1dSHeiner Kallweit }; 145a3b02a1dSHeiner Kallweit 146a3b02a1dSHeiner Kallweit uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts { 147a3b02a1dSHeiner Kallweit mux { 148a3b02a1dSHeiner Kallweit groups = "uart_cts_ao_b", 149a3b02a1dSHeiner Kallweit "uart_rts_ao_b"; 150a3b02a1dSHeiner Kallweit function = "uart_ao_b"; 151a3b02a1dSHeiner Kallweit }; 152a3b02a1dSHeiner Kallweit }; 153a3b02a1dSHeiner Kallweit 154a3b02a1dSHeiner Kallweit remote_input_ao_pins: remote_input_ao { 155a3b02a1dSHeiner Kallweit mux { 156a3b02a1dSHeiner Kallweit groups = "remote_input_ao"; 157a3b02a1dSHeiner Kallweit function = "remote_input_ao"; 158a3b02a1dSHeiner Kallweit }; 159a3b02a1dSHeiner Kallweit }; 160a3b02a1dSHeiner Kallweit 161a3b02a1dSHeiner Kallweit i2c_ao_pins: i2c_ao { 162a3b02a1dSHeiner Kallweit mux { 163a3b02a1dSHeiner Kallweit groups = "i2c_sck_ao", 164a3b02a1dSHeiner Kallweit "i2c_sda_ao"; 165a3b02a1dSHeiner Kallweit function = "i2c_ao"; 166a3b02a1dSHeiner Kallweit }; 167a3b02a1dSHeiner Kallweit }; 168a3b02a1dSHeiner Kallweit 169a3b02a1dSHeiner Kallweit pwm_ao_a_3_pins: pwm_ao_a_3 { 170a3b02a1dSHeiner Kallweit mux { 171a3b02a1dSHeiner Kallweit groups = "pwm_ao_a_3"; 172a3b02a1dSHeiner Kallweit function = "pwm_ao_a_3"; 173a3b02a1dSHeiner Kallweit }; 174a3b02a1dSHeiner Kallweit }; 175a3b02a1dSHeiner Kallweit 176a3b02a1dSHeiner Kallweit pwm_ao_a_6_pins: pwm_ao_a_6 { 177a3b02a1dSHeiner Kallweit mux { 178a3b02a1dSHeiner Kallweit groups = "pwm_ao_a_6"; 179a3b02a1dSHeiner Kallweit function = "pwm_ao_a_6"; 180a3b02a1dSHeiner Kallweit }; 181a3b02a1dSHeiner Kallweit }; 182a3b02a1dSHeiner Kallweit 183a3b02a1dSHeiner Kallweit pwm_ao_a_12_pins: pwm_ao_a_12 { 184a3b02a1dSHeiner Kallweit mux { 185a3b02a1dSHeiner Kallweit groups = "pwm_ao_a_12"; 186a3b02a1dSHeiner Kallweit function = "pwm_ao_a_12"; 187a3b02a1dSHeiner Kallweit }; 188a3b02a1dSHeiner Kallweit }; 189a3b02a1dSHeiner Kallweit 190a3b02a1dSHeiner Kallweit pwm_ao_b_pins: pwm_ao_b { 191a3b02a1dSHeiner Kallweit mux { 192a3b02a1dSHeiner Kallweit groups = "pwm_ao_b"; 193a3b02a1dSHeiner Kallweit function = "pwm_ao_b"; 194a3b02a1dSHeiner Kallweit }; 195a3b02a1dSHeiner Kallweit }; 196*4a63a75cSBeniamino Galvani 197*4a63a75cSBeniamino Galvani i2s_am_clk_pins: i2s_am_clk { 198*4a63a75cSBeniamino Galvani mux { 199*4a63a75cSBeniamino Galvani groups = "i2s_am_clk"; 200*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 201*4a63a75cSBeniamino Galvani }; 202a3b02a1dSHeiner Kallweit }; 203a3b02a1dSHeiner Kallweit 204*4a63a75cSBeniamino Galvani i2s_out_ao_clk_pins: i2s_out_ao_clk { 205*4a63a75cSBeniamino Galvani mux { 206*4a63a75cSBeniamino Galvani groups = "i2s_out_ao_clk"; 207*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 208*4a63a75cSBeniamino Galvani }; 209a3b02a1dSHeiner Kallweit }; 210a3b02a1dSHeiner Kallweit 211*4a63a75cSBeniamino Galvani i2s_out_lr_clk_pins: i2s_out_lr_clk { 212*4a63a75cSBeniamino Galvani mux { 213*4a63a75cSBeniamino Galvani groups = "i2s_out_lr_clk"; 214*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 215*4a63a75cSBeniamino Galvani }; 216a3b02a1dSHeiner Kallweit }; 217a3b02a1dSHeiner Kallweit 218*4a63a75cSBeniamino Galvani i2s_out_ch01_ao_pins: i2s_out_ch01_ao { 219*4a63a75cSBeniamino Galvani mux { 220*4a63a75cSBeniamino Galvani groups = "i2s_out_ch01_ao"; 221*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 222*4a63a75cSBeniamino Galvani }; 223*4a63a75cSBeniamino Galvani }; 224*4a63a75cSBeniamino Galvani 225*4a63a75cSBeniamino Galvani i2s_out_ch23_ao_pins: i2s_out_ch23_ao { 226*4a63a75cSBeniamino Galvani mux { 227*4a63a75cSBeniamino Galvani groups = "i2s_out_ch23_ao"; 228*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 229*4a63a75cSBeniamino Galvani }; 230*4a63a75cSBeniamino Galvani }; 231*4a63a75cSBeniamino Galvani 232*4a63a75cSBeniamino Galvani i2s_out_ch45_ao_pins: i2s_out_ch45_ao { 233*4a63a75cSBeniamino Galvani mux { 234*4a63a75cSBeniamino Galvani groups = "i2s_out_ch45_ao"; 235*4a63a75cSBeniamino Galvani function = "i2s_out_ao"; 236*4a63a75cSBeniamino Galvani }; 237*4a63a75cSBeniamino Galvani }; 238*4a63a75cSBeniamino Galvani 239*4a63a75cSBeniamino Galvani spdif_out_ao_6_pins: spdif_out_ao_6 { 240*4a63a75cSBeniamino Galvani mux { 241*4a63a75cSBeniamino Galvani groups = "spdif_out_ao_6"; 242*4a63a75cSBeniamino Galvani function = "spdif_out_ao"; 243*4a63a75cSBeniamino Galvani }; 244*4a63a75cSBeniamino Galvani }; 245*4a63a75cSBeniamino Galvani 246*4a63a75cSBeniamino Galvani spdif_out_ao_13_pins: spdif_out_ao_13 { 247*4a63a75cSBeniamino Galvani mux { 248*4a63a75cSBeniamino Galvani groups = "spdif_out_ao_13"; 249*4a63a75cSBeniamino Galvani function = "spdif_out_ao"; 250*4a63a75cSBeniamino Galvani }; 251*4a63a75cSBeniamino Galvani }; 252bfcef28aSBeniamino Galvani }; 253bfcef28aSBeniamino Galvani}; 254bfcef28aSBeniamino Galvani 255a3b02a1dSHeiner Kallweit&periphs { 256dd83840eSBeniamino Galvani pinctrl_periphs: pinctrl@4b0 { 257dd83840eSBeniamino Galvani compatible = "amlogic,meson-gxbb-periphs-pinctrl"; 258dd83840eSBeniamino Galvani #address-cells = <2>; 259dd83840eSBeniamino Galvani #size-cells = <2>; 260dd83840eSBeniamino Galvani ranges; 261dd83840eSBeniamino Galvani 262dd83840eSBeniamino Galvani gpio: bank@4b0 { 263dd83840eSBeniamino Galvani reg = <0x0 0x004b0 0x0 0x28>, 264dd83840eSBeniamino Galvani <0x0 0x004e8 0x0 0x14>, 265dd83840eSBeniamino Galvani <0x0 0x00120 0x0 0x14>, 266dd83840eSBeniamino Galvani <0x0 0x00430 0x0 0x40>; 267dd83840eSBeniamino Galvani reg-names = "mux", "pull", "pull-enable", "gpio"; 268dd83840eSBeniamino Galvani gpio-controller; 269dd83840eSBeniamino Galvani #gpio-cells = <2>; 270*4a63a75cSBeniamino Galvani gpio-ranges = <&pinctrl_periphs 0 14 120>; 271dd83840eSBeniamino Galvani }; 272dd83840eSBeniamino Galvani 273dd83840eSBeniamino Galvani emmc_pins: emmc { 274dd83840eSBeniamino Galvani mux { 275dd83840eSBeniamino Galvani groups = "emmc_nand_d07", 276dd83840eSBeniamino Galvani "emmc_cmd", 277a3b02a1dSHeiner Kallweit "emmc_clk", 278a3b02a1dSHeiner Kallweit "emmc_ds"; 279dd83840eSBeniamino Galvani function = "emmc"; 280dd83840eSBeniamino Galvani }; 281dd83840eSBeniamino Galvani }; 282dd83840eSBeniamino Galvani 283a3b02a1dSHeiner Kallweit nor_pins: nor { 284a3b02a1dSHeiner Kallweit mux { 285a3b02a1dSHeiner Kallweit groups = "nor_d", 286a3b02a1dSHeiner Kallweit "nor_q", 287a3b02a1dSHeiner Kallweit "nor_c", 288a3b02a1dSHeiner Kallweit "nor_cs"; 289a3b02a1dSHeiner Kallweit function = "nor"; 290a3b02a1dSHeiner Kallweit }; 291a3b02a1dSHeiner Kallweit }; 292a3b02a1dSHeiner Kallweit 293dd83840eSBeniamino Galvani sdcard_pins: sdcard { 294dd83840eSBeniamino Galvani mux { 295dd83840eSBeniamino Galvani groups = "sdcard_d0", 296dd83840eSBeniamino Galvani "sdcard_d1", 297dd83840eSBeniamino Galvani "sdcard_d2", 298dd83840eSBeniamino Galvani "sdcard_d3", 299dd83840eSBeniamino Galvani "sdcard_cmd", 300dd83840eSBeniamino Galvani "sdcard_clk"; 301dd83840eSBeniamino Galvani function = "sdcard"; 302dd83840eSBeniamino Galvani }; 303dd83840eSBeniamino Galvani }; 304dd83840eSBeniamino Galvani 305a3b02a1dSHeiner Kallweit sdio_pins: sdio { 306a3b02a1dSHeiner Kallweit mux { 307a3b02a1dSHeiner Kallweit groups = "sdio_d0", 308a3b02a1dSHeiner Kallweit "sdio_d1", 309a3b02a1dSHeiner Kallweit "sdio_d2", 310a3b02a1dSHeiner Kallweit "sdio_d3", 311a3b02a1dSHeiner Kallweit "sdio_cmd", 312a3b02a1dSHeiner Kallweit "sdio_clk"; 313a3b02a1dSHeiner Kallweit function = "sdio"; 314a3b02a1dSHeiner Kallweit }; 315a3b02a1dSHeiner Kallweit }; 316a3b02a1dSHeiner Kallweit 317a3b02a1dSHeiner Kallweit sdio_irq_pins: sdio_irq { 318a3b02a1dSHeiner Kallweit mux { 319a3b02a1dSHeiner Kallweit groups = "sdio_irq"; 320a3b02a1dSHeiner Kallweit function = "sdio"; 321a3b02a1dSHeiner Kallweit }; 322a3b02a1dSHeiner Kallweit }; 323a3b02a1dSHeiner Kallweit 324dd83840eSBeniamino Galvani uart_a_pins: uart_a { 325dd83840eSBeniamino Galvani mux { 326dd83840eSBeniamino Galvani groups = "uart_tx_a", 327dd83840eSBeniamino Galvani "uart_rx_a"; 328dd83840eSBeniamino Galvani function = "uart_a"; 329dd83840eSBeniamino Galvani }; 330dd83840eSBeniamino Galvani }; 331dd83840eSBeniamino Galvani 332a3b02a1dSHeiner Kallweit uart_a_cts_rts_pins: uart_a_cts_rts { 333a3b02a1dSHeiner Kallweit mux { 334a3b02a1dSHeiner Kallweit groups = "uart_cts_a", 335a3b02a1dSHeiner Kallweit "uart_rts_a"; 336a3b02a1dSHeiner Kallweit function = "uart_a"; 337a3b02a1dSHeiner Kallweit }; 338a3b02a1dSHeiner Kallweit }; 339a3b02a1dSHeiner Kallweit 340dd83840eSBeniamino Galvani uart_b_pins: uart_b { 341dd83840eSBeniamino Galvani mux { 342dd83840eSBeniamino Galvani groups = "uart_tx_b", 343dd83840eSBeniamino Galvani "uart_rx_b"; 344dd83840eSBeniamino Galvani function = "uart_b"; 345dd83840eSBeniamino Galvani }; 346dd83840eSBeniamino Galvani }; 347dd83840eSBeniamino Galvani 348a3b02a1dSHeiner Kallweit uart_b_cts_rts_pins: uart_b_cts_rts { 349a3b02a1dSHeiner Kallweit mux { 350a3b02a1dSHeiner Kallweit groups = "uart_cts_b", 351a3b02a1dSHeiner Kallweit "uart_rts_b"; 352a3b02a1dSHeiner Kallweit function = "uart_b"; 353a3b02a1dSHeiner Kallweit }; 354a3b02a1dSHeiner Kallweit }; 355a3b02a1dSHeiner Kallweit 356dd83840eSBeniamino Galvani uart_c_pins: uart_c { 357dd83840eSBeniamino Galvani mux { 358dd83840eSBeniamino Galvani groups = "uart_tx_c", 359dd83840eSBeniamino Galvani "uart_rx_c"; 360dd83840eSBeniamino Galvani function = "uart_c"; 361dd83840eSBeniamino Galvani }; 362dd83840eSBeniamino Galvani }; 363dd83840eSBeniamino Galvani 364a3b02a1dSHeiner Kallweit uart_c_cts_rts_pins: uart_c_cts_rts { 365a3b02a1dSHeiner Kallweit mux { 366a3b02a1dSHeiner Kallweit groups = "uart_cts_c", 367a3b02a1dSHeiner Kallweit "uart_rts_c"; 368a3b02a1dSHeiner Kallweit function = "uart_c"; 369a3b02a1dSHeiner Kallweit }; 370a3b02a1dSHeiner Kallweit }; 371a3b02a1dSHeiner Kallweit 372a3b02a1dSHeiner Kallweit i2c_a_pins: i2c_a { 373a3b02a1dSHeiner Kallweit mux { 374a3b02a1dSHeiner Kallweit groups = "i2c_sck_a", 375a3b02a1dSHeiner Kallweit "i2c_sda_a"; 376a3b02a1dSHeiner Kallweit function = "i2c_a"; 377a3b02a1dSHeiner Kallweit }; 378a3b02a1dSHeiner Kallweit }; 379a3b02a1dSHeiner Kallweit 380a3b02a1dSHeiner Kallweit i2c_b_pins: i2c_b { 381a3b02a1dSHeiner Kallweit mux { 382a3b02a1dSHeiner Kallweit groups = "i2c_sck_b", 383a3b02a1dSHeiner Kallweit "i2c_sda_b"; 384a3b02a1dSHeiner Kallweit function = "i2c_b"; 385a3b02a1dSHeiner Kallweit }; 386a3b02a1dSHeiner Kallweit }; 387a3b02a1dSHeiner Kallweit 388a3b02a1dSHeiner Kallweit i2c_c_pins: i2c_c { 389a3b02a1dSHeiner Kallweit mux { 390a3b02a1dSHeiner Kallweit groups = "i2c_sck_c", 391a3b02a1dSHeiner Kallweit "i2c_sda_c"; 392a3b02a1dSHeiner Kallweit function = "i2c_c"; 393a3b02a1dSHeiner Kallweit }; 394a3b02a1dSHeiner Kallweit }; 395a3b02a1dSHeiner Kallweit 396a3b02a1dSHeiner Kallweit eth_rgmii_pins: eth-rgmii { 397dd83840eSBeniamino Galvani mux { 398dd83840eSBeniamino Galvani groups = "eth_mdio", 399dd83840eSBeniamino Galvani "eth_mdc", 400dd83840eSBeniamino Galvani "eth_clk_rx_clk", 401dd83840eSBeniamino Galvani "eth_rx_dv", 402dd83840eSBeniamino Galvani "eth_rxd0", 403dd83840eSBeniamino Galvani "eth_rxd1", 404dd83840eSBeniamino Galvani "eth_rxd2", 405dd83840eSBeniamino Galvani "eth_rxd3", 406dd83840eSBeniamino Galvani "eth_rgmii_tx_clk", 407dd83840eSBeniamino Galvani "eth_tx_en", 408dd83840eSBeniamino Galvani "eth_txd0", 409dd83840eSBeniamino Galvani "eth_txd1", 410dd83840eSBeniamino Galvani "eth_txd2", 411dd83840eSBeniamino Galvani "eth_txd3"; 412dd83840eSBeniamino Galvani function = "eth"; 413dd83840eSBeniamino Galvani }; 414dd83840eSBeniamino Galvani }; 415a3b02a1dSHeiner Kallweit 416a3b02a1dSHeiner Kallweit eth_rmii_pins: eth-rmii { 417a3b02a1dSHeiner Kallweit mux { 418a3b02a1dSHeiner Kallweit groups = "eth_mdio", 419a3b02a1dSHeiner Kallweit "eth_mdc", 420a3b02a1dSHeiner Kallweit "eth_clk_rx_clk", 421a3b02a1dSHeiner Kallweit "eth_rx_dv", 422a3b02a1dSHeiner Kallweit "eth_rxd0", 423a3b02a1dSHeiner Kallweit "eth_rxd1", 424a3b02a1dSHeiner Kallweit "eth_tx_en", 425a3b02a1dSHeiner Kallweit "eth_txd0", 426a3b02a1dSHeiner Kallweit "eth_txd1"; 427a3b02a1dSHeiner Kallweit function = "eth"; 428dd83840eSBeniamino Galvani }; 429dd83840eSBeniamino Galvani }; 430dd83840eSBeniamino Galvani 431a3b02a1dSHeiner Kallweit pwm_a_x_pins: pwm_a_x { 432a3b02a1dSHeiner Kallweit mux { 433a3b02a1dSHeiner Kallweit groups = "pwm_a_x"; 434a3b02a1dSHeiner Kallweit function = "pwm_a_x"; 435a3b02a1dSHeiner Kallweit }; 436a3b02a1dSHeiner Kallweit }; 437dd83840eSBeniamino Galvani 438a3b02a1dSHeiner Kallweit pwm_a_y_pins: pwm_a_y { 439a3b02a1dSHeiner Kallweit mux { 440a3b02a1dSHeiner Kallweit groups = "pwm_a_y"; 441a3b02a1dSHeiner Kallweit function = "pwm_a_y"; 442a3b02a1dSHeiner Kallweit }; 443a3b02a1dSHeiner Kallweit }; 444a3b02a1dSHeiner Kallweit 445a3b02a1dSHeiner Kallweit pwm_b_pins: pwm_b { 446a3b02a1dSHeiner Kallweit mux { 447a3b02a1dSHeiner Kallweit groups = "pwm_b"; 448a3b02a1dSHeiner Kallweit function = "pwm_b"; 449a3b02a1dSHeiner Kallweit }; 450a3b02a1dSHeiner Kallweit }; 451a3b02a1dSHeiner Kallweit 452a3b02a1dSHeiner Kallweit pwm_d_pins: pwm_d { 453a3b02a1dSHeiner Kallweit mux { 454a3b02a1dSHeiner Kallweit groups = "pwm_d"; 455a3b02a1dSHeiner Kallweit function = "pwm_d"; 456a3b02a1dSHeiner Kallweit }; 457a3b02a1dSHeiner Kallweit }; 458a3b02a1dSHeiner Kallweit 459a3b02a1dSHeiner Kallweit pwm_e_pins: pwm_e { 460a3b02a1dSHeiner Kallweit mux { 461a3b02a1dSHeiner Kallweit groups = "pwm_e"; 462a3b02a1dSHeiner Kallweit function = "pwm_e"; 463a3b02a1dSHeiner Kallweit }; 464a3b02a1dSHeiner Kallweit }; 465a3b02a1dSHeiner Kallweit 466a3b02a1dSHeiner Kallweit pwm_f_x_pins: pwm_f_x { 467a3b02a1dSHeiner Kallweit mux { 468a3b02a1dSHeiner Kallweit groups = "pwm_f_x"; 469a3b02a1dSHeiner Kallweit function = "pwm_f_x"; 470a3b02a1dSHeiner Kallweit }; 471a3b02a1dSHeiner Kallweit }; 472a3b02a1dSHeiner Kallweit 473a3b02a1dSHeiner Kallweit pwm_f_y_pins: pwm_f_y { 474a3b02a1dSHeiner Kallweit mux { 475a3b02a1dSHeiner Kallweit groups = "pwm_f_y"; 476a3b02a1dSHeiner Kallweit function = "pwm_f_y"; 477a3b02a1dSHeiner Kallweit }; 478a3b02a1dSHeiner Kallweit }; 479a3b02a1dSHeiner Kallweit 480a3b02a1dSHeiner Kallweit hdmi_hpd_pins: hdmi_hpd { 481a3b02a1dSHeiner Kallweit mux { 482a3b02a1dSHeiner Kallweit groups = "hdmi_hpd"; 483a3b02a1dSHeiner Kallweit function = "hdmi_hpd"; 484a3b02a1dSHeiner Kallweit }; 485a3b02a1dSHeiner Kallweit }; 486a3b02a1dSHeiner Kallweit 487a3b02a1dSHeiner Kallweit hdmi_i2c_pins: hdmi_i2c { 488a3b02a1dSHeiner Kallweit mux { 489a3b02a1dSHeiner Kallweit groups = "hdmi_sda", "hdmi_scl"; 490a3b02a1dSHeiner Kallweit function = "hdmi_i2c"; 491a3b02a1dSHeiner Kallweit }; 492a3b02a1dSHeiner Kallweit }; 493*4a63a75cSBeniamino Galvani 494*4a63a75cSBeniamino Galvani i2sout_ch23_y_pins: i2sout_ch23_y { 495*4a63a75cSBeniamino Galvani mux { 496*4a63a75cSBeniamino Galvani groups = "i2sout_ch23_y"; 497*4a63a75cSBeniamino Galvani function = "i2s_out"; 498*4a63a75cSBeniamino Galvani }; 499*4a63a75cSBeniamino Galvani }; 500*4a63a75cSBeniamino Galvani 501*4a63a75cSBeniamino Galvani i2sout_ch45_y_pins: i2sout_ch45_y { 502*4a63a75cSBeniamino Galvani mux { 503*4a63a75cSBeniamino Galvani groups = "i2sout_ch45_y"; 504*4a63a75cSBeniamino Galvani function = "i2s_out"; 505*4a63a75cSBeniamino Galvani }; 506*4a63a75cSBeniamino Galvani }; 507*4a63a75cSBeniamino Galvani 508*4a63a75cSBeniamino Galvani i2sout_ch67_y_pins: i2sout_ch67_y { 509*4a63a75cSBeniamino Galvani mux { 510*4a63a75cSBeniamino Galvani groups = "i2sout_ch67_y"; 511*4a63a75cSBeniamino Galvani function = "i2s_out"; 512*4a63a75cSBeniamino Galvani }; 513*4a63a75cSBeniamino Galvani }; 514*4a63a75cSBeniamino Galvani 515*4a63a75cSBeniamino Galvani spdif_out_y_pins: spdif_out_y { 516*4a63a75cSBeniamino Galvani mux { 517*4a63a75cSBeniamino Galvani groups = "spdif_out_y"; 518*4a63a75cSBeniamino Galvani function = "spdif_out"; 519*4a63a75cSBeniamino Galvani }; 520*4a63a75cSBeniamino Galvani }; 521a3b02a1dSHeiner Kallweit }; 522a3b02a1dSHeiner Kallweit}; 523a3b02a1dSHeiner Kallweit 524a3b02a1dSHeiner Kallweit&hiubus { 525dd83840eSBeniamino Galvani clkc: clock-controller@0 { 526dd83840eSBeniamino Galvani compatible = "amlogic,gxbb-clkc"; 527dd83840eSBeniamino Galvani #clock-cells = <1>; 528dd83840eSBeniamino Galvani reg = <0x0 0x0 0x0 0x3db>; 529dd83840eSBeniamino Galvani }; 530dd83840eSBeniamino Galvani}; 531dd83840eSBeniamino Galvani 532*4a63a75cSBeniamino Galvani&apb { 533*4a63a75cSBeniamino Galvani mali: gpu@c0000 { 534*4a63a75cSBeniamino Galvani compatible = "amlogic,meson-gxbb-mali", "arm,mali-450"; 535*4a63a75cSBeniamino Galvani reg = <0x0 0xc0000 0x0 0x40000>; 536*4a63a75cSBeniamino Galvani interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 537*4a63a75cSBeniamino Galvani <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 538*4a63a75cSBeniamino Galvani <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 539*4a63a75cSBeniamino Galvani <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 540*4a63a75cSBeniamino Galvani <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 541*4a63a75cSBeniamino Galvani <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 542*4a63a75cSBeniamino Galvani <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 543*4a63a75cSBeniamino Galvani <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 544*4a63a75cSBeniamino Galvani <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 545*4a63a75cSBeniamino Galvani <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 546*4a63a75cSBeniamino Galvani interrupt-names = "gp", "gpmmu", "pp", "pmu", 547*4a63a75cSBeniamino Galvani "pp0", "ppmmu0", "pp1", "ppmmu1", 548*4a63a75cSBeniamino Galvani "pp2", "ppmmu2"; 549*4a63a75cSBeniamino Galvani clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 550*4a63a75cSBeniamino Galvani clock-names = "bus", "core"; 551*4a63a75cSBeniamino Galvani 552*4a63a75cSBeniamino Galvani /* 553*4a63a75cSBeniamino Galvani * Mali clocking is provided by two identical clock paths 554*4a63a75cSBeniamino Galvani * MALI_0 and MALI_1 muxed to a single clock by a glitch 555*4a63a75cSBeniamino Galvani * free mux to safely change frequency while running. 556*4a63a75cSBeniamino Galvani */ 557*4a63a75cSBeniamino Galvani assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 558*4a63a75cSBeniamino Galvani <&clkc CLKID_MALI_0>, 559*4a63a75cSBeniamino Galvani <&clkc CLKID_MALI>; /* Glitch free mux */ 560*4a63a75cSBeniamino Galvani assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, 561*4a63a75cSBeniamino Galvani <0>, /* Do Nothing */ 562*4a63a75cSBeniamino Galvani <&clkc CLKID_MALI_0>; 563*4a63a75cSBeniamino Galvani assigned-clock-rates = <0>, /* Do Nothing */ 564*4a63a75cSBeniamino Galvani <666666666>, 565*4a63a75cSBeniamino Galvani <0>; /* Do Nothing */ 566*4a63a75cSBeniamino Galvani }; 567*4a63a75cSBeniamino Galvani}; 568*4a63a75cSBeniamino Galvani 569a3b02a1dSHeiner Kallweit&i2c_A { 570a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_I2C>; 571bfcef28aSBeniamino Galvani}; 572dd83840eSBeniamino Galvani 573*4a63a75cSBeniamino Galvani&i2c_AO { 574*4a63a75cSBeniamino Galvani clocks = <&clkc CLKID_AO_I2C>; 575*4a63a75cSBeniamino Galvani}; 576*4a63a75cSBeniamino Galvani 577a3b02a1dSHeiner Kallweit&i2c_B { 578a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_I2C>; 579dd83840eSBeniamino Galvani}; 580a3b02a1dSHeiner Kallweit 581a3b02a1dSHeiner Kallweit&i2c_C { 582a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_I2C>; 583bfcef28aSBeniamino Galvani}; 584a3b02a1dSHeiner Kallweit 585*4a63a75cSBeniamino Galvani&saradc { 586*4a63a75cSBeniamino Galvani compatible = "amlogic,meson-gxbb-saradc", "amlogic,meson-saradc"; 587*4a63a75cSBeniamino Galvani clocks = <&xtal>, 588*4a63a75cSBeniamino Galvani <&clkc CLKID_SAR_ADC>, 589*4a63a75cSBeniamino Galvani <&clkc CLKID_SANA>, 590*4a63a75cSBeniamino Galvani <&clkc CLKID_SAR_ADC_CLK>, 591*4a63a75cSBeniamino Galvani <&clkc CLKID_SAR_ADC_SEL>; 592*4a63a75cSBeniamino Galvani clock-names = "clkin", "core", "sana", "adc_clk", "adc_sel"; 593*4a63a75cSBeniamino Galvani}; 594*4a63a75cSBeniamino Galvani 595a3b02a1dSHeiner Kallweit&sd_emmc_a { 596a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_SD_EMMC_A>, 597a3b02a1dSHeiner Kallweit <&xtal>, 598a3b02a1dSHeiner Kallweit <&clkc CLKID_FCLK_DIV2>; 599a3b02a1dSHeiner Kallweit clock-names = "core", "clkin0", "clkin1"; 600a3b02a1dSHeiner Kallweit}; 601a3b02a1dSHeiner Kallweit 602a3b02a1dSHeiner Kallweit&sd_emmc_b { 603a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_SD_EMMC_B>, 604a3b02a1dSHeiner Kallweit <&xtal>, 605a3b02a1dSHeiner Kallweit <&clkc CLKID_FCLK_DIV2>; 606a3b02a1dSHeiner Kallweit clock-names = "core", "clkin0", "clkin1"; 607a3b02a1dSHeiner Kallweit}; 608a3b02a1dSHeiner Kallweit 609a3b02a1dSHeiner Kallweit&sd_emmc_c { 610a3b02a1dSHeiner Kallweit clocks = <&clkc CLKID_SD_EMMC_C>, 611a3b02a1dSHeiner Kallweit <&xtal>, 612a3b02a1dSHeiner Kallweit <&clkc CLKID_FCLK_DIV2>; 613a3b02a1dSHeiner Kallweit clock-names = "core", "clkin0", "clkin1"; 614a3b02a1dSHeiner Kallweit}; 615a3b02a1dSHeiner Kallweit 616*4a63a75cSBeniamino Galvani&spifc { 617*4a63a75cSBeniamino Galvani clocks = <&clkc CLKID_SPI>; 618*4a63a75cSBeniamino Galvani}; 619*4a63a75cSBeniamino Galvani 620a3b02a1dSHeiner Kallweit&vpu { 621a3b02a1dSHeiner Kallweit compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; 622bfcef28aSBeniamino Galvani}; 623*4a63a75cSBeniamino Galvani 624*4a63a75cSBeniamino Galvani&hwrng { 625*4a63a75cSBeniamino Galvani clocks = <&clkc CLKID_RNG0>; 626*4a63a75cSBeniamino Galvani clock-names = "core"; 627*4a63a75cSBeniamino Galvani}; 628*4a63a75cSBeniamino Galvani 629*4a63a75cSBeniamino Galvani&hdmi_tx { 630*4a63a75cSBeniamino Galvani compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 631*4a63a75cSBeniamino Galvani resets = <&reset RESET_HDMITX_CAPB3>, 632*4a63a75cSBeniamino Galvani <&reset RESET_HDMI_SYSTEM_RESET>, 633*4a63a75cSBeniamino Galvani <&reset RESET_HDMI_TX>; 634*4a63a75cSBeniamino Galvani reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 635*4a63a75cSBeniamino Galvani clocks = <&clkc CLKID_HDMI_PCLK>, 636*4a63a75cSBeniamino Galvani <&clkc CLKID_CLK81>, 637*4a63a75cSBeniamino Galvani <&clkc CLKID_GCLK_VENCI_INT0>; 638*4a63a75cSBeniamino Galvani clock-names = "isfr", "iahb", "venci"; 639*4a63a75cSBeniamino Galvani}; 640