Commit 92e5f31b04b4ec0faa79c103cd509b1df17fee4e

Authored by Mohammad Rasim
Committed by Neil Armstrong
1 parent 4778afcbe7

ARM: dts: meson: add p200 and p201 boards

This adds the device trees for p200 and p201 boards.
Synced from kernel 5.0.0
Commit: a667cb7a94d4 ("Merge branch 'akpm' (patches from Andrew)")

Signed-off-by: Mohammad Rasim <mohammad.rasim96@gmail.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>

Showing 4 changed files with 374 additions and 0 deletions Side-by-side Diff

arch/arm/dts/Makefile
... ... @@ -97,6 +97,8 @@
97 97 meson-gxbb-nanopi-k2.dtb \
98 98 meson-gxbb-odroidc2.dtb \
99 99 meson-gxbb-nanopi-k2.dtb \
  100 + meson-gxbb-p200.dtb \
  101 + meson-gxbb-p201.dtb \
100 102 meson-gxl-s905x-p212.dtb \
101 103 meson-gxl-s905x-libretech-cc.dtb \
102 104 meson-gxl-s905x-khadas-vim.dtb \
arch/arm/dts/meson-gxbb-p200.dts
  1 +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 +/*
  3 + * Copyright (c) 2016 Andreas Färber
  4 + * Copyright (c) 2016 BayLibre, Inc.
  5 + * Author: Kevin Hilman <khilman@kernel.org>
  6 + */
  7 +
  8 +/dts-v1/;
  9 +
  10 +#include "meson-gxbb-p20x.dtsi"
  11 +#include <dt-bindings/input/input.h>
  12 +
  13 +/ {
  14 + compatible = "amlogic,p200", "amlogic,meson-gxbb";
  15 + model = "Amlogic Meson GXBB P200 Development Board";
  16 +
  17 + avdd18_usb_adc: regulator-avdd18_usb_adc {
  18 + compatible = "regulator-fixed";
  19 + regulator-name = "AVDD18_USB_ADC";
  20 + regulator-min-microvolt = <1800000>;
  21 + regulator-max-microvolt = <1800000>;
  22 + };
  23 +
  24 + adc_keys {
  25 + compatible = "adc-keys";
  26 + io-channels = <&saradc 0>;
  27 + io-channel-names = "buttons";
  28 + keyup-threshold-microvolt = <1800000>;
  29 +
  30 + button-home {
  31 + label = "Home";
  32 + linux,code = <KEY_HOME>;
  33 + press-threshold-microvolt = <900000>; /* 50% */
  34 + };
  35 +
  36 + button-esc {
  37 + label = "Esc";
  38 + linux,code = <KEY_ESC>;
  39 + press-threshold-microvolt = <684000>; /* 38% */
  40 + };
  41 +
  42 + button-up {
  43 + label = "Volume Up";
  44 + linux,code = <KEY_VOLUMEUP>;
  45 + press-threshold-microvolt = <468000>; /* 26% */
  46 + };
  47 +
  48 + button-down {
  49 + label = "Volume Down";
  50 + linux,code = <KEY_VOLUMEDOWN>;
  51 + press-threshold-microvolt = <252000>; /* 14% */
  52 + };
  53 +
  54 + button-menu {
  55 + label = "Menu";
  56 + linux,code = <KEY_MENU>;
  57 + press-threshold-microvolt = <0>; /* 0% */
  58 + };
  59 + };
  60 +};
  61 +
  62 +&ethmac {
  63 + status = "okay";
  64 + pinctrl-0 = <&eth_rgmii_pins>;
  65 + pinctrl-names = "default";
  66 + phy-handle = <&eth_phy0>;
  67 + phy-mode = "rgmii";
  68 +
  69 + amlogic,tx-delay-ns = <2>;
  70 +
  71 + snps,reset-gpio = <&gpio GPIOZ_14 0>;
  72 + snps,reset-delays-us = <0 10000 1000000>;
  73 + snps,reset-active-low;
  74 +
  75 + mdio {
  76 + compatible = "snps,dwmac-mdio";
  77 + #address-cells = <1>;
  78 + #size-cells = <0>;
  79 +
  80 + eth_phy0: ethernet-phy@3 {
  81 + /* Micrel KSZ9031 (0x00221620) */
  82 + reg = <3>;
  83 + interrupt-parent = <&gpio_intc>;
  84 + /* MAC_INTR on GPIOZ_15 */
  85 + interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
  86 + };
  87 + };
  88 +};
  89 +
  90 +&i2c_B {
  91 + status = "okay";
  92 + pinctrl-0 = <&i2c_b_pins>;
  93 + pinctrl-names = "default";
  94 +};
  95 +
  96 +&saradc {
  97 + status = "okay";
  98 + vref-supply = <&avdd18_usb_adc>;
  99 +};
arch/arm/dts/meson-gxbb-p201.dts
  1 +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 +/*
  3 + * Copyright (c) 2016 Andreas Färber
  4 + * Copyright (c) 2016 BayLibre, Inc.
  5 + * Author: Kevin Hilman <khilman@kernel.org>
  6 + */
  7 +
  8 +/dts-v1/;
  9 +
  10 +#include "meson-gxbb-p20x.dtsi"
  11 +
  12 +/ {
  13 + compatible = "amlogic,p201", "amlogic,meson-gxbb";
  14 + model = "Amlogic Meson GXBB P201 Development Board";
  15 +};
  16 +
  17 +&ethmac {
  18 + status = "okay";
  19 + pinctrl-0 = <&eth_rmii_pins>;
  20 + pinctrl-names = "default";
  21 + phy-mode = "rmii";
  22 +
  23 + snps,reset-gpio = <&gpio GPIOZ_14 0>;
  24 + snps,reset-delays-us = <0 10000 1000000>;
  25 + snps,reset-active-low;
  26 +};
arch/arm/dts/meson-gxbb-p20x.dtsi
  1 +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 +/*
  3 + * Copyright (c) 2016 Andreas Färber
  4 + * Copyright (c) 2016 BayLibre, Inc.
  5 + * Author: Kevin Hilman <khilman@kernel.org>
  6 + */
  7 +
  8 +#include "meson-gxbb.dtsi"
  9 +
  10 +/ {
  11 + aliases {
  12 + serial0 = &uart_AO;
  13 + ethernet0 = &ethmac;
  14 + };
  15 +
  16 + chosen {
  17 + stdout-path = "serial0:115200n8";
  18 + };
  19 +
  20 + memory@0 {
  21 + device_type = "memory";
  22 + reg = <0x0 0x0 0x0 0x40000000>;
  23 + };
  24 +
  25 + usb_pwr: regulator-usb-pwrs {
  26 + compatible = "regulator-fixed";
  27 +
  28 + regulator-name = "USB_PWR";
  29 +
  30 + regulator-min-microvolt = <5000000>;
  31 + regulator-max-microvolt = <5000000>;
  32 +
  33 + /* signal name in schematic: USB_PWR_EN */
  34 + gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
  35 + enable-active-high;
  36 + };
  37 +
  38 + vddio_card: gpio-regulator {
  39 + compatible = "regulator-gpio";
  40 +
  41 + regulator-name = "VDDIO_CARD";
  42 + regulator-min-microvolt = <1800000>;
  43 + regulator-max-microvolt = <3300000>;
  44 +
  45 + gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
  46 + gpios-states = <1>;
  47 +
  48 + /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
  49 + states = <1800000 0
  50 + 3300000 1>;
  51 +
  52 + regulator-settling-time-up-us = <10000>;
  53 + regulator-settling-time-down-us = <150000>;
  54 + };
  55 +
  56 + vddio_boot: regulator-vddio_boot {
  57 + compatible = "regulator-fixed";
  58 + regulator-name = "VDDIO_BOOT";
  59 + regulator-min-microvolt = <1800000>;
  60 + regulator-max-microvolt = <1800000>;
  61 + };
  62 +
  63 + vddao_3v3: regulator-vddao_3v3 {
  64 + compatible = "regulator-fixed";
  65 + regulator-name = "VDDAO_3V3";
  66 + regulator-min-microvolt = <3300000>;
  67 + regulator-max-microvolt = <3300000>;
  68 + };
  69 +
  70 + vcc_3v3: regulator-vcc_3v3 {
  71 + compatible = "regulator-fixed";
  72 + regulator-name = "VCC_3V3";
  73 + regulator-min-microvolt = <3300000>;
  74 + regulator-max-microvolt = <3300000>;
  75 + };
  76 +
  77 + emmc_pwrseq: emmc-pwrseq {
  78 + compatible = "mmc-pwrseq-emmc";
  79 + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
  80 + };
  81 +
  82 + wifi32k: wifi32k {
  83 + compatible = "pwm-clock";
  84 + #clock-cells = <0>;
  85 + clock-frequency = <32768>;
  86 + pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  87 + };
  88 +
  89 + sdio_pwrseq: sdio-pwrseq {
  90 + compatible = "mmc-pwrseq-simple";
  91 + reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
  92 + clocks = <&wifi32k>;
  93 + clock-names = "ext_clock";
  94 + };
  95 +
  96 + cvbs_connector: cvbs-connector {
  97 + compatible = "composite-video-connector";
  98 +
  99 + port {
  100 + cvbs_connector_in: endpoint {
  101 + remote-endpoint = <&cvbs_vdac_out>;
  102 + };
  103 + };
  104 + };
  105 +
  106 + hdmi-connector {
  107 + compatible = "hdmi-connector";
  108 + type = "a";
  109 +
  110 + port {
  111 + hdmi_connector_in: endpoint {
  112 + remote-endpoint = <&hdmi_tx_tmds_out>;
  113 + };
  114 + };
  115 + };
  116 +};
  117 +
  118 +&cec_AO {
  119 + status = "okay";
  120 + pinctrl-0 = <&ao_cec_pins>;
  121 + pinctrl-names = "default";
  122 + hdmi-phandle = <&hdmi_tx>;
  123 +};
  124 +
  125 +&cvbs_vdac_port {
  126 + cvbs_vdac_out: endpoint {
  127 + remote-endpoint = <&cvbs_connector_in>;
  128 + };
  129 +};
  130 +
  131 +&hdmi_tx {
  132 + status = "okay";
  133 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
  134 + pinctrl-names = "default";
  135 +};
  136 +
  137 +&hdmi_tx_tmds_port {
  138 + hdmi_tx_tmds_out: endpoint {
  139 + remote-endpoint = <&hdmi_connector_in>;
  140 + };
  141 +};
  142 +
  143 +&ir {
  144 + status = "okay";
  145 + pinctrl-0 = <&remote_input_ao_pins>;
  146 + pinctrl-names = "default";
  147 +};
  148 +
  149 +&pwm_ef {
  150 + status = "okay";
  151 + pinctrl-0 = <&pwm_e_pins>;
  152 + pinctrl-names = "default";
  153 + clocks = <&clkc CLKID_FCLK_DIV4>;
  154 + clock-names = "clkin0";
  155 +};
  156 +
  157 +/* Wireless SDIO Module */
  158 +&sd_emmc_a {
  159 + status = "okay";
  160 + pinctrl-0 = <&sdio_pins>;
  161 + pinctrl-1 = <&sdio_clk_gate_pins>;
  162 + pinctrl-names = "default", "clk-gate";
  163 + #address-cells = <1>;
  164 + #size-cells = <0>;
  165 +
  166 + bus-width = <4>;
  167 + cap-sd-highspeed;
  168 + max-frequency = <100000000>;
  169 +
  170 + non-removable;
  171 + disable-wp;
  172 +
  173 + mmc-pwrseq = <&sdio_pwrseq>;
  174 +
  175 + vmmc-supply = <&vddao_3v3>;
  176 + vqmmc-supply = <&vddio_boot>;
  177 +
  178 + brcmf: wifi@1 {
  179 + reg = <1>;
  180 + compatible = "brcm,bcm4329-fmac";
  181 + };
  182 +};
  183 +
  184 +/* SD card */
  185 +&sd_emmc_b {
  186 + status = "okay";
  187 + pinctrl-0 = <&sdcard_pins>;
  188 + pinctrl-1 = <&sdcard_clk_gate_pins>;
  189 + pinctrl-names = "default", "clk-gate";
  190 +
  191 + bus-width = <4>;
  192 + cap-sd-highspeed;
  193 + sd-uhs-sdr12;
  194 + sd-uhs-sdr25;
  195 + sd-uhs-sdr50;
  196 + max-frequency = <100000000>;
  197 + disable-wp;
  198 +
  199 + cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  200 +
  201 + vmmc-supply = <&vddao_3v3>;
  202 + vqmmc-supply = <&vddio_card>;
  203 +};
  204 +
  205 +/* eMMC */
  206 +&sd_emmc_c {
  207 + status = "okay";
  208 + pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
  209 + pinctrl-1 = <&emmc_clk_gate_pins>;
  210 + pinctrl-names = "default", "clk-gate";
  211 +
  212 + bus-width = <8>;
  213 + cap-mmc-highspeed;
  214 + max-frequency = <200000000>;
  215 + non-removable;
  216 + disable-wp;
  217 + mmc-ddr-1_8v;
  218 + mmc-hs200-1_8v;
  219 +
  220 + mmc-pwrseq = <&emmc_pwrseq>;
  221 + vmmc-supply = <&vcc_3v3>;
  222 + vqmmc-supply = <&vddio_boot>;
  223 +};
  224 +
  225 +/* This UART is brought out to the DB9 connector */
  226 +&uart_AO {
  227 + status = "okay";
  228 + pinctrl-0 = <&uart_ao_a_pins>;
  229 + pinctrl-names = "default";
  230 +};
  231 +
  232 +&usb0_phy {
  233 + status = "okay";
  234 + phy-supply = <&usb_pwr>;
  235 +};
  236 +
  237 +&usb1_phy {
  238 + status = "okay";
  239 +};
  240 +
  241 +&usb0 {
  242 + status = "okay";
  243 +};
  244 +
  245 +&usb1 {
  246 + status = "okay";
  247 +};