/* * Copyright (C) Harald Geyer * based on sun50i-a64-olinuxino.dts by Jagan Teki * * SPDX-License-Identifier: (GPL-2.0 OR MIT) */ /dts-v1/; #include "sun50i-a64.dtsi" #include #include #include / { model = "Olimex A64 Teres-I"; compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64"; aliases { serial0 = &uart0; }; 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 = ; linux,code = ; wakeup-source; }; }; leds { compatible = "gpio-leds"; capslock { label = "teres-i:green:capslock"; gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ }; numlock { 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: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ }; }; &ehci1 { status = "okay"; }; /* The ANX6345 eDP-bridge is on i2c0. There is no linux (mainline) * driver for this chip at the moment, the bootloader initializes it. * However it can be accessed with the i2c-dev driver from user space. */ &i2c0 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; 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"; }; &r_rsb { status = "okay"; axp803: pmic@3a3 { compatible = "x-powers,axp803"; reg = <0x3a3>; interrupt-parent = <&r_intc>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; wakeup-source; }; }; #include "axp803.dtsi" ®_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 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>; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pb_pins>; status = "okay"; }; &usbphy { usb1_vbus-supply = <®_usb1_vbus>; status = "okay"; };