blob: 28fa8aa3f376f53144640c0113d08112a7321a32 [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
* Based on meson-gx-p23x-q20x.dtsi:
* - Copyright (c) 2016 Endless Computers, Inc.
* Author: Carlo Caione <carlo@endlessm.com>
* - Copyright (c) 2016 BayLibre, SAS.
* Author: Neil Armstrong <narmstrong@baylibre.com>
*/
/* Common DTSI for devices which are based on the P212 reference board. */
#include "meson-g12b-a311d.dtsi"
/ {
aliases {
serial0 = &uart_AO;
serial1 = &uart_A;
spi0 = &spifc;
spi1 = &spicc0;
spi2 = &spicc1;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c_AO;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@0 {
device_type = "memory";
reg = <0x0 0x0 0x0 0x80000000>;
};
vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vddao_3v3: regulator-vddao_3v3 {
compatible = "regulator-fixed";
regulator-name = "VDDAO_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
vddio_ao18: regulator-vddio_ao18 {
compatible = "regulator-fixed";
regulator-name = "VDDIO_AO18";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
vcc_3v3: regulator-vcc_3v3 {
compatible = "regulator-fixed";
regulator-name = "VCC_3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
};
wifi32k: wifi32k {
compatible = "pwm-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
};
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
clocks = <&wifi32k>;
clock-names = "ext_clock";
};
};
&ethmac {
status = "okay";
internal_phy = <1>;
mc_val = <0x4be04>;
/*mc_val = <0x1621>;*/
};
&ir {
status = "disabled";
//pinctrl-0 = <&remote_input_ao_pins>;
//pinctrl-names = "default";
};
&saradc {
status = "okay";
vref-supply = <&vddio_ao18>;
};
/* Wireless SDIO Module */
&sd_emmc_a {
status = "disabled";
//pinctrl-0 = <&sdio_pins>;
//pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
bus-width = <4>;
cap-sd-highspeed;
max-frequency = <100000000>;
non-removable;
disable-wp;
pinname = "sdio";
mmc-pwrseq = <&sdio_pwrseq>;
vmmc-supply = <&vddao_3v3>;
vqmmc-supply = <&vddio_boot>;
};
/* SD card */
&sd_emmc_b {
status = "okay";
pinctrl-0 = <&sd_all_pins>;
pinctrl-names = "default";
bus-width = <4>;
cap-sd-highspeed;
max-frequency = <100000000>;
disable-wp;
pinname = "sd";
init_co_phase = <2>;
init_tx_phase = <0>;
sd_hs_co_phase = <2>;
sd_hs_tx_phase = <0>;
sdr104_co_phase = <2>;
sdr104_hs_tx_phase = <0>;
cd-detect = <&gpio GPIOC_6 GPIO_ACTIVE_HIGH>;
/* cd-inverted; */
vmmc-supply = <&vddao_3v3>;
vqmmc-supply = <&vddio_boot>;
};
/* eMMC */
&sd_emmc_c {
status = "okay";
pinctrl-0 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
pinctrl-names = "default";
bus-width = <8>;
cap-sd-highspeed;
cap-mmc-highspeed;
max-frequency = <200000000>;
non-removable;
disable-wp;
// mmc-ddr-1_8v;
mmc-hs200-1_8v;
pinname = "emmc";
init_co_phase = <2>;
init_tx_phase = <0>;
hs_co_phase = <1>;
hs_tx_phase = <0>;
ddr_co_phase = <2>;
ddr_tx_phase = <0>;
hs2_co_phase = <2>;
hs2_tx_phase = <0>;
hw_reset = <&gpio BOOT_12 GPIO_ACTIVE_HIGH>;
mmc-pwrseq = <&emmc_pwrseq>;
vmmc-supply = <&vcc_3v3>;
vqmmc-supply = <&vddio_boot>;
};
&dwc3 {
status = "okay";
dr_mode = "host";
};
&usb2_phy_v2 {
status = "okay";
portnum = <2>;
};
&usb3_phy_v2 {
status = "okay";
portnum = <0>;
gpio-vbus-power = "GPIOH_6";
gpios = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>;
};
&pwm_ef {
status = "okay";
//pinctrl-0 = <&pwm_e_pins>;
pinctrl-names = "default";
};
/* This is connected to the Bluetooth module: */
&uart_A {
status = "okay";
pinctrl-0 = <&a_uart_pins>;
pinctrl-names = "default";
uart-has-rtscts;
};
&uart_AO {
status = "okay";
pinctrl-0 = <&ao_uart_pins>;
pinctrl-names = "default";
};
&spifc {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spifc_all_pins>;
max-frequency = <80000000>;
max-io = <4>;
cs-gpios = <&gpio BOOT_14 GPIO_ACTIVE_HIGH>;
clocks = <&clkc CLKID_CLK81>;
clock-names = "core";
};
&spicc1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spicc1_pins>;
cs-gpios = <&gpio GPIOH_6 0>;
};