378 lines
6.9 KiB
Plaintext
378 lines
6.9 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
// Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
|
|
|
|
/dts-v1/;
|
|
|
|
#include "sun50i-a64.dtsi"
|
|
#include "sun50i-a64-cpu-opp.dtsi"
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
model = "Olimex A64-Olinuxino";
|
|
compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64";
|
|
|
|
aliases {
|
|
ethernet0 = &emac;
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
};
|
|
|
|
hdmi-connector {
|
|
compatible = "hdmi-connector";
|
|
type = "a";
|
|
|
|
port {
|
|
hdmi_con_in: endpoint {
|
|
remote-endpoint = <&hdmi_out_con>;
|
|
};
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led-0 {
|
|
label = "a64-olinuxino:red:user";
|
|
gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
|
|
};
|
|
};
|
|
|
|
reg_usb1_vbus: usb1-vbus {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "usb1-vbus";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
regulator-boot-on;
|
|
enable-active-high;
|
|
gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */
|
|
status = "okay";
|
|
};
|
|
|
|
wifi_pwrseq: wifi_pwrseq {
|
|
compatible = "mmc-pwrseq-simple";
|
|
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
|
};
|
|
};
|
|
|
|
&codec {
|
|
status = "okay";
|
|
};
|
|
|
|
&codec_analog {
|
|
cpvdd-supply = <®_eldo1>;
|
|
status = "okay";
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu1 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu2 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu3 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&dai {
|
|
status = "okay";
|
|
};
|
|
|
|
&de {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ehci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&emac {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&rgmii_pins>;
|
|
phy-mode = "rgmii";
|
|
phy-handle = <&ext_rgmii_phy>;
|
|
phy-supply = <®_dcdc1>;
|
|
allwinner,tx-delay-ps = <600>;
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi {
|
|
hvcc-supply = <®_dldo1>;
|
|
status = "okay";
|
|
};
|
|
|
|
&hdmi_out {
|
|
hdmi_out_con: endpoint {
|
|
remote-endpoint = <&hdmi_con_in>;
|
|
};
|
|
};
|
|
|
|
&mdio {
|
|
ext_rgmii_phy: ethernet-phy@1 {
|
|
compatible = "ethernet-phy-ieee802.3-c22";
|
|
reg = <1>;
|
|
};
|
|
};
|
|
|
|
&mmc0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc0_pins>;
|
|
vmmc-supply = <®_dcdc1>;
|
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
|
|
disable-wp;
|
|
bus-width = <4>;
|
|
status = "okay";
|
|
};
|
|
|
|
&mmc1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc1_pins>;
|
|
vmmc-supply = <®_dcdc1>;
|
|
vqmmc-supply = <®_dldo4>;
|
|
mmc-pwrseq = <&wifi_pwrseq>;
|
|
bus-width = <4>;
|
|
non-removable;
|
|
status = "okay";
|
|
|
|
rtl8723bs: wifi@1 {
|
|
reg = <1>;
|
|
interrupt-parent = <&r_pio>;
|
|
interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
|
|
interrupt-names = "host-wake";
|
|
};
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pio {
|
|
vcc-pc-supply = <®_dcdc1>;
|
|
vcc-pd-supply = <®_dcdc1>;
|
|
vcc-pe-supply = <®_aldo1>;
|
|
vcc-pg-supply = <®_dldo4>;
|
|
};
|
|
|
|
&r_pio {
|
|
/*
|
|
* FIXME: We can't add that supply for now since it would
|
|
* create a circular dependency between pinctrl, the regulator
|
|
* and the RSB Bus.
|
|
*
|
|
* vcc-pl-supply = <®_aldo2>;
|
|
*/
|
|
};
|
|
|
|
&pio {
|
|
vcc-pa-supply = <®_dcdc1>;
|
|
vcc-pb-supply = <®_dcdc1>;
|
|
vcc-pc-supply = <®_dcdc1>;
|
|
vcc-pd-supply = <®_dcdc1>;
|
|
vcc-pe-supply = <®_aldo1>;
|
|
vcc-pf-supply = <®_dcdc1>;
|
|
vcc-pg-supply = <®_dldo4>;
|
|
vcc-ph-supply = <®_dcdc1>;
|
|
};
|
|
|
|
&r_rsb {
|
|
status = "okay";
|
|
|
|
axp803: pmic@3a3 {
|
|
compatible = "x-powers,axp803";
|
|
reg = <0x3a3>;
|
|
interrupt-parent = <&r_intc>;
|
|
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
|
|
x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
|
|
};
|
|
};
|
|
|
|
/* VCC-PL is powered by aldo2 but we cannot add it as the RSB */
|
|
/* interface used to talk to the PMIC in on the PL pins */
|
|
/* &r_pio { */
|
|
/* vcc-pl-supply = <®_aldo2>; */
|
|
/* }; */
|
|
|
|
#include "axp803.dtsi"
|
|
|
|
&ac_power_supply {
|
|
status = "okay";
|
|
};
|
|
|
|
&battery_power_supply {
|
|
status = "okay";
|
|
};
|
|
|
|
®_aldo1 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-name = "vcc-pe";
|
|
};
|
|
|
|
®_aldo2 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-pl";
|
|
};
|
|
|
|
®_aldo3 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
regulator-name = "vcc-pll-avcc";
|
|
};
|
|
|
|
®_dcdc1 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-3v3";
|
|
};
|
|
|
|
®_dcdc2 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1040000>;
|
|
regulator-max-microvolt = <1300000>;
|
|
regulator-name = "vdd-cpux";
|
|
};
|
|
|
|
/* DCDC3 is polyphased with DCDC2 */
|
|
|
|
/*
|
|
* The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal
|
|
* 1.35V that the PMIC can drive.
|
|
*/
|
|
®_dcdc5 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1360000>;
|
|
regulator-max-microvolt = <1360000>;
|
|
regulator-name = "vcc-ddr3";
|
|
};
|
|
|
|
®_dcdc6 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-name = "vdd-sys";
|
|
};
|
|
|
|
®_dldo1 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-hdmi";
|
|
};
|
|
|
|
®_dldo2 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-mipi";
|
|
};
|
|
|
|
®_dldo3 {
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-name = "vcc-avdd-csi";
|
|
};
|
|
|
|
®_dldo4 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-wifi-io";
|
|
};
|
|
|
|
®_drivevbus {
|
|
regulator-name = "usb0-vbus";
|
|
status = "okay";
|
|
};
|
|
|
|
®_eldo1 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "cpvdd";
|
|
};
|
|
|
|
®_eldo2 {
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-name = "vcc-dvdd-csi";
|
|
};
|
|
|
|
®_fldo1 {
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-name = "vcc-1v2-hsic";
|
|
};
|
|
|
|
/*
|
|
* The A64 chip cannot work without this regulator off, although
|
|
* it seems to be only driving the AR100 core.
|
|
* Maybe we don't still know well about CPUs domain.
|
|
*/
|
|
®_fldo2 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-name = "vdd-cpus";
|
|
};
|
|
|
|
®_rtc_ldo {
|
|
regulator-name = "vcc-rtc";
|
|
};
|
|
|
|
&simplefb_hdmi {
|
|
vcc-hdmi-supply = <®_dldo1>;
|
|
};
|
|
|
|
&sound {
|
|
simple-audio-card,aux-devs = <&codec_analog>;
|
|
simple-audio-card,widgets = "Microphone", "Microphone Jack Left",
|
|
"Microphone", "Microphone Jack Right",
|
|
"Headphone", "Headphone Jack";
|
|
simple-audio-card,routing = "Left DAC", "DACL",
|
|
"Right DAC", "DACR",
|
|
"Headphone Jack", "HP",
|
|
"ADCL", "Left ADC",
|
|
"ADCR", "Right ADC",
|
|
"Microphone Jack Left", "MBIAS",
|
|
"MIC1", "Microphone Jack Left",
|
|
"Microphone Jack Right", "MBIAS",
|
|
"MIC2", "Microphone Jack Right";
|
|
status = "okay";
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pb_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usb_otg {
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
};
|
|
|
|
&usbphy {
|
|
status = "okay";
|
|
usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
|
|
usb0_vbus-supply = <®_drivevbus>;
|
|
usb1_vbus-supply = <®_usb1_vbus>;
|
|
};
|