10a072362SAndreas Färber/* 20a072362SAndreas Färber * Copyright (c) 2016-2017 Andreas Färber 30a072362SAndreas Färber * 40a072362SAndreas Färber * Based on nexbox-a1: 50a072362SAndreas Färber * 60a072362SAndreas Färber * Copyright (c) 2016 BayLibre, SAS. 70a072362SAndreas Färber * Author: Neil Armstrong <narmstrong@baylibre.com> 80a072362SAndreas Färber * 90a072362SAndreas Färber * Copyright (c) 2016 Endless Computers, Inc. 100a072362SAndreas Färber * Author: Carlo Caione <carlo@endlessm.com> 110a072362SAndreas Färber * 120a072362SAndreas Färber * This file is dual-licensed: you can use it either under the terms 130a072362SAndreas Färber * of the GPL or the X11 license, at your option. Note that this dual 140a072362SAndreas Färber * licensing only applies to this file, and not this project as a 150a072362SAndreas Färber * whole. 160a072362SAndreas Färber * 170a072362SAndreas Färber * a) This library is free software; you can redistribute it and/or 180a072362SAndreas Färber * modify it under the terms of the GNU General Public License as 190a072362SAndreas Färber * published by the Free Software Foundation; either version 2 of the 200a072362SAndreas Färber * License, or (at your option) any later version. 210a072362SAndreas Färber * 220a072362SAndreas Färber * This library is distributed in the hope that it will be useful, 230a072362SAndreas Färber * but WITHOUT ANY WARRANTY; without even the implied warranty of 240a072362SAndreas Färber * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 250a072362SAndreas Färber * GNU General Public License for more details. 260a072362SAndreas Färber * 270a072362SAndreas Färber * Or, alternatively, 280a072362SAndreas Färber * 290a072362SAndreas Färber * b) Permission is hereby granted, free of charge, to any person 300a072362SAndreas Färber * obtaining a copy of this software and associated documentation 310a072362SAndreas Färber * files (the "Software"), to deal in the Software without 320a072362SAndreas Färber * restriction, including without limitation the rights to use, 330a072362SAndreas Färber * copy, modify, merge, publish, distribute, sublicense, and/or 340a072362SAndreas Färber * sell copies of the Software, and to permit persons to whom the 350a072362SAndreas Färber * Software is furnished to do so, subject to the following 360a072362SAndreas Färber * conditions: 370a072362SAndreas Färber * 380a072362SAndreas Färber * The above copyright notice and this permission notice shall be 390a072362SAndreas Färber * included in all copies or substantial portions of the Software. 400a072362SAndreas Färber * 410a072362SAndreas Färber * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 420a072362SAndreas Färber * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 430a072362SAndreas Färber * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 440a072362SAndreas Färber * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 450a072362SAndreas Färber * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 460a072362SAndreas Färber * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 470a072362SAndreas Färber * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 480a072362SAndreas Färber * OTHER DEALINGS IN THE SOFTWARE. 490a072362SAndreas Färber */ 500a072362SAndreas Färber 510a072362SAndreas Färber/dts-v1/; 520a072362SAndreas Färber 530a072362SAndreas Färber#include "meson-gxm.dtsi" 540a072362SAndreas Färber 550a072362SAndreas Färber/ { 560a072362SAndreas Färber compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm"; 570a072362SAndreas Färber model = "R-Box Pro"; 580a072362SAndreas Färber 590a072362SAndreas Färber aliases { 600a072362SAndreas Färber serial0 = &uart_AO; 610a072362SAndreas Färber }; 620a072362SAndreas Färber 630a072362SAndreas Färber chosen { 640a072362SAndreas Färber stdout-path = "serial0:115200n8"; 650a072362SAndreas Färber }; 660a072362SAndreas Färber 670a072362SAndreas Färber memory@0 { 680a072362SAndreas Färber device_type = "memory"; 690a072362SAndreas Färber reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */ 700a072362SAndreas Färber }; 710a072362SAndreas Färber 720a072362SAndreas Färber leds { 730a072362SAndreas Färber compatible = "gpio-leds"; 740a072362SAndreas Färber 750a072362SAndreas Färber blue { 760a072362SAndreas Färber label = "rbox-pro:blue:on"; 770a072362SAndreas Färber gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 780a072362SAndreas Färber default-state = "on"; 790a072362SAndreas Färber }; 800a072362SAndreas Färber 810a072362SAndreas Färber red { 820a072362SAndreas Färber label = "rbox-pro:red:standby"; 830a072362SAndreas Färber gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>; 840a072362SAndreas Färber default-state = "off"; 850a072362SAndreas Färber retain-state-suspended; 860a072362SAndreas Färber panic-indicator; 870a072362SAndreas Färber }; 880a072362SAndreas Färber }; 890a072362SAndreas Färber 900a072362SAndreas Färber vddio_boot: regulator-vddio-boot { 910a072362SAndreas Färber compatible = "regulator-fixed"; 920a072362SAndreas Färber regulator-name = "VDDIO_BOOT"; 930a072362SAndreas Färber regulator-min-microvolt = <1800000>; 940a072362SAndreas Färber regulator-max-microvolt = <1800000>; 950a072362SAndreas Färber }; 960a072362SAndreas Färber 970a072362SAndreas Färber vddao_3v3: regulator-vddao-3v3 { 980a072362SAndreas Färber compatible = "regulator-fixed"; 990a072362SAndreas Färber regulator-name = "VDDAO_3V3"; 1000a072362SAndreas Färber regulator-min-microvolt = <3300000>; 1010a072362SAndreas Färber regulator-max-microvolt = <3300000>; 1020a072362SAndreas Färber }; 1030a072362SAndreas Färber 1040a072362SAndreas Färber vcc_3v3: regulator-vcc-3v3 { 1050a072362SAndreas Färber compatible = "regulator-fixed"; 1060a072362SAndreas Färber regulator-name = "VCC_3V3"; 1070a072362SAndreas Färber regulator-min-microvolt = <3300000>; 1080a072362SAndreas Färber regulator-max-microvolt = <3300000>; 1090a072362SAndreas Färber }; 1100a072362SAndreas Färber 1110a072362SAndreas Färber emmc_pwrseq: emmc-pwrseq { 1120a072362SAndreas Färber compatible = "mmc-pwrseq-emmc"; 1130a072362SAndreas Färber reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 1140a072362SAndreas Färber }; 1150a072362SAndreas Färber 1160a072362SAndreas Färber wifi32k: wifi32k { 1170a072362SAndreas Färber compatible = "pwm-clock"; 1180a072362SAndreas Färber #clock-cells = <0>; 1190a072362SAndreas Färber clock-frequency = <32768>; 1200a072362SAndreas Färber pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 1210a072362SAndreas Färber }; 1220a072362SAndreas Färber 1230a072362SAndreas Färber sdio_pwrseq: sdio-pwrseq { 1240a072362SAndreas Färber compatible = "mmc-pwrseq-simple"; 1250a072362SAndreas Färber reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 1260a072362SAndreas Färber clocks = <&wifi32k>; 1270a072362SAndreas Färber clock-names = "ext_clock"; 1280a072362SAndreas Färber }; 1290a072362SAndreas Färber}; 1300a072362SAndreas Färber 1310a072362SAndreas Färberðmac { 1320a072362SAndreas Färber status = "okay"; 1330a072362SAndreas Färber 1340a072362SAndreas Färber pinctrl-0 = <ð_pins>; 1350a072362SAndreas Färber pinctrl-names = "default"; 1360a072362SAndreas Färber 1370a072362SAndreas Färber /* Select external PHY by default */ 1380a072362SAndreas Färber phy-handle = <&external_phy>; 1390a072362SAndreas Färber 1400a072362SAndreas Färber snps,reset-gpio = <&gpio GPIOZ_14 0>; 1410a072362SAndreas Färber snps,reset-delays-us = <0 10000 1000000>; 1420a072362SAndreas Färber snps,reset-active-low; 1430a072362SAndreas Färber 1440a072362SAndreas Färber amlogic,tx-delay-ns = <2>; 1450a072362SAndreas Färber 1460a072362SAndreas Färber /* External PHY is in RGMII */ 1470a072362SAndreas Färber phy-mode = "rgmii"; 1480a072362SAndreas Färber}; 1490a072362SAndreas Färber 1500a072362SAndreas Färber&external_mdio { 1510a072362SAndreas Färber external_phy: ethernet-phy@0 { 1520a072362SAndreas Färber compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 1530a072362SAndreas Färber reg = <0>; 1540a072362SAndreas Färber max-speed = <1000>; 1550a072362SAndreas Färber }; 1560a072362SAndreas Färber}; 1570a072362SAndreas Färber 1580a072362SAndreas Färber&ir { 1590a072362SAndreas Färber status = "okay"; 1600a072362SAndreas Färber pinctrl-0 = <&remote_input_ao_pins>; 1610a072362SAndreas Färber pinctrl-names = "default"; 1620a072362SAndreas Färber}; 1630a072362SAndreas Färber 1640a072362SAndreas Färber&pwm_ef { 1650a072362SAndreas Färber status = "okay"; 1660a072362SAndreas Färber pinctrl-0 = <&pwm_e_pins>; 1670a072362SAndreas Färber pinctrl-names = "default"; 1680a072362SAndreas Färber clocks = <&clkc CLKID_FCLK_DIV4>; 1690a072362SAndreas Färber clock-names = "clkin0"; 1700a072362SAndreas Färber}; 1710a072362SAndreas Färber 1720a072362SAndreas Färber/* Wireless SDIO Module */ 1730a072362SAndreas Färber&sd_emmc_a { 1740a072362SAndreas Färber status = "okay"; 1750a072362SAndreas Färber pinctrl-0 = <&sdio_pins>; 1760a072362SAndreas Färber pinctrl-names = "default"; 1770a072362SAndreas Färber #address-cells = <1>; 1780a072362SAndreas Färber #size-cells = <0>; 1790a072362SAndreas Färber 1800a072362SAndreas Färber bus-width = <4>; 1810a072362SAndreas Färber cap-sd-highspeed; 1820a072362SAndreas Färber max-frequency = <100000000>; 1830a072362SAndreas Färber 1840a072362SAndreas Färber non-removable; 1850a072362SAndreas Färber disable-wp; 1860a072362SAndreas Färber 1870a072362SAndreas Färber mmc-pwrseq = <&sdio_pwrseq>; 1880a072362SAndreas Färber 1890a072362SAndreas Färber vmmc-supply = <&vddao_3v3>; 1900a072362SAndreas Färber vqmmc-supply = <&vddio_boot>; 1910a072362SAndreas Färber 1920a072362SAndreas Färber brcmf: brcmf@1 { 1930a072362SAndreas Färber reg = <1>; 1940a072362SAndreas Färber compatible = "brcm,bcm4329-fmac"; 1950a072362SAndreas Färber }; 1960a072362SAndreas Färber}; 1970a072362SAndreas Färber 1980a072362SAndreas Färber/* SD card */ 1990a072362SAndreas Färber&sd_emmc_b { 2000a072362SAndreas Färber status = "okay"; 2010a072362SAndreas Färber pinctrl-0 = <&sdcard_pins>; 2020a072362SAndreas Färber pinctrl-names = "default"; 2030a072362SAndreas Färber 2040a072362SAndreas Färber bus-width = <4>; 2050a072362SAndreas Färber cap-sd-highspeed; 2060a072362SAndreas Färber max-frequency = <100000000>; 2070a072362SAndreas Färber disable-wp; 2080a072362SAndreas Färber 2090a072362SAndreas Färber cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 2100a072362SAndreas Färber cd-inverted; 2110a072362SAndreas Färber 2120a072362SAndreas Färber vmmc-supply = <&vddao_3v3>; 2130a072362SAndreas Färber vqmmc-supply = <&vddio_boot>; 2140a072362SAndreas Färber}; 2150a072362SAndreas Färber 2160a072362SAndreas Färber/* eMMC */ 2170a072362SAndreas Färber&sd_emmc_c { 2180a072362SAndreas Färber status = "okay"; 219ab36be66SNeil Armstrong pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 2200a072362SAndreas Färber pinctrl-names = "default"; 2210a072362SAndreas Färber 2220a072362SAndreas Färber bus-width = <8>; 2230a072362SAndreas Färber cap-mmc-highspeed; 2240a072362SAndreas Färber max-frequency = <200000000>; 2250a072362SAndreas Färber non-removable; 2260a072362SAndreas Färber disable-wp; 2270a072362SAndreas Färber mmc-ddr-1_8v; 2280a072362SAndreas Färber mmc-hs200-1_8v; 2290a072362SAndreas Färber 2300a072362SAndreas Färber mmc-pwrseq = <&emmc_pwrseq>; 2310a072362SAndreas Färber vmmc-supply = <&vcc_3v3>; 2320a072362SAndreas Färber vqmmc-supply = <&vddio_boot>; 2330a072362SAndreas Färber}; 2340a072362SAndreas Färber 2350a072362SAndreas Färber&uart_AO { 2360a072362SAndreas Färber status = "okay"; 2370a072362SAndreas Färber pinctrl-0 = <&uart_ao_a_pins>; 2380a072362SAndreas Färber pinctrl-names = "default"; 2390a072362SAndreas Färber}; 240