5dfdedf0de
Underscores should not be used in node names (dtc with W=2 warns about them), so replace them with hyphens. Use also generic name for pwrseq node, because generic naming is favored by Devicetree spec. All the clocks affected by this change use clock-output-names, so resulting clock name should not change. Functional impact checked with comparing before/after DTBs with dtx_diff and fdtdump. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/20240317184130.157695-2-krzysztof.kozlowski@linaro.org Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
393 lines
7.3 KiB
Devicetree
393 lines
7.3 KiB
Devicetree
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
// Copyright (C) Harald Geyer <harald@ccbib.org>
|
|
// based on sun50i-a64-olinuxino.dts by Jagan Teki <jteki@openedev.com>
|
|
|
|
/dts-v1/;
|
|
|
|
#include "sun50i-a64.dtsi"
|
|
#include "sun50i-a64-cpu-opp.dtsi"
|
|
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/pwm/pwm.h>
|
|
|
|
/ {
|
|
model = "Olimex A64 Teres-I";
|
|
compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
|
|
chassis-type = "laptop";
|
|
|
|
aliases {
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
backlight: backlight {
|
|
compatible = "pwm-backlight";
|
|
pwms = <&pwm 0 50000 0>;
|
|
power-supply = <®_dcdc1>;
|
|
brightness-levels = <0 5 7 10 14 20 28 40 56 80 112>;
|
|
default-brightness-level = <5>;
|
|
enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
|
|
framebuffer-lcd {
|
|
eDP25-supply = <®_dldo2>;
|
|
eDP12-supply = <®_dldo3>;
|
|
};
|
|
};
|
|
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
|
|
lid-switch {
|
|
label = "Lid Switch";
|
|
gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
|
|
linux,input-type = <EV_SW>;
|
|
linux,code = <SW_LID>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led-0 {
|
|
label = "teres-i:green:capslock";
|
|
gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */
|
|
};
|
|
|
|
led-1 {
|
|
label = "teres-i:green:numlock";
|
|
gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
|
|
};
|
|
};
|
|
|
|
reg_usb1_vbus: usb1-vbus {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "usb1-vbus";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
enable-active-high;
|
|
gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
|
|
status = "okay";
|
|
};
|
|
|
|
wifi_pwrseq: pwrseq {
|
|
compatible = "mmc-pwrseq-simple";
|
|
reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
|
|
};
|
|
|
|
speaker_amp: audio-amplifier {
|
|
compatible = "simple-audio-amplifier";
|
|
enable-gpios = <&r_pio 0 12 GPIO_ACTIVE_HIGH>; /* PL12 */
|
|
sound-name-prefix = "Speaker Amp";
|
|
};
|
|
};
|
|
|
|
&codec {
|
|
status = "okay";
|
|
};
|
|
|
|
&codec_analog {
|
|
cpvdd-supply = <®_eldo1>;
|
|
status = "okay";
|
|
};
|
|
|
|
&dai {
|
|
status = "okay";
|
|
};
|
|
|
|
&de {
|
|
status = "okay";
|
|
};
|
|
|
|
&cpu0 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu1 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu2 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&cpu3 {
|
|
cpu-supply = <®_dcdc2>;
|
|
};
|
|
|
|
&ehci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
|
|
&i2c0 {
|
|
clock-frequency = <100000>;
|
|
status = "okay";
|
|
|
|
anx6345: anx6345@38 {
|
|
compatible = "analogix,anx6345";
|
|
reg = <0x38>;
|
|
reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
|
|
dvdd25-supply = <®_dldo2>;
|
|
dvdd12-supply = <®_dldo3>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
|
|
anx6345_in: endpoint {
|
|
remote-endpoint = <&tcon0_out_anx6345>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&mixer0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&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 = <®_aldo2>;
|
|
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";
|
|
};
|
|
};
|
|
|
|
&mmc2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&mmc2_pins>;
|
|
vmmc-supply = <®_dcdc1>;
|
|
vqmmc-supply = <®_dcdc1>;
|
|
bus-width = <8>;
|
|
non-removable;
|
|
cap-mmc-hw-reset;
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pio {
|
|
vcc-pc-supply = <®_dcdc1>;
|
|
vcc-pd-supply = <®_dldo2>;
|
|
vcc-pe-supply = <®_aldo1>;
|
|
vcc-pf-supply = <®_dcdc1>; /* No dedicated supply-pin for this */
|
|
vcc-pg-supply = <®_aldo2>;
|
|
};
|
|
|
|
&pwm {
|
|
status = "okay";
|
|
};
|
|
|
|
&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>;
|
|
};
|
|
};
|
|
|
|
#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 */
|
|
|
|
®_dcdc5 {
|
|
regulator-always-on;
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
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 = <2500000>;
|
|
regulator-max-microvolt = <2500000>;
|
|
regulator-name = "vcc-pd";
|
|
};
|
|
|
|
®_dldo3 {
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-name = "vdd-edp";
|
|
};
|
|
|
|
®_dldo4 {
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-name = "vcc-wifi-io";
|
|
};
|
|
|
|
®_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 with 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>, <&speaker_amp>;
|
|
simple-audio-card,widgets = "Headphone", "Headphone Jack",
|
|
"Microphone", "Headset Microphone",
|
|
"Microphone", "Internal Microphone",
|
|
"Speaker", "Internal Speaker";
|
|
simple-audio-card,routing =
|
|
"Left DAC", "DACL",
|
|
"Right DAC", "DACR",
|
|
"ADCL", "Left ADC",
|
|
"ADCR", "Right ADC",
|
|
"Headphone Jack", "HP",
|
|
"Speaker Amp INL", "LINEOUT",
|
|
"Speaker Amp INR", "LINEOUT",
|
|
"Internal Speaker", "Speaker Amp OUTL",
|
|
"Internal Speaker", "Speaker Amp OUTR",
|
|
"Internal Microphone", "MBIAS",
|
|
"MIC1", "Internal Microphone",
|
|
"Headset Microphone", "HBIAS",
|
|
"MIC2", "Headset Microphone";
|
|
status = "okay";
|
|
};
|
|
|
|
&tcon0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&lcd_rgb666_pins>;
|
|
|
|
status = "okay";
|
|
};
|
|
|
|
&tcon0_out {
|
|
tcon0_out_anx6345: endpoint@0 {
|
|
reg = <0>;
|
|
remote-endpoint = <&anx6345_in>;
|
|
};
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pb_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbphy {
|
|
usb1_vbus-supply = <®_usb1_vbus>;
|
|
status = "okay";
|
|
};
|