1c916eb95SHarald Geyer/* 2c916eb95SHarald Geyer * Copyright (C) Harald Geyer <harald@ccbib.org> 3c916eb95SHarald Geyer * based on sun50i-a64-olinuxino.dts by Jagan Teki <jteki@openedev.com> 4c916eb95SHarald Geyer * 5c916eb95SHarald Geyer * SPDX-License-Identifier: (GPL-2.0 OR MIT) 6c916eb95SHarald Geyer */ 7c916eb95SHarald Geyer 8c916eb95SHarald Geyer/dts-v1/; 9c916eb95SHarald Geyer 10c916eb95SHarald Geyer#include "sun50i-a64.dtsi" 11c916eb95SHarald Geyer 12c916eb95SHarald Geyer#include <dt-bindings/gpio/gpio.h> 13c916eb95SHarald Geyer#include <dt-bindings/input/input.h> 14c916eb95SHarald Geyer#include <dt-bindings/pwm/pwm.h> 15c916eb95SHarald Geyer 16c916eb95SHarald Geyer/ { 17c916eb95SHarald Geyer model = "Olimex A64 Teres-I"; 18c916eb95SHarald Geyer compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64"; 19c916eb95SHarald Geyer 20c916eb95SHarald Geyer aliases { 21c916eb95SHarald Geyer serial0 = &uart0; 22c916eb95SHarald Geyer }; 23c916eb95SHarald Geyer 2424bd5d2cSHarald Geyer backlight: backlight { 2524bd5d2cSHarald Geyer compatible = "pwm-backlight"; 2624bd5d2cSHarald Geyer pwms = <&pwm 0 50000 0>; 2724bd5d2cSHarald Geyer power-supply = <®_dcdc1>; 2824bd5d2cSHarald Geyer brightness-levels = <0 5 7 10 14 20 28 40 56 80 112>; 2924bd5d2cSHarald Geyer default-brightness-level = <5>; 3024bd5d2cSHarald Geyer enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ 3124bd5d2cSHarald Geyer }; 3224bd5d2cSHarald Geyer 33c916eb95SHarald Geyer chosen { 34c916eb95SHarald Geyer stdout-path = "serial0:115200n8"; 35c916eb95SHarald Geyer 36c916eb95SHarald Geyer framebuffer-lcd { 37c916eb95SHarald Geyer eDP25-supply = <®_dldo2>; 38c916eb95SHarald Geyer eDP12-supply = <®_dldo3>; 39c916eb95SHarald Geyer }; 40c916eb95SHarald Geyer }; 41c916eb95SHarald Geyer 42c916eb95SHarald Geyer gpio-keys { 43c916eb95SHarald Geyer compatible = "gpio-keys"; 44c916eb95SHarald Geyer 45c916eb95SHarald Geyer lid-switch { 46c916eb95SHarald Geyer label = "Lid Switch"; 47c916eb95SHarald Geyer gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */ 48c916eb95SHarald Geyer linux,input-type = <EV_SW>; 49c916eb95SHarald Geyer linux,code = <SW_LID>; 5048f3e7bfSIcenowy Zheng wakeup-source; 51c916eb95SHarald Geyer }; 52c916eb95SHarald Geyer }; 53c916eb95SHarald Geyer 54c916eb95SHarald Geyer leds { 55c916eb95SHarald Geyer compatible = "gpio-leds"; 56c916eb95SHarald Geyer 57c916eb95SHarald Geyer capslock { 58c916eb95SHarald Geyer label = "teres-i:green:capslock"; 59c916eb95SHarald Geyer gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ 60c916eb95SHarald Geyer }; 61c916eb95SHarald Geyer 62c916eb95SHarald Geyer numlock { 63c916eb95SHarald Geyer label = "teres-i:green:numlock"; 64c916eb95SHarald Geyer gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */ 65c916eb95SHarald Geyer }; 66c916eb95SHarald Geyer }; 67c916eb95SHarald Geyer 68c916eb95SHarald Geyer reg_usb1_vbus: usb1-vbus { 69c916eb95SHarald Geyer compatible = "regulator-fixed"; 70c916eb95SHarald Geyer regulator-name = "usb1-vbus"; 71c916eb95SHarald Geyer regulator-min-microvolt = <5000000>; 72c916eb95SHarald Geyer regulator-max-microvolt = <5000000>; 73c916eb95SHarald Geyer enable-active-high; 74c916eb95SHarald Geyer gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ 75c916eb95SHarald Geyer status = "okay"; 76c916eb95SHarald Geyer }; 77c916eb95SHarald Geyer 78c916eb95SHarald Geyer wifi_pwrseq: wifi_pwrseq { 79c916eb95SHarald Geyer compatible = "mmc-pwrseq-simple"; 80c916eb95SHarald Geyer reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 81c916eb95SHarald Geyer }; 82439152aeSHarald Geyer 83439152aeSHarald Geyer speaker_amp: audio-amplifier { 84439152aeSHarald Geyer compatible = "simple-audio-amplifier"; 85439152aeSHarald Geyer enable-gpios = <&r_pio 0 12 GPIO_ACTIVE_HIGH>; /* PL12 */ 86439152aeSHarald Geyer sound-name-prefix = "Speaker Amp"; 87439152aeSHarald Geyer }; 88439152aeSHarald Geyer}; 89439152aeSHarald Geyer 90439152aeSHarald Geyer&codec { 91439152aeSHarald Geyer status = "okay"; 92439152aeSHarald Geyer}; 93439152aeSHarald Geyer 94439152aeSHarald Geyer&codec_analog { 95439152aeSHarald Geyer cpvdd-supply = <®_eldo1>; 96439152aeSHarald Geyer status = "okay"; 97439152aeSHarald Geyer}; 98439152aeSHarald Geyer 99439152aeSHarald Geyer&dai { 100439152aeSHarald Geyer status = "okay"; 101c916eb95SHarald Geyer}; 102c916eb95SHarald Geyer 10379bc02f1STorsten Duwe&de { 10479bc02f1STorsten Duwe status = "okay"; 10579bc02f1STorsten Duwe}; 10679bc02f1STorsten Duwe 107c916eb95SHarald Geyer&ehci1 { 108c916eb95SHarald Geyer status = "okay"; 109c916eb95SHarald Geyer}; 110c916eb95SHarald Geyer 111c916eb95SHarald Geyer 112c916eb95SHarald Geyer&i2c0 { 113c916eb95SHarald Geyer clock-frequency = <100000>; 114c916eb95SHarald Geyer status = "okay"; 11579bc02f1STorsten Duwe 11679bc02f1STorsten Duwe anx6345: anx6345@38 { 11779bc02f1STorsten Duwe compatible = "analogix,anx6345"; 11879bc02f1STorsten Duwe reg = <0x38>; 11979bc02f1STorsten Duwe reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ 12079bc02f1STorsten Duwe dvdd25-supply = <®_dldo2>; 12179bc02f1STorsten Duwe dvdd12-supply = <®_dldo3>; 12279bc02f1STorsten Duwe 12379bc02f1STorsten Duwe ports { 12479bc02f1STorsten Duwe #address-cells = <1>; 12579bc02f1STorsten Duwe #size-cells = <0>; 12679bc02f1STorsten Duwe 12779bc02f1STorsten Duwe port@0 { 12879bc02f1STorsten Duwe anx6345_in: endpoint { 12979bc02f1STorsten Duwe remote-endpoint = <&tcon0_out_anx6345>; 13079bc02f1STorsten Duwe }; 13179bc02f1STorsten Duwe }; 13279bc02f1STorsten Duwe }; 13379bc02f1STorsten Duwe }; 13479bc02f1STorsten Duwe}; 13579bc02f1STorsten Duwe 13679bc02f1STorsten Duwe&mixer0 { 13779bc02f1STorsten Duwe status = "okay"; 138c916eb95SHarald Geyer}; 139c916eb95SHarald Geyer 140c916eb95SHarald Geyer&mmc0 { 141c916eb95SHarald Geyer pinctrl-names = "default"; 142c916eb95SHarald Geyer pinctrl-0 = <&mmc0_pins>; 143c916eb95SHarald Geyer vmmc-supply = <®_dcdc1>; 144c916eb95SHarald Geyer cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 145c916eb95SHarald Geyer disable-wp; 146c916eb95SHarald Geyer bus-width = <4>; 147c916eb95SHarald Geyer status = "okay"; 148c916eb95SHarald Geyer}; 149c916eb95SHarald Geyer 150c916eb95SHarald Geyer&mmc1 { 151c916eb95SHarald Geyer pinctrl-names = "default"; 152c916eb95SHarald Geyer pinctrl-0 = <&mmc1_pins>; 153c916eb95SHarald Geyer vmmc-supply = <®_aldo2>; 154c916eb95SHarald Geyer vqmmc-supply = <®_dldo4>; 155c916eb95SHarald Geyer mmc-pwrseq = <&wifi_pwrseq>; 156c916eb95SHarald Geyer bus-width = <4>; 157c916eb95SHarald Geyer non-removable; 158c916eb95SHarald Geyer status = "okay"; 159c916eb95SHarald Geyer 160c916eb95SHarald Geyer rtl8723bs: wifi@1 { 161c916eb95SHarald Geyer reg = <1>; 162c916eb95SHarald Geyer interrupt-parent = <&r_pio>; 163c916eb95SHarald Geyer interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */ 164c916eb95SHarald Geyer interrupt-names = "host-wake"; 165c916eb95SHarald Geyer }; 166c916eb95SHarald Geyer}; 167c916eb95SHarald Geyer 168c916eb95SHarald Geyer&mmc2 { 169c916eb95SHarald Geyer pinctrl-names = "default"; 170c916eb95SHarald Geyer pinctrl-0 = <&mmc2_pins>; 171c916eb95SHarald Geyer vmmc-supply = <®_dcdc1>; 172c916eb95SHarald Geyer vqmmc-supply = <®_dcdc1>; 173c916eb95SHarald Geyer bus-width = <8>; 174c916eb95SHarald Geyer non-removable; 175c916eb95SHarald Geyer cap-mmc-hw-reset; 176c916eb95SHarald Geyer status = "okay"; 177c916eb95SHarald Geyer}; 178c916eb95SHarald Geyer 179c916eb95SHarald Geyer&ohci1 { 180c916eb95SHarald Geyer status = "okay"; 181c916eb95SHarald Geyer}; 182c916eb95SHarald Geyer 18324bd5d2cSHarald Geyer&pwm { 18424bd5d2cSHarald Geyer status = "okay"; 18524bd5d2cSHarald Geyer}; 18624bd5d2cSHarald Geyer 187c916eb95SHarald Geyer&r_rsb { 188c916eb95SHarald Geyer status = "okay"; 189c916eb95SHarald Geyer 190c916eb95SHarald Geyer axp803: pmic@3a3 { 191c916eb95SHarald Geyer compatible = "x-powers,axp803"; 192c916eb95SHarald Geyer reg = <0x3a3>; 193c916eb95SHarald Geyer interrupt-parent = <&r_intc>; 194c916eb95SHarald Geyer interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 195c916eb95SHarald Geyer wakeup-source; 196c916eb95SHarald Geyer }; 197c916eb95SHarald Geyer}; 198c916eb95SHarald Geyer 199c916eb95SHarald Geyer#include "axp803.dtsi" 200c916eb95SHarald Geyer 20125f6f54fSHarald Geyer&ac_power_supply { 20225f6f54fSHarald Geyer status = "okay"; 20325f6f54fSHarald Geyer}; 20425f6f54fSHarald Geyer 20525f6f54fSHarald Geyer&battery_power_supply { 20625f6f54fSHarald Geyer status = "okay"; 20725f6f54fSHarald Geyer}; 20825f6f54fSHarald Geyer 209c916eb95SHarald Geyer®_aldo1 { 210c916eb95SHarald Geyer regulator-always-on; 211c916eb95SHarald Geyer regulator-min-microvolt = <2800000>; 212c916eb95SHarald Geyer regulator-max-microvolt = <2800000>; 213c916eb95SHarald Geyer regulator-name = "vcc-pe"; 214c916eb95SHarald Geyer}; 215c916eb95SHarald Geyer 216c916eb95SHarald Geyer®_aldo2 { 217c916eb95SHarald Geyer regulator-always-on; 218c916eb95SHarald Geyer regulator-min-microvolt = <3300000>; 219c916eb95SHarald Geyer regulator-max-microvolt = <3300000>; 220c916eb95SHarald Geyer regulator-name = "vcc-pl"; 221c916eb95SHarald Geyer}; 222c916eb95SHarald Geyer 223c916eb95SHarald Geyer®_aldo3 { 224c916eb95SHarald Geyer regulator-always-on; 225c916eb95SHarald Geyer regulator-min-microvolt = <3000000>; 226c916eb95SHarald Geyer regulator-max-microvolt = <3000000>; 227c916eb95SHarald Geyer regulator-name = "vcc-pll-avcc"; 228c916eb95SHarald Geyer}; 229c916eb95SHarald Geyer 230c916eb95SHarald Geyer®_dcdc1 { 231c916eb95SHarald Geyer regulator-always-on; 232c916eb95SHarald Geyer regulator-min-microvolt = <3300000>; 233c916eb95SHarald Geyer regulator-max-microvolt = <3300000>; 234c916eb95SHarald Geyer regulator-name = "vcc-3v3"; 235c916eb95SHarald Geyer}; 236c916eb95SHarald Geyer 237c916eb95SHarald Geyer®_dcdc2 { 238c916eb95SHarald Geyer regulator-always-on; 239c916eb95SHarald Geyer regulator-min-microvolt = <1040000>; 240c916eb95SHarald Geyer regulator-max-microvolt = <1300000>; 241c916eb95SHarald Geyer regulator-name = "vdd-cpux"; 242c916eb95SHarald Geyer}; 243c916eb95SHarald Geyer 244c916eb95SHarald Geyer/* DCDC3 is polyphased with DCDC2 */ 245c916eb95SHarald Geyer 246c916eb95SHarald Geyer®_dcdc5 { 247c916eb95SHarald Geyer regulator-always-on; 248c916eb95SHarald Geyer regulator-min-microvolt = <1500000>; 249c916eb95SHarald Geyer regulator-max-microvolt = <1500000>; 250c916eb95SHarald Geyer regulator-name = "vcc-ddr3"; 251c916eb95SHarald Geyer}; 252c916eb95SHarald Geyer 253c916eb95SHarald Geyer®_dcdc6 { 254c916eb95SHarald Geyer regulator-always-on; 255c916eb95SHarald Geyer regulator-min-microvolt = <1100000>; 256c916eb95SHarald Geyer regulator-max-microvolt = <1100000>; 257c916eb95SHarald Geyer regulator-name = "vdd-sys"; 258c916eb95SHarald Geyer}; 259c916eb95SHarald Geyer 260c916eb95SHarald Geyer®_dldo1 { 261c916eb95SHarald Geyer regulator-min-microvolt = <3300000>; 262c916eb95SHarald Geyer regulator-max-microvolt = <3300000>; 263c916eb95SHarald Geyer regulator-name = "vcc-hdmi"; 264c916eb95SHarald Geyer}; 265c916eb95SHarald Geyer 266c916eb95SHarald Geyer®_dldo2 { 267c916eb95SHarald Geyer regulator-min-microvolt = <2500000>; 268c916eb95SHarald Geyer regulator-max-microvolt = <2500000>; 269c916eb95SHarald Geyer regulator-name = "vcc-pd"; 270c916eb95SHarald Geyer}; 271c916eb95SHarald Geyer 272c916eb95SHarald Geyer®_dldo3 { 273c916eb95SHarald Geyer regulator-min-microvolt = <1200000>; 274c916eb95SHarald Geyer regulator-max-microvolt = <1200000>; 275e4357c82SIcenowy Zheng regulator-name = "vdd-edp"; 276c916eb95SHarald Geyer}; 277c916eb95SHarald Geyer 278c916eb95SHarald Geyer®_dldo4 { 279c916eb95SHarald Geyer regulator-min-microvolt = <3300000>; 280c916eb95SHarald Geyer regulator-max-microvolt = <3300000>; 281c916eb95SHarald Geyer regulator-name = "vcc-wifi-io"; 282c916eb95SHarald Geyer}; 283c916eb95SHarald Geyer 284c916eb95SHarald Geyer®_eldo1 { 285c916eb95SHarald Geyer regulator-min-microvolt = <1800000>; 286c916eb95SHarald Geyer regulator-max-microvolt = <1800000>; 287c916eb95SHarald Geyer regulator-name = "cpvdd"; 288c916eb95SHarald Geyer}; 289c916eb95SHarald Geyer 290c916eb95SHarald Geyer®_eldo2 { 291c916eb95SHarald Geyer regulator-min-microvolt = <1800000>; 292c916eb95SHarald Geyer regulator-max-microvolt = <1800000>; 293c916eb95SHarald Geyer regulator-name = "vcc-dvdd-csi"; 294c916eb95SHarald Geyer}; 295c916eb95SHarald Geyer 296c916eb95SHarald Geyer®_fldo1 { 297c916eb95SHarald Geyer regulator-min-microvolt = <1200000>; 298c916eb95SHarald Geyer regulator-max-microvolt = <1200000>; 299c916eb95SHarald Geyer regulator-name = "vcc-1v2-hsic"; 300c916eb95SHarald Geyer}; 301c916eb95SHarald Geyer 302c916eb95SHarald Geyer/* 303062904f2SJonathan Neuschäfer * The A64 chip cannot work with this regulator off, although 304c916eb95SHarald Geyer * it seems to be only driving the AR100 core. 305c916eb95SHarald Geyer * Maybe we don't still know well about CPUs domain. 306c916eb95SHarald Geyer */ 307c916eb95SHarald Geyer®_fldo2 { 308c916eb95SHarald Geyer regulator-always-on; 309c916eb95SHarald Geyer regulator-min-microvolt = <1100000>; 310c916eb95SHarald Geyer regulator-max-microvolt = <1100000>; 311c916eb95SHarald Geyer regulator-name = "vdd-cpus"; 312c916eb95SHarald Geyer}; 313c916eb95SHarald Geyer 314c916eb95SHarald Geyer®_rtc_ldo { 315c916eb95SHarald Geyer regulator-name = "vcc-rtc"; 316c916eb95SHarald Geyer}; 317c916eb95SHarald Geyer 3185cbef9f9SIcenowy Zheng&simplefb_hdmi { 3195cbef9f9SIcenowy Zheng vcc-hdmi-supply = <®_dldo1>; 3205cbef9f9SIcenowy Zheng}; 3215cbef9f9SIcenowy Zheng 322439152aeSHarald Geyer&sound { 323439152aeSHarald Geyer simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; 324439152aeSHarald Geyer simple-audio-card,widgets = "Headphone", "Headphone Jack", 325439152aeSHarald Geyer "Microphone", "Headset Microphone", 326439152aeSHarald Geyer "Microphone", "Internal Microphone", 327439152aeSHarald Geyer "Speaker", "Internal Speaker"; 328439152aeSHarald Geyer simple-audio-card,routing = 329439152aeSHarald Geyer "Left DAC", "AIF1 Slot 0 Left", 330439152aeSHarald Geyer "Right DAC", "AIF1 Slot 0 Right", 331439152aeSHarald Geyer "AIF1 Slot 0 Left ADC", "Left ADC", 332439152aeSHarald Geyer "AIF1 Slot 0 Right ADC", "Right ADC", 333439152aeSHarald Geyer "Headphone Jack", "HP", 334439152aeSHarald Geyer "Speaker Amp INL", "LINEOUT", 335439152aeSHarald Geyer "Speaker Amp INR", "LINEOUT", 336439152aeSHarald Geyer "Internal Speaker", "Speaker Amp OUTL", 337439152aeSHarald Geyer "Internal Speaker", "Speaker Amp OUTR", 338439152aeSHarald Geyer "Internal Microphone", "MBIAS", 339439152aeSHarald Geyer "MIC1", "Internal Microphone", 340439152aeSHarald Geyer "Headset Microphone", "HBIAS", 341439152aeSHarald Geyer "MIC2", "Headset Microphone"; 342439152aeSHarald Geyer status = "okay"; 343439152aeSHarald Geyer}; 344439152aeSHarald Geyer 34579bc02f1STorsten Duwe&tcon0 { 34679bc02f1STorsten Duwe pinctrl-names = "default"; 34779bc02f1STorsten Duwe pinctrl-0 = <&lcd_rgb666_pins>; 34879bc02f1STorsten Duwe 34979bc02f1STorsten Duwe status = "okay"; 35079bc02f1STorsten Duwe}; 35179bc02f1STorsten Duwe 35279bc02f1STorsten Duwe&tcon0_out { 35379bc02f1STorsten Duwe tcon0_out_anx6345: endpoint@0 { 35479bc02f1STorsten Duwe reg = <0>; 35579bc02f1STorsten Duwe remote-endpoint = <&anx6345_in>; 35679bc02f1STorsten Duwe }; 35779bc02f1STorsten Duwe}; 35879bc02f1STorsten Duwe 359c916eb95SHarald Geyer&uart0 { 360c916eb95SHarald Geyer pinctrl-names = "default"; 361d91ebb95SChen-Yu Tsai pinctrl-0 = <&uart0_pb_pins>; 362c916eb95SHarald Geyer status = "okay"; 363c916eb95SHarald Geyer}; 364c916eb95SHarald Geyer 365c916eb95SHarald Geyer&usbphy { 366c916eb95SHarald Geyer usb1_vbus-supply = <®_usb1_vbus>; 367c916eb95SHarald Geyer status = "okay"; 368c916eb95SHarald Geyer}; 369