0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (c) 2016 Andreas Färber
0004 * Copyright (c) 2016 BayLibre, Inc.
0005 * Author: Kevin Hilman <khilman@kernel.org>
0006 */
0007
0008 #include "meson-gxbb.dtsi"
0009
0010 / {
0011 aliases {
0012 serial0 = &uart_AO;
0013 ethernet0 = ðmac;
0014 };
0015
0016 chosen {
0017 stdout-path = "serial0:115200n8";
0018 };
0019
0020 memory@0 {
0021 device_type = "memory";
0022 reg = <0x0 0x0 0x0 0x40000000>;
0023 };
0024
0025 usb_pwr: regulator-usb-pwrs {
0026 compatible = "regulator-fixed";
0027
0028 regulator-name = "USB_PWR";
0029
0030 regulator-min-microvolt = <5000000>;
0031 regulator-max-microvolt = <5000000>;
0032
0033 /* signal name in schematic: USB_PWR_EN */
0034 gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
0035 enable-active-high;
0036 };
0037
0038 vddio_card: gpio-regulator {
0039 compatible = "regulator-gpio";
0040
0041 regulator-name = "VDDIO_CARD";
0042 regulator-min-microvolt = <1800000>;
0043 regulator-max-microvolt = <3300000>;
0044
0045 gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
0046 gpios-states = <1>;
0047
0048 /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
0049 states = <1800000 0>,
0050 <3300000 1>;
0051
0052 regulator-settling-time-up-us = <10000>;
0053 regulator-settling-time-down-us = <150000>;
0054 };
0055
0056 vddio_boot: regulator-vddio_boot {
0057 compatible = "regulator-fixed";
0058 regulator-name = "VDDIO_BOOT";
0059 regulator-min-microvolt = <1800000>;
0060 regulator-max-microvolt = <1800000>;
0061 };
0062
0063 vddao_3v3: regulator-vddao_3v3 {
0064 compatible = "regulator-fixed";
0065 regulator-name = "VDDAO_3V3";
0066 regulator-min-microvolt = <3300000>;
0067 regulator-max-microvolt = <3300000>;
0068 };
0069
0070 vcc_3v3: regulator-vcc_3v3 {
0071 compatible = "regulator-fixed";
0072 regulator-name = "VCC_3V3";
0073 regulator-min-microvolt = <3300000>;
0074 regulator-max-microvolt = <3300000>;
0075 };
0076
0077 emmc_pwrseq: emmc-pwrseq {
0078 compatible = "mmc-pwrseq-emmc";
0079 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
0080 };
0081
0082 wifi32k: wifi32k {
0083 compatible = "pwm-clock";
0084 #clock-cells = <0>;
0085 clock-frequency = <32768>;
0086 pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
0087 };
0088
0089 sdio_pwrseq: sdio-pwrseq {
0090 compatible = "mmc-pwrseq-simple";
0091 reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
0092 clocks = <&wifi32k>;
0093 clock-names = "ext_clock";
0094 };
0095
0096 cvbs_connector: cvbs-connector {
0097 compatible = "composite-video-connector";
0098
0099 port {
0100 cvbs_connector_in: endpoint {
0101 remote-endpoint = <&cvbs_vdac_out>;
0102 };
0103 };
0104 };
0105
0106 hdmi-connector {
0107 compatible = "hdmi-connector";
0108 type = "a";
0109
0110 port {
0111 hdmi_connector_in: endpoint {
0112 remote-endpoint = <&hdmi_tx_tmds_out>;
0113 };
0114 };
0115 };
0116 };
0117
0118 &cec_AO {
0119 status = "okay";
0120 pinctrl-0 = <&ao_cec_pins>;
0121 pinctrl-names = "default";
0122 hdmi-phandle = <&hdmi_tx>;
0123 };
0124
0125 &cvbs_vdac_port {
0126 cvbs_vdac_out: endpoint {
0127 remote-endpoint = <&cvbs_connector_in>;
0128 };
0129 };
0130
0131 &hdmi_tx {
0132 status = "okay";
0133 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
0134 pinctrl-names = "default";
0135 };
0136
0137 &hdmi_tx_tmds_port {
0138 hdmi_tx_tmds_out: endpoint {
0139 remote-endpoint = <&hdmi_connector_in>;
0140 };
0141 };
0142
0143 &ir {
0144 status = "okay";
0145 pinctrl-0 = <&remote_input_ao_pins>;
0146 pinctrl-names = "default";
0147 };
0148
0149 &pwm_ef {
0150 status = "okay";
0151 pinctrl-0 = <&pwm_e_pins>;
0152 pinctrl-names = "default";
0153 clocks = <&clkc CLKID_FCLK_DIV4>;
0154 clock-names = "clkin0";
0155 };
0156
0157 /* Wireless SDIO Module */
0158 &sd_emmc_a {
0159 status = "okay";
0160 pinctrl-0 = <&sdio_pins>;
0161 pinctrl-1 = <&sdio_clk_gate_pins>;
0162 pinctrl-names = "default", "clk-gate";
0163 #address-cells = <1>;
0164 #size-cells = <0>;
0165
0166 bus-width = <4>;
0167 cap-sd-highspeed;
0168 max-frequency = <50000000>;
0169
0170 non-removable;
0171 disable-wp;
0172
0173 /* WiFi firmware requires power to be kept while in suspend */
0174 keep-power-in-suspend;
0175
0176 mmc-pwrseq = <&sdio_pwrseq>;
0177
0178 vmmc-supply = <&vddao_3v3>;
0179 vqmmc-supply = <&vddio_boot>;
0180
0181 brcmf: wifi@1 {
0182 reg = <1>;
0183 compatible = "brcm,bcm4329-fmac";
0184 };
0185 };
0186
0187 /* SD card */
0188 &sd_emmc_b {
0189 status = "okay";
0190 pinctrl-0 = <&sdcard_pins>;
0191 pinctrl-1 = <&sdcard_clk_gate_pins>;
0192 pinctrl-names = "default", "clk-gate";
0193
0194 bus-width = <4>;
0195 cap-sd-highspeed;
0196 sd-uhs-sdr12;
0197 sd-uhs-sdr25;
0198 sd-uhs-sdr50;
0199 max-frequency = <100000000>;
0200 disable-wp;
0201
0202 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
0203
0204 vmmc-supply = <&vddao_3v3>;
0205 vqmmc-supply = <&vddio_card>;
0206 };
0207
0208 /* eMMC */
0209 &sd_emmc_c {
0210 status = "okay";
0211 pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
0212 pinctrl-1 = <&emmc_clk_gate_pins>;
0213 pinctrl-names = "default", "clk-gate";
0214
0215 bus-width = <8>;
0216 cap-mmc-highspeed;
0217 max-frequency = <200000000>;
0218 non-removable;
0219 disable-wp;
0220 mmc-ddr-1_8v;
0221 mmc-hs200-1_8v;
0222
0223 mmc-pwrseq = <&emmc_pwrseq>;
0224 vmmc-supply = <&vcc_3v3>;
0225 vqmmc-supply = <&vddio_boot>;
0226 };
0227
0228 /* This UART is brought out to the DB9 connector */
0229 &uart_AO {
0230 status = "okay";
0231 pinctrl-0 = <&uart_ao_a_pins>;
0232 pinctrl-names = "default";
0233 };
0234
0235 &usb0_phy {
0236 status = "okay";
0237 phy-supply = <&usb_pwr>;
0238 };
0239
0240 &usb1_phy {
0241 status = "okay";
0242 };
0243
0244 &usb0 {
0245 status = "okay";
0246 };
0247
0248 &usb1 {
0249 status = "okay";
0250 };