mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-20 10:44:23 +08:00
8249ede477
The Libretech ALL-H3-CC has a high density connector for attaching an eMMC module. The module form factor and connection is specific to Libretech, and has provisions for split vmmc/vqmmc (core and I/O) voltage supplies, but this board does not wire the vqmmc side. The H2+/H3/H5 SoCs do not support alternate I/O voltages for eMMC either. Only 3.3V is supported. A specific module that ties vqmmc to vmmc, with both at 3.3V, must be used. Given that a) eMMC is not designed to be hotplugged, b) power is always provided on the pins, and c) MMC controllers can deal with missing cards, we can enable this by default. If a module is attached it will be picked up by the system. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
225 lines
3.8 KiB
Plaintext
225 lines
3.8 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (C) 2017 Chen-Yu Tsai <wens@csie.org>
|
|
*/
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
aliases {
|
|
ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
connector {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_con_in: endpoint {
|
|
remote-endpoint = <&hdmi_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
pwr_led {
|
|
label = "librecomputer:green:pwr";
|
|
gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
|
|
default-state = "on";
|
|
};
|
|
|
|
status_led {
|
|
label = "librecomputer:blue:status";
|
|
gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA7 */
|
|
};
|
|
};
|
|
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
|
|
power {
|
|
label = "power";
|
|
linux,code = <KEY_POWER>;
|
|
gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
|
};
|
|
};
|
|
|
|
reg_vcc1v2: vcc1v2 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc1v2";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
vin-supply = <®_vcc5v0>;
|
|
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_vcc3v3: vcc3v3 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc3v3";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
vin-supply = <®_vcc5v0>;
|
|
};
|
|
|
|
/* This represents the board's 5V input */
|
|
reg_vcc5v0: vcc5v0 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc5v0";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
};
|
|
|
|
reg_vcc_dram: vcc-dram {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc-dram";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
vin-supply = <®_vcc5v0>;
|
|
gpio = <&r_pio 0 9 GPIO_ACTIVE_HIGH>; /* PL9 */
|
|
enable-active-high;
|
|
};
|
|
|
|
reg_vcc_io: vcc-io {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vcc-io";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
vin-supply = <®_vcc3v3>;
|
|
gpio = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
|
|
};
|
|
|
|
reg_vdd_cpux: vdd-cpux {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "vdd-cpux";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
vin-supply = <®_vcc5v0>;
|
|
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
|
|
enable-active-high;
|
|
};
|
|
};
|
|
|
|
&codec {
|
|
allwinner,audio-routing =
|
|
"Line Out", "LINEOUT",
|
|
"MIC1", "Mic",
|
|
"Mic", "MBIAS";
|
|
status = "okay";
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <®_vdd_cpux>;
|
|
};
|
|
|
|
&de {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&emac {
|
|
phy-handle = <&int_mii_phy>;
|
|
phy-mode = "mii";
|
|
allwinner,leds-active-low;
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi {
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi_out {
|
|
hdmi_out_con: endpoint {
|
|
remote-endpoint = <&hdmi_con_in>;
|
|
};
|
|
};
|
|
|
|
&ir {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&ir_pins_a>;
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc0 {
|
|
vmmc-supply = <®_vcc_io>;
|
|
bus-width = <4>;
|
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc2_8bit_pins>;
|
|
vmmc-supply = <®_vcc_io>;
|
|
bus-width = <8>;
|
|
non-removable;
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci2 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci3 {
|
|
status = "okay";
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pins_a>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usb_otg {
|
|
dr_mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
&usbphy {
|
|
/* VBUS on USB ports are always on */
|
|
usb0_vbus-supply = <®_vcc5v0>;
|
|
usb1_vbus-supply = <®_vcc5v0>;
|
|
usb2_vbus-supply = <®_vcc5v0>;
|
|
usb3_vbus-supply = <®_vcc5v0>;
|
|
status = "okay";
|
|
};
|