1d3aa4ce8SKevin Hilman// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2d3aa4ce8SKevin Hilman/* 3d3aa4ce8SKevin Hilman * Copyright (c) 2018 BayLibre SAS. All rights reserved. 4d3aa4ce8SKevin Hilman */ 5d3aa4ce8SKevin Hilman 6d3aa4ce8SKevin Hilman/dts-v1/; 7d3aa4ce8SKevin Hilman 8d3aa4ce8SKevin Hilman#include "meson-g12a.dtsi" 9c9206b42SGuillaume La Roque#include <dt-bindings/gpio/gpio.h> 10c9206b42SGuillaume La Roque#include <dt-bindings/gpio/meson-g12a-gpio.h> 11d3aa4ce8SKevin Hilman 12d3aa4ce8SKevin Hilman/ { 13d3aa4ce8SKevin Hilman compatible = "amediatech,x96-max", "amlogic,u200", "amlogic,g12a"; 14d3aa4ce8SKevin Hilman model = "Shenzhen Amediatech Technology Co., Ltd X96 Max"; 15d3aa4ce8SKevin Hilman 16d3aa4ce8SKevin Hilman aliases { 17d3aa4ce8SKevin Hilman serial0 = &uart_AO; 18e8e7037cSNeil Armstrong ethernet0 = ðmac; 19d3aa4ce8SKevin Hilman }; 20d3aa4ce8SKevin Hilman chosen { 21d3aa4ce8SKevin Hilman stdout-path = "serial0:115200n8"; 22d3aa4ce8SKevin Hilman }; 23d3aa4ce8SKevin Hilman memory@0 { 24d3aa4ce8SKevin Hilman device_type = "memory"; 25d3aa4ce8SKevin Hilman reg = <0x0 0x0 0x0 0x40000000>; 26d3aa4ce8SKevin Hilman }; 27c9206b42SGuillaume La Roque 28b0be9616SNeil Armstrong cvbs-connector { 29b0be9616SNeil Armstrong compatible = "composite-video-connector"; 30b0be9616SNeil Armstrong 31b0be9616SNeil Armstrong port { 32b0be9616SNeil Armstrong cvbs_connector_in: endpoint { 33b0be9616SNeil Armstrong remote-endpoint = <&cvbs_vdac_out>; 34b0be9616SNeil Armstrong }; 35b0be9616SNeil Armstrong }; 36b0be9616SNeil Armstrong }; 37b0be9616SNeil Armstrong 38b0be9616SNeil Armstrong hdmi-connector { 39b0be9616SNeil Armstrong compatible = "hdmi-connector"; 40b0be9616SNeil Armstrong type = "a"; 41b0be9616SNeil Armstrong 42b0be9616SNeil Armstrong port { 43b0be9616SNeil Armstrong hdmi_connector_in: endpoint { 44b0be9616SNeil Armstrong remote-endpoint = <&hdmi_tx_tmds_out>; 45b0be9616SNeil Armstrong }; 46b0be9616SNeil Armstrong }; 47b0be9616SNeil Armstrong }; 48b0be9616SNeil Armstrong 4945380009SGuillaume La Roque emmc_pwrseq: emmc-pwrseq { 5045380009SGuillaume La Roque compatible = "mmc-pwrseq-emmc"; 5145380009SGuillaume La Roque reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 5245380009SGuillaume La Roque }; 5345380009SGuillaume La Roque 54c9206b42SGuillaume La Roque flash_1v8: regulator-flash_1v8 { 55c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 56c9206b42SGuillaume La Roque regulator-name = "FLASH_1V8"; 57c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 58c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 59c9206b42SGuillaume La Roque vin-supply = <&vcc_3v3>; 60c9206b42SGuillaume La Roque regulator-always-on; 61c9206b42SGuillaume La Roque }; 62c9206b42SGuillaume La Roque 63c9206b42SGuillaume La Roque dc_in: regulator-dc_in { 64c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 65c9206b42SGuillaume La Roque regulator-name = "DC_IN"; 66c9206b42SGuillaume La Roque regulator-min-microvolt = <5000000>; 67c9206b42SGuillaume La Roque regulator-max-microvolt = <5000000>; 68c9206b42SGuillaume La Roque regulator-always-on; 69c9206b42SGuillaume La Roque }; 70c9206b42SGuillaume La Roque 71c9206b42SGuillaume La Roque vcc_1v8: regulator-vcc_1v8 { 72c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 73c9206b42SGuillaume La Roque regulator-name = "VCC_1V8"; 74c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 75c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 76c9206b42SGuillaume La Roque vin-supply = <&vcc_3v3>; 77c9206b42SGuillaume La Roque regulator-always-on; 78c9206b42SGuillaume La Roque }; 79c9206b42SGuillaume La Roque 80c9206b42SGuillaume La Roque vcc_3v3: regulator-vcc_3v3 { 81c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 82c9206b42SGuillaume La Roque regulator-name = "VCC_3V3"; 83c9206b42SGuillaume La Roque regulator-min-microvolt = <3300000>; 84c9206b42SGuillaume La Roque regulator-max-microvolt = <3300000>; 85c9206b42SGuillaume La Roque vin-supply = <&vddao_3v3>; 86c9206b42SGuillaume La Roque regulator-always-on; 87c9206b42SGuillaume La Roque /* FIXME: actually controlled by VDDCPU_B_EN */ 88c9206b42SGuillaume La Roque }; 89c9206b42SGuillaume La Roque 90c9206b42SGuillaume La Roque vcc_5v: regulator-vcc_5v { 91c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 92c9206b42SGuillaume La Roque regulator-name = "VCC_5V"; 93c9206b42SGuillaume La Roque regulator-min-microvolt = <5000000>; 94c9206b42SGuillaume La Roque regulator-max-microvolt = <5000000>; 95c9206b42SGuillaume La Roque vin-supply = <&dc_in>; 96c9206b42SGuillaume La Roque 97c9206b42SGuillaume La Roque gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 98c9206b42SGuillaume La Roque enable-active-low; 99c9206b42SGuillaume La Roque }; 100c9206b42SGuillaume La Roque 101c9206b42SGuillaume La Roque vddao_1v8: regulator-vddao_1v8 { 102c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 103c9206b42SGuillaume La Roque regulator-name = "VDDAO_1V8"; 104c9206b42SGuillaume La Roque regulator-min-microvolt = <1800000>; 105c9206b42SGuillaume La Roque regulator-max-microvolt = <1800000>; 106c9206b42SGuillaume La Roque vin-supply = <&vddao_3v3>; 107c9206b42SGuillaume La Roque regulator-always-on; 108c9206b42SGuillaume La Roque }; 109c9206b42SGuillaume La Roque 110c9206b42SGuillaume La Roque vddao_3v3: regulator-vddao_3v3 { 111c9206b42SGuillaume La Roque compatible = "regulator-fixed"; 112c9206b42SGuillaume La Roque regulator-name = "VDDAO_3V3"; 113c9206b42SGuillaume La Roque regulator-min-microvolt = <3300000>; 114c9206b42SGuillaume La Roque regulator-max-microvolt = <3300000>; 115c9206b42SGuillaume La Roque vin-supply = <&dc_in>; 116c9206b42SGuillaume La Roque regulator-always-on; 117c9206b42SGuillaume La Roque }; 118d3aa4ce8SKevin Hilman}; 119d3aa4ce8SKevin Hilman 120b0be9616SNeil Armstrong&cec_AO { 121b0be9616SNeil Armstrong pinctrl-0 = <&cec_ao_a_h_pins>; 122b0be9616SNeil Armstrong pinctrl-names = "default"; 123b0be9616SNeil Armstrong status = "disabled"; 124b0be9616SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 125b0be9616SNeil Armstrong}; 126b0be9616SNeil Armstrong 127b0be9616SNeil Armstrong&cecb_AO { 128b0be9616SNeil Armstrong pinctrl-0 = <&cec_ao_b_h_pins>; 129b0be9616SNeil Armstrong pinctrl-names = "default"; 130b0be9616SNeil Armstrong status = "okay"; 131b0be9616SNeil Armstrong hdmi-phandle = <&hdmi_tx>; 132b0be9616SNeil Armstrong}; 133b0be9616SNeil Armstrong 134b0be9616SNeil Armstrong&cvbs_vdac_port { 135b0be9616SNeil Armstrong cvbs_vdac_out: endpoint { 136b0be9616SNeil Armstrong remote-endpoint = <&cvbs_connector_in>; 137b0be9616SNeil Armstrong }; 138b0be9616SNeil Armstrong}; 139b0be9616SNeil Armstrong 140b0be9616SNeil Armstrong&hdmi_tx { 141b0be9616SNeil Armstrong status = "okay"; 142b0be9616SNeil Armstrong pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 143b0be9616SNeil Armstrong pinctrl-names = "default"; 144b0be9616SNeil Armstrong hdmi-supply = <&vcc_5v>; 145b0be9616SNeil Armstrong}; 146b0be9616SNeil Armstrong 147b0be9616SNeil Armstrong&hdmi_tx_tmds_port { 148b0be9616SNeil Armstrong hdmi_tx_tmds_out: endpoint { 149b0be9616SNeil Armstrong remote-endpoint = <&hdmi_connector_in>; 150b0be9616SNeil Armstrong }; 151b0be9616SNeil Armstrong}; 152b0be9616SNeil Armstrong 153fff6e9d3SNeil Armstrong&ir { 154fff6e9d3SNeil Armstrong status = "okay"; 155fff6e9d3SNeil Armstrong pinctrl-0 = <&remote_input_ao_pins>; 156fff6e9d3SNeil Armstrong pinctrl-names = "default"; 157fff6e9d3SNeil Armstrong}; 158fff6e9d3SNeil Armstrong 159e8e7037cSNeil Armstrong&ext_mdio { 160e8e7037cSNeil Armstrong external_phy: ethernet-phy@0 { 161e8e7037cSNeil Armstrong /* Realtek RTL8211F (0x001cc916) */ 162e8e7037cSNeil Armstrong reg = <0>; 163e8e7037cSNeil Armstrong max-speed = <1000>; 164e8e7037cSNeil Armstrong eee-broken-1000t; 165e8e7037cSNeil Armstrong }; 166e8e7037cSNeil Armstrong}; 167e8e7037cSNeil Armstrong 168e8e7037cSNeil Armstrongðmac { 169e8e7037cSNeil Armstrong pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 170e8e7037cSNeil Armstrong pinctrl-names = "default"; 171e8e7037cSNeil Armstrong status = "okay"; 172e8e7037cSNeil Armstrong phy-mode = "rgmii"; 173e8e7037cSNeil Armstrong phy-handle = <&external_phy>; 174e8e7037cSNeil Armstrong amlogic,tx-delay-ns = <2>; 175e8e7037cSNeil Armstrong snps,reset-gpio = <&gpio GPIOZ_14 0>; 176e8e7037cSNeil Armstrong snps,reset-delays-us = <0 10000 1000000>; 177e8e7037cSNeil Armstrong snps,reset-active-low; 178e8e7037cSNeil Armstrong}; 179e8e7037cSNeil Armstrong 180c5c9c7cfSNeil Armstrong&uart_A { 181c5c9c7cfSNeil Armstrong status = "okay"; 182c5c9c7cfSNeil Armstrong pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 183c5c9c7cfSNeil Armstrong pinctrl-names = "default"; 184c5c9c7cfSNeil Armstrong uart-has-rtscts; 185c5c9c7cfSNeil Armstrong 186c5c9c7cfSNeil Armstrong bluetooth { 187c5c9c7cfSNeil Armstrong compatible = "brcm,bcm43438-bt"; 188c5c9c7cfSNeil Armstrong shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; 189c5c9c7cfSNeil Armstrong }; 190c5c9c7cfSNeil Armstrong}; 191c5c9c7cfSNeil Armstrong 192d3aa4ce8SKevin Hilman&uart_AO { 193d3aa4ce8SKevin Hilman status = "okay"; 1940b7aed33SNeil Armstrong pinctrl-0 = <&uart_ao_a_pins>; 1950b7aed33SNeil Armstrong pinctrl-names = "default"; 196d3aa4ce8SKevin Hilman}; 19745b72126SNeil Armstrong 19845b72126SNeil Armstrong&usb { 19945b72126SNeil Armstrong status = "okay"; 20045b72126SNeil Armstrong dr_mode = "host"; 20145b72126SNeil Armstrong}; 20245380009SGuillaume La Roque 20345380009SGuillaume La Roque/* SD card */ 20445380009SGuillaume La Roque&sd_emmc_b { 20545380009SGuillaume La Roque status = "okay"; 20645380009SGuillaume La Roque pinctrl-0 = <&sdcard_c_pins>; 20745380009SGuillaume La Roque pinctrl-1 = <&sdcard_clk_gate_c_pins>; 20845380009SGuillaume La Roque pinctrl-names = "default", "clk-gate"; 20945380009SGuillaume La Roque 21045380009SGuillaume La Roque bus-width = <4>; 21145380009SGuillaume La Roque cap-sd-highspeed; 21245380009SGuillaume La Roque max-frequency = <100000000>; 21345380009SGuillaume La Roque disable-wp; 21445380009SGuillaume La Roque 21545380009SGuillaume La Roque cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 21645380009SGuillaume La Roque vmmc-supply = <&vddao_3v3>; 21745380009SGuillaume La Roque vqmmc-supply = <&vddao_3v3>; 21845380009SGuillaume La Roque}; 21945380009SGuillaume La Roque 22045380009SGuillaume La Roque/* eMMC */ 22145380009SGuillaume La Roque&sd_emmc_c { 22245380009SGuillaume La Roque status = "okay"; 22345380009SGuillaume La Roque pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>; 22445380009SGuillaume La Roque pinctrl-1 = <&emmc_clk_gate_pins>; 22545380009SGuillaume La Roque pinctrl-names = "default", "clk-gate"; 22645380009SGuillaume La Roque 22745380009SGuillaume La Roque bus-width = <8>; 22845380009SGuillaume La Roque cap-mmc-highspeed; 22945380009SGuillaume La Roque max-frequency = <100000000>; 23045380009SGuillaume La Roque non-removable; 23145380009SGuillaume La Roque disable-wp; 23245380009SGuillaume La Roque 23345380009SGuillaume La Roque mmc-pwrseq = <&emmc_pwrseq>; 23445380009SGuillaume La Roque vmmc-supply = <&vcc_3v3>; 23545380009SGuillaume La Roque vqmmc-supply = <&flash_1v8>; 23645380009SGuillaume La Roque}; 237