115abee8aSCarlo Caione/* 215abee8aSCarlo Caione * Copyright (c) 2016 Endless Computers, Inc. 315abee8aSCarlo Caione * Author: Carlo Caione <carlo@endlessm.com> 415abee8aSCarlo Caione * 515abee8aSCarlo Caione * This file is dual-licensed: you can use it either under the terms 615abee8aSCarlo Caione * of the GPL or the X11 license, at your option. Note that this dual 715abee8aSCarlo Caione * licensing only applies to this file, and not this project as a 815abee8aSCarlo Caione * whole. 915abee8aSCarlo Caione * 1015abee8aSCarlo Caione * a) This library is free software; you can redistribute it and/or 1115abee8aSCarlo Caione * modify it under the terms of the GNU General Public License as 1215abee8aSCarlo Caione * published by the Free Software Foundation; either version 2 of the 1315abee8aSCarlo Caione * License, or (at your option) any later version. 1415abee8aSCarlo Caione * 1515abee8aSCarlo Caione * This library is distributed in the hope that it will be useful, 1615abee8aSCarlo Caione * but WITHOUT ANY WARRANTY; without even the implied warranty of 1715abee8aSCarlo Caione * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1815abee8aSCarlo Caione * GNU General Public License for more details. 1915abee8aSCarlo Caione * 2015abee8aSCarlo Caione * Or, alternatively, 2115abee8aSCarlo Caione * 2215abee8aSCarlo Caione * b) Permission is hereby granted, free of charge, to any person 2315abee8aSCarlo Caione * obtaining a copy of this software and associated documentation 2415abee8aSCarlo Caione * files (the "Software"), to deal in the Software without 2515abee8aSCarlo Caione * restriction, including without limitation the rights to use, 2615abee8aSCarlo Caione * copy, modify, merge, publish, distribute, sublicense, and/or 2715abee8aSCarlo Caione * sell copies of the Software, and to permit persons to whom the 2815abee8aSCarlo Caione * Software is furnished to do so, subject to the following 2915abee8aSCarlo Caione * conditions: 3015abee8aSCarlo Caione * 3115abee8aSCarlo Caione * The above copyright notice and this permission notice shall be 3215abee8aSCarlo Caione * included in all copies or substantial portions of the Software. 3315abee8aSCarlo Caione * 3415abee8aSCarlo Caione * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 3515abee8aSCarlo Caione * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 3615abee8aSCarlo Caione * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 3715abee8aSCarlo Caione * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 3815abee8aSCarlo Caione * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 3915abee8aSCarlo Caione * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 4015abee8aSCarlo Caione * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 4115abee8aSCarlo Caione * OTHER DEALINGS IN THE SOFTWARE. 4215abee8aSCarlo Caione */ 4315abee8aSCarlo Caione 4415abee8aSCarlo Caione#include "meson-gx.dtsi" 45973fbd55SNeil Armstrong#include <dt-bindings/clock/gxbb-clkc.h> 461cf3df8aSKevin Hilman#include <dt-bindings/gpio/meson-gxl-gpio.h> 4715abee8aSCarlo Caione 4815abee8aSCarlo Caione/ { 4915abee8aSCarlo Caione compatible = "amlogic,meson-gxl"; 5015abee8aSCarlo Caione}; 51fb0fe922SNeil Armstrong 52e9e27c64SNeil Armstrongðmac { 53e9e27c64SNeil Armstrong reg = <0x0 0xc9410000 0x0 0x10000 54e9e27c64SNeil Armstrong 0x0 0xc8834540 0x0 0x4>; 55e9e27c64SNeil Armstrong 56e9e27c64SNeil Armstrong clocks = <&clkc CLKID_ETH>, 57e9e27c64SNeil Armstrong <&clkc CLKID_FCLK_DIV2>, 58e9e27c64SNeil Armstrong <&clkc CLKID_MPLL2>; 59e9e27c64SNeil Armstrong clock-names = "stmmaceth", "clkin0", "clkin1"; 60e9e27c64SNeil Armstrong 61e9e27c64SNeil Armstrong mdio0: mdio { 62e9e27c64SNeil Armstrong #address-cells = <1>; 63e9e27c64SNeil Armstrong #size-cells = <0>; 64e9e27c64SNeil Armstrong compatible = "snps,dwmac-mdio"; 65e9e27c64SNeil Armstrong }; 66e9e27c64SNeil Armstrong}; 67e9e27c64SNeil Armstrong 68fb0fe922SNeil Armstrong&aobus { 69fb0fe922SNeil Armstrong pinctrl_aobus: pinctrl@14 { 70fb0fe922SNeil Armstrong compatible = "amlogic,meson-gxl-aobus-pinctrl"; 71fb0fe922SNeil Armstrong #address-cells = <2>; 72fb0fe922SNeil Armstrong #size-cells = <2>; 73fb0fe922SNeil Armstrong ranges; 74fb0fe922SNeil Armstrong 75fb0fe922SNeil Armstrong gpio_ao: bank@14 { 76fb0fe922SNeil Armstrong reg = <0x0 0x00014 0x0 0x8>, 77fb0fe922SNeil Armstrong <0x0 0x0002c 0x0 0x4>, 78fb0fe922SNeil Armstrong <0x0 0x00024 0x0 0x8>; 79fb0fe922SNeil Armstrong reg-names = "mux", "pull", "gpio"; 80fb0fe922SNeil Armstrong gpio-controller; 81fb0fe922SNeil Armstrong #gpio-cells = <2>; 82fb0fe922SNeil Armstrong }; 83fb0fe922SNeil Armstrong 84fb0fe922SNeil Armstrong uart_ao_a_pins: uart_ao_a { 85fb0fe922SNeil Armstrong mux { 86fb0fe922SNeil Armstrong groups = "uart_tx_ao_a", "uart_rx_ao_a"; 87fb0fe922SNeil Armstrong function = "uart_ao"; 88fb0fe922SNeil Armstrong }; 89fb0fe922SNeil Armstrong }; 90fb0fe922SNeil Armstrong 91261e1d5cSMartin Blumenstingl uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts { 92261e1d5cSMartin Blumenstingl mux { 93261e1d5cSMartin Blumenstingl groups = "uart_cts_ao_a", 94261e1d5cSMartin Blumenstingl "uart_rts_ao_a"; 95261e1d5cSMartin Blumenstingl function = "uart_ao"; 96261e1d5cSMartin Blumenstingl }; 97261e1d5cSMartin Blumenstingl }; 98261e1d5cSMartin Blumenstingl 99890a96a2SMartin Blumenstingl uart_ao_b_pins: uart_ao_b { 100890a96a2SMartin Blumenstingl mux { 101890a96a2SMartin Blumenstingl groups = "uart_tx_ao_b", "uart_rx_ao_b"; 102890a96a2SMartin Blumenstingl function = "uart_ao_b"; 103890a96a2SMartin Blumenstingl }; 104890a96a2SMartin Blumenstingl }; 105890a96a2SMartin Blumenstingl 106261e1d5cSMartin Blumenstingl uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts { 107261e1d5cSMartin Blumenstingl mux { 108261e1d5cSMartin Blumenstingl groups = "uart_cts_ao_b", 109261e1d5cSMartin Blumenstingl "uart_rts_ao_b"; 110261e1d5cSMartin Blumenstingl function = "uart_ao_b"; 111261e1d5cSMartin Blumenstingl }; 112261e1d5cSMartin Blumenstingl }; 113261e1d5cSMartin Blumenstingl 114fb0fe922SNeil Armstrong remote_input_ao_pins: remote_input_ao { 115fb0fe922SNeil Armstrong mux { 116fb0fe922SNeil Armstrong groups = "remote_input_ao"; 117fb0fe922SNeil Armstrong function = "remote_input_ao"; 118fb0fe922SNeil Armstrong }; 119fb0fe922SNeil Armstrong }; 120*249a2243SMartin Blumenstingl 121*249a2243SMartin Blumenstingl pwm_ao_b_pins: pwm_ao_b { 122*249a2243SMartin Blumenstingl mux { 123*249a2243SMartin Blumenstingl groups = "pwm_ao_b"; 124*249a2243SMartin Blumenstingl function = "pwm_ao_b"; 125*249a2243SMartin Blumenstingl }; 126*249a2243SMartin Blumenstingl }; 127fb0fe922SNeil Armstrong }; 128fb0fe922SNeil Armstrong}; 129fb0fe922SNeil Armstrong 130fb0fe922SNeil Armstrong&periphs { 131fb0fe922SNeil Armstrong pinctrl_periphs: pinctrl@4b0 { 132fb0fe922SNeil Armstrong compatible = "amlogic,meson-gxl-periphs-pinctrl"; 133fb0fe922SNeil Armstrong #address-cells = <2>; 134fb0fe922SNeil Armstrong #size-cells = <2>; 135fb0fe922SNeil Armstrong ranges; 136fb0fe922SNeil Armstrong 137fb0fe922SNeil Armstrong gpio: bank@4b0 { 138fb0fe922SNeil Armstrong reg = <0x0 0x004b0 0x0 0x28>, 139fb0fe922SNeil Armstrong <0x0 0x004e8 0x0 0x14>, 140fb0fe922SNeil Armstrong <0x0 0x00120 0x0 0x14>, 141fb0fe922SNeil Armstrong <0x0 0x00430 0x0 0x40>; 142fb0fe922SNeil Armstrong reg-names = "mux", "pull", "pull-enable", "gpio"; 143fb0fe922SNeil Armstrong gpio-controller; 144fb0fe922SNeil Armstrong #gpio-cells = <2>; 145fb0fe922SNeil Armstrong }; 146fb0fe922SNeil Armstrong 147fb0fe922SNeil Armstrong emmc_pins: emmc { 148fb0fe922SNeil Armstrong mux { 149fb0fe922SNeil Armstrong groups = "emmc_nand_d07", 150fb0fe922SNeil Armstrong "emmc_cmd", 151fb0fe922SNeil Armstrong "emmc_clk", 152fb0fe922SNeil Armstrong "emmc_ds"; 153fb0fe922SNeil Armstrong function = "emmc"; 154fb0fe922SNeil Armstrong }; 155fb0fe922SNeil Armstrong }; 156fb0fe922SNeil Armstrong 157fb0fe922SNeil Armstrong sdcard_pins: sdcard { 158fb0fe922SNeil Armstrong mux { 159fb0fe922SNeil Armstrong groups = "sdcard_d0", 160fb0fe922SNeil Armstrong "sdcard_d1", 161fb0fe922SNeil Armstrong "sdcard_d2", 162fb0fe922SNeil Armstrong "sdcard_d3", 163fb0fe922SNeil Armstrong "sdcard_cmd", 164fb0fe922SNeil Armstrong "sdcard_clk"; 165fb0fe922SNeil Armstrong function = "sdcard"; 166fb0fe922SNeil Armstrong }; 167fb0fe922SNeil Armstrong }; 168fb0fe922SNeil Armstrong 169fb0fe922SNeil Armstrong sdio_pins: sdio { 170fb0fe922SNeil Armstrong mux { 171fb0fe922SNeil Armstrong groups = "sdio_d0", 172fb0fe922SNeil Armstrong "sdio_d1", 173fb0fe922SNeil Armstrong "sdio_d2", 174fb0fe922SNeil Armstrong "sdio_d3", 175fb0fe922SNeil Armstrong "sdio_cmd", 176fb0fe922SNeil Armstrong "sdio_clk"; 177fb0fe922SNeil Armstrong function = "sdio"; 178fb0fe922SNeil Armstrong }; 179fb0fe922SNeil Armstrong }; 180fb0fe922SNeil Armstrong 181fb0fe922SNeil Armstrong sdio_irq_pins: sdio_irq { 182fb0fe922SNeil Armstrong mux { 183fb0fe922SNeil Armstrong groups = "sdio_irq"; 184fb0fe922SNeil Armstrong function = "sdio"; 185fb0fe922SNeil Armstrong }; 186fb0fe922SNeil Armstrong }; 187fb0fe922SNeil Armstrong 188fb0fe922SNeil Armstrong uart_a_pins: uart_a { 189fb0fe922SNeil Armstrong mux { 190fb0fe922SNeil Armstrong groups = "uart_tx_a", 191fb0fe922SNeil Armstrong "uart_rx_a"; 192fb0fe922SNeil Armstrong function = "uart_a"; 193fb0fe922SNeil Armstrong }; 194fb0fe922SNeil Armstrong }; 195fb0fe922SNeil Armstrong 196261e1d5cSMartin Blumenstingl uart_a_cts_rts_pins: uart_a_cts_rts { 197261e1d5cSMartin Blumenstingl mux { 198261e1d5cSMartin Blumenstingl groups = "uart_cts_a", 199261e1d5cSMartin Blumenstingl "uart_rts_a"; 200261e1d5cSMartin Blumenstingl function = "uart_a"; 201261e1d5cSMartin Blumenstingl }; 202261e1d5cSMartin Blumenstingl }; 203261e1d5cSMartin Blumenstingl 204fb0fe922SNeil Armstrong uart_b_pins: uart_b { 205fb0fe922SNeil Armstrong mux { 206fb0fe922SNeil Armstrong groups = "uart_tx_b", 207fb0fe922SNeil Armstrong "uart_rx_b"; 208fb0fe922SNeil Armstrong function = "uart_b"; 209fb0fe922SNeil Armstrong }; 210fb0fe922SNeil Armstrong }; 211fb0fe922SNeil Armstrong 212261e1d5cSMartin Blumenstingl uart_b_cts_rts_pins: uart_b_cts_rts { 213261e1d5cSMartin Blumenstingl mux { 214261e1d5cSMartin Blumenstingl groups = "uart_cts_b", 215261e1d5cSMartin Blumenstingl "uart_rts_b"; 216261e1d5cSMartin Blumenstingl function = "uart_b"; 217261e1d5cSMartin Blumenstingl }; 218261e1d5cSMartin Blumenstingl }; 219261e1d5cSMartin Blumenstingl 220fb0fe922SNeil Armstrong uart_c_pins: uart_c { 221fb0fe922SNeil Armstrong mux { 222fb0fe922SNeil Armstrong groups = "uart_tx_c", 223fb0fe922SNeil Armstrong "uart_rx_c"; 224fb0fe922SNeil Armstrong function = "uart_c"; 225fb0fe922SNeil Armstrong }; 226fb0fe922SNeil Armstrong }; 227fb0fe922SNeil Armstrong 228261e1d5cSMartin Blumenstingl uart_c_cts_rts_pins: uart_c_cts_rts { 229261e1d5cSMartin Blumenstingl mux { 230261e1d5cSMartin Blumenstingl groups = "uart_cts_c", 231261e1d5cSMartin Blumenstingl "uart_rts_c"; 232261e1d5cSMartin Blumenstingl function = "uart_c"; 233261e1d5cSMartin Blumenstingl }; 234261e1d5cSMartin Blumenstingl }; 235261e1d5cSMartin Blumenstingl 236fb0fe922SNeil Armstrong i2c_a_pins: i2c_a { 237fb0fe922SNeil Armstrong mux { 238fb0fe922SNeil Armstrong groups = "i2c_sck_a", 239fb0fe922SNeil Armstrong "i2c_sda_a"; 240fb0fe922SNeil Armstrong function = "i2c_a"; 241fb0fe922SNeil Armstrong }; 242fb0fe922SNeil Armstrong }; 243fb0fe922SNeil Armstrong 244fb0fe922SNeil Armstrong i2c_b_pins: i2c_b { 245fb0fe922SNeil Armstrong mux { 246fb0fe922SNeil Armstrong groups = "i2c_sck_b", 247fb0fe922SNeil Armstrong "i2c_sda_b"; 248fb0fe922SNeil Armstrong function = "i2c_b"; 249fb0fe922SNeil Armstrong }; 250fb0fe922SNeil Armstrong }; 251fb0fe922SNeil Armstrong 252fb0fe922SNeil Armstrong i2c_c_pins: i2c_c { 253fb0fe922SNeil Armstrong mux { 254fb0fe922SNeil Armstrong groups = "i2c_sck_c", 255fb0fe922SNeil Armstrong "i2c_sda_c"; 256fb0fe922SNeil Armstrong function = "i2c_c"; 257fb0fe922SNeil Armstrong }; 258fb0fe922SNeil Armstrong }; 259fb0fe922SNeil Armstrong 260fb0fe922SNeil Armstrong eth_pins: eth_c { 261fb0fe922SNeil Armstrong mux { 262fb0fe922SNeil Armstrong groups = "eth_mdio", 263fb0fe922SNeil Armstrong "eth_mdc", 264fb0fe922SNeil Armstrong "eth_clk_rx_clk", 265fb0fe922SNeil Armstrong "eth_rx_dv", 266fb0fe922SNeil Armstrong "eth_rxd0", 267fb0fe922SNeil Armstrong "eth_rxd1", 268fb0fe922SNeil Armstrong "eth_rxd2", 269fb0fe922SNeil Armstrong "eth_rxd3", 270fb0fe922SNeil Armstrong "eth_rgmii_tx_clk", 271fb0fe922SNeil Armstrong "eth_tx_en", 272fb0fe922SNeil Armstrong "eth_txd0", 273fb0fe922SNeil Armstrong "eth_txd1", 274fb0fe922SNeil Armstrong "eth_txd2", 275fb0fe922SNeil Armstrong "eth_txd3"; 276fb0fe922SNeil Armstrong function = "eth"; 277fb0fe922SNeil Armstrong }; 278fb0fe922SNeil Armstrong }; 279fb0fe922SNeil Armstrong 280fb0fe922SNeil Armstrong pwm_e_pins: pwm_e { 281fb0fe922SNeil Armstrong mux { 282fb0fe922SNeil Armstrong groups = "pwm_e"; 283fb0fe922SNeil Armstrong function = "pwm_e"; 284fb0fe922SNeil Armstrong }; 285fb0fe922SNeil Armstrong }; 286b949165cSNeil Armstrong 287b949165cSNeil Armstrong hdmi_hpd_pins: hdmi_hpd { 288b949165cSNeil Armstrong mux { 289b949165cSNeil Armstrong groups = "hdmi_hpd"; 290b949165cSNeil Armstrong function = "hdmi_hpd"; 291b949165cSNeil Armstrong }; 292b949165cSNeil Armstrong }; 293b949165cSNeil Armstrong 294b949165cSNeil Armstrong hdmi_i2c_pins: hdmi_i2c { 295b949165cSNeil Armstrong mux { 296b949165cSNeil Armstrong groups = "hdmi_sda", "hdmi_scl"; 297b949165cSNeil Armstrong function = "hdmi_i2c"; 298b949165cSNeil Armstrong }; 299b949165cSNeil Armstrong }; 300fb0fe922SNeil Armstrong }; 301e9e27c64SNeil Armstrong 302e9e27c64SNeil Armstrong eth-phy-mux { 303e9e27c64SNeil Armstrong compatible = "mdio-mux-mmioreg", "mdio-mux"; 304e9e27c64SNeil Armstrong #address-cells = <1>; 305e9e27c64SNeil Armstrong #size-cells = <0>; 306e9e27c64SNeil Armstrong reg = <0x0 0x55c 0x0 0x4>; 307e9e27c64SNeil Armstrong mux-mask = <0xffffffff>; 308e9e27c64SNeil Armstrong mdio-parent-bus = <&mdio0>; 309e9e27c64SNeil Armstrong 310e9e27c64SNeil Armstrong internal_mdio: mdio@e40908ff { 311e9e27c64SNeil Armstrong reg = <0xe40908ff>; 312e9e27c64SNeil Armstrong #address-cells = <1>; 313e9e27c64SNeil Armstrong #size-cells = <0>; 314e9e27c64SNeil Armstrong 315e9e27c64SNeil Armstrong internal_phy: ethernet-phy@8 { 316e9e27c64SNeil Armstrong compatible = "ethernet-phy-id0181.4400", "ethernet-phy-ieee802.3-c22"; 317e9e27c64SNeil Armstrong reg = <8>; 318e9e27c64SNeil Armstrong max-speed = <100>; 319e9e27c64SNeil Armstrong }; 320e9e27c64SNeil Armstrong }; 321e9e27c64SNeil Armstrong 322e9e27c64SNeil Armstrong external_mdio: mdio@2009087f { 323e9e27c64SNeil Armstrong reg = <0x2009087f>; 324e9e27c64SNeil Armstrong #address-cells = <1>; 325e9e27c64SNeil Armstrong #size-cells = <0>; 326e9e27c64SNeil Armstrong }; 327e9e27c64SNeil Armstrong }; 328fb0fe922SNeil Armstrong}; 329973fbd55SNeil Armstrong 330973fbd55SNeil Armstrong&hiubus { 331973fbd55SNeil Armstrong clkc: clock-controller@0 { 332973fbd55SNeil Armstrong compatible = "amlogic,gxl-clkc", "amlogic,gxbb-clkc"; 333973fbd55SNeil Armstrong #clock-cells = <1>; 334973fbd55SNeil Armstrong reg = <0x0 0x0 0x0 0x3db>; 335973fbd55SNeil Armstrong }; 336973fbd55SNeil Armstrong}; 3375d28bb01SNeil Armstrong 3385d28bb01SNeil Armstrong&i2c_A { 3395d28bb01SNeil Armstrong clocks = <&clkc CLKID_I2C>; 3405d28bb01SNeil Armstrong}; 3415d28bb01SNeil Armstrong 3425d28bb01SNeil Armstrong&i2c_B { 3435d28bb01SNeil Armstrong clocks = <&clkc CLKID_I2C>; 3445d28bb01SNeil Armstrong}; 3455d28bb01SNeil Armstrong 3465d28bb01SNeil Armstrong&i2c_C { 3475d28bb01SNeil Armstrong clocks = <&clkc CLKID_I2C>; 3485d28bb01SNeil Armstrong}; 3496d489dc8SNeil Armstrong 3506d489dc8SNeil Armstrong&sd_emmc_a { 3516d489dc8SNeil Armstrong clocks = <&clkc CLKID_SD_EMMC_A>, 3526d489dc8SNeil Armstrong <&xtal>, 3536d489dc8SNeil Armstrong <&clkc CLKID_FCLK_DIV2>; 3546d489dc8SNeil Armstrong clock-names = "core", "clkin0", "clkin1"; 3556d489dc8SNeil Armstrong}; 3566d489dc8SNeil Armstrong 3576d489dc8SNeil Armstrong&sd_emmc_b { 3586d489dc8SNeil Armstrong clocks = <&clkc CLKID_SD_EMMC_B>, 3596d489dc8SNeil Armstrong <&xtal>, 3606d489dc8SNeil Armstrong <&clkc CLKID_FCLK_DIV2>; 3616d489dc8SNeil Armstrong clock-names = "core", "clkin0", "clkin1"; 3626d489dc8SNeil Armstrong}; 3636d489dc8SNeil Armstrong 3646d489dc8SNeil Armstrong&sd_emmc_c { 3656d489dc8SNeil Armstrong clocks = <&clkc CLKID_SD_EMMC_C>, 3666d489dc8SNeil Armstrong <&xtal>, 3676d489dc8SNeil Armstrong <&clkc CLKID_FCLK_DIV2>; 3686d489dc8SNeil Armstrong clock-names = "core", "clkin0", "clkin1"; 3696d489dc8SNeil Armstrong}; 370fafdbdf7SNeil Armstrong 371fafdbdf7SNeil Armstrong&vpu { 372fafdbdf7SNeil Armstrong compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu"; 373fafdbdf7SNeil Armstrong}; 374