cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sun50i-a64-teres-i.dts (7478B)


      1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
      2// Copyright (C) Harald Geyer <harald@ccbib.org>
      3// based on sun50i-a64-olinuxino.dts by Jagan Teki <jteki@openedev.com>
      4
      5/dts-v1/;
      6
      7#include "sun50i-a64.dtsi"
      8#include "sun50i-a64-cpu-opp.dtsi"
      9
     10#include <dt-bindings/gpio/gpio.h>
     11#include <dt-bindings/input/input.h>
     12#include <dt-bindings/pwm/pwm.h>
     13
     14/ {
     15	model = "Olimex A64 Teres-I";
     16	compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
     17	chassis-type = "laptop";
     18
     19	aliases {
     20		serial0 = &uart0;
     21	};
     22
     23	backlight: backlight {
     24		compatible = "pwm-backlight";
     25		pwms = <&pwm 0 50000 0>;
     26		power-supply = <&reg_dcdc1>;
     27		brightness-levels = <0 5 7 10 14 20 28 40 56 80 112>;
     28		default-brightness-level = <5>;
     29		enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
     30	};
     31
     32	chosen {
     33		stdout-path = "serial0:115200n8";
     34
     35		framebuffer-lcd {
     36			eDP25-supply = <&reg_dldo2>;
     37			eDP12-supply = <&reg_dldo3>;
     38		};
     39	};
     40
     41	gpio-keys {
     42		compatible = "gpio-keys";
     43
     44		lid-switch {
     45			label = "Lid Switch";
     46			gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
     47			linux,input-type = <EV_SW>;
     48			linux,code = <SW_LID>;
     49			wakeup-source;
     50		};
     51	};
     52
     53	leds {
     54		compatible = "gpio-leds";
     55
     56		led-0 {
     57			label = "teres-i:green:capslock";
     58			gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */
     59		};
     60
     61		led-1 {
     62			label = "teres-i:green:numlock";
     63			gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
     64		};
     65	};
     66
     67	reg_usb1_vbus: usb1-vbus {
     68		compatible = "regulator-fixed";
     69		regulator-name = "usb1-vbus";
     70		regulator-min-microvolt = <5000000>;
     71		regulator-max-microvolt = <5000000>;
     72		enable-active-high;
     73		gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
     74		status = "okay";
     75	};
     76
     77	wifi_pwrseq: wifi_pwrseq {
     78		compatible = "mmc-pwrseq-simple";
     79		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
     80	};
     81
     82	speaker_amp: audio-amplifier {
     83		compatible = "simple-audio-amplifier";
     84		enable-gpios = <&r_pio 0 12 GPIO_ACTIVE_HIGH>; /* PL12 */
     85		sound-name-prefix = "Speaker Amp";
     86	};
     87};
     88
     89&codec {
     90	status = "okay";
     91};
     92
     93&codec_analog {
     94	cpvdd-supply = <&reg_eldo1>;
     95	status = "okay";
     96};
     97
     98&dai {
     99	status = "okay";
    100};
    101
    102&de {
    103	status = "okay";
    104};
    105
    106&cpu0 {
    107	cpu-supply = <&reg_dcdc2>;
    108};
    109
    110&cpu1 {
    111	cpu-supply = <&reg_dcdc2>;
    112};
    113
    114&cpu2 {
    115	cpu-supply = <&reg_dcdc2>;
    116};
    117
    118&cpu3 {
    119	cpu-supply = <&reg_dcdc2>;
    120};
    121
    122&ehci1 {
    123	status = "okay";
    124};
    125
    126
    127&i2c0 {
    128	clock-frequency = <100000>;
    129	status = "okay";
    130
    131	anx6345: anx6345@38 {
    132		compatible = "analogix,anx6345";
    133		reg = <0x38>;
    134		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
    135		dvdd25-supply = <&reg_dldo2>;
    136		dvdd12-supply = <&reg_dldo3>;
    137
    138		ports {
    139			#address-cells = <1>;
    140			#size-cells = <0>;
    141
    142			port@0 {
    143				reg = <0>;
    144
    145				anx6345_in: endpoint {
    146					remote-endpoint = <&tcon0_out_anx6345>;
    147				};
    148			};
    149		};
    150	};
    151};
    152
    153&mixer0 {
    154	status = "okay";
    155};
    156
    157&mmc0 {
    158	pinctrl-names = "default";
    159	pinctrl-0 = <&mmc0_pins>;
    160	vmmc-supply = <&reg_dcdc1>;
    161	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
    162	disable-wp;
    163	bus-width = <4>;
    164	status = "okay";
    165};
    166
    167&mmc1 {
    168	pinctrl-names = "default";
    169	pinctrl-0 = <&mmc1_pins>;
    170	vmmc-supply = <&reg_aldo2>;
    171	vqmmc-supply = <&reg_dldo4>;
    172	mmc-pwrseq = <&wifi_pwrseq>;
    173	bus-width = <4>;
    174	non-removable;
    175	status = "okay";
    176
    177	rtl8723bs: wifi@1 {
    178		reg = <1>;
    179		interrupt-parent = <&r_pio>;
    180		interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
    181		interrupt-names = "host-wake";
    182	};
    183};
    184
    185&mmc2 {
    186	pinctrl-names = "default";
    187	pinctrl-0 = <&mmc2_pins>;
    188	vmmc-supply = <&reg_dcdc1>;
    189	vqmmc-supply = <&reg_dcdc1>;
    190	bus-width = <8>;
    191	non-removable;
    192	cap-mmc-hw-reset;
    193	status = "okay";
    194};
    195
    196&ohci1 {
    197	status = "okay";
    198};
    199
    200&pio {
    201	vcc-pc-supply = <&reg_dcdc1>;
    202	vcc-pd-supply = <&reg_dldo2>;
    203	vcc-pe-supply = <&reg_aldo1>;
    204	vcc-pf-supply = <&reg_dcdc1>;  /* No dedicated supply-pin for this */
    205	vcc-pg-supply = <&reg_aldo2>;
    206};
    207
    208&pwm {
    209	status = "okay";
    210};
    211
    212&r_rsb {
    213	status = "okay";
    214
    215	axp803: pmic@3a3 {
    216		compatible = "x-powers,axp803";
    217		reg = <0x3a3>;
    218		interrupt-parent = <&r_intc>;
    219		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
    220	};
    221};
    222
    223#include "axp803.dtsi"
    224
    225&ac_power_supply {
    226	status = "okay";
    227};
    228
    229&battery_power_supply {
    230	status = "okay";
    231};
    232
    233&reg_aldo1 {
    234	regulator-always-on;
    235	regulator-min-microvolt = <2800000>;
    236	regulator-max-microvolt = <2800000>;
    237	regulator-name = "vcc-pe";
    238};
    239
    240&reg_aldo2 {
    241	regulator-always-on;
    242	regulator-min-microvolt = <3300000>;
    243	regulator-max-microvolt = <3300000>;
    244	regulator-name = "vcc-pl";
    245};
    246
    247&reg_aldo3 {
    248	regulator-always-on;
    249	regulator-min-microvolt = <3000000>;
    250	regulator-max-microvolt = <3000000>;
    251	regulator-name = "vcc-pll-avcc";
    252};
    253
    254&reg_dcdc1 {
    255	regulator-always-on;
    256	regulator-min-microvolt = <3300000>;
    257	regulator-max-microvolt = <3300000>;
    258	regulator-name = "vcc-3v3";
    259};
    260
    261&reg_dcdc2 {
    262	regulator-always-on;
    263	regulator-min-microvolt = <1040000>;
    264	regulator-max-microvolt = <1300000>;
    265	regulator-name = "vdd-cpux";
    266};
    267
    268/* DCDC3 is polyphased with DCDC2 */
    269
    270&reg_dcdc5 {
    271	regulator-always-on;
    272	regulator-min-microvolt = <1500000>;
    273	regulator-max-microvolt = <1500000>;
    274	regulator-name = "vcc-ddr3";
    275};
    276
    277&reg_dcdc6 {
    278	regulator-always-on;
    279	regulator-min-microvolt = <1100000>;
    280	regulator-max-microvolt = <1100000>;
    281	regulator-name = "vdd-sys";
    282};
    283
    284&reg_dldo1 {
    285	regulator-min-microvolt = <3300000>;
    286	regulator-max-microvolt = <3300000>;
    287	regulator-name = "vcc-hdmi";
    288};
    289
    290&reg_dldo2 {
    291	regulator-min-microvolt = <2500000>;
    292	regulator-max-microvolt = <2500000>;
    293	regulator-name = "vcc-pd";
    294};
    295
    296&reg_dldo3 {
    297	regulator-min-microvolt = <1200000>;
    298	regulator-max-microvolt = <1200000>;
    299	regulator-name = "vdd-edp";
    300};
    301
    302&reg_dldo4 {
    303	regulator-min-microvolt = <3300000>;
    304	regulator-max-microvolt = <3300000>;
    305	regulator-name = "vcc-wifi-io";
    306};
    307
    308&reg_eldo1 {
    309	regulator-min-microvolt = <1800000>;
    310	regulator-max-microvolt = <1800000>;
    311	regulator-name = "cpvdd";
    312};
    313
    314&reg_eldo2 {
    315	regulator-min-microvolt = <1800000>;
    316	regulator-max-microvolt = <1800000>;
    317	regulator-name = "vcc-dvdd-csi";
    318};
    319
    320&reg_fldo1 {
    321	regulator-min-microvolt = <1200000>;
    322	regulator-max-microvolt = <1200000>;
    323	regulator-name = "vcc-1v2-hsic";
    324};
    325
    326/*
    327 * The A64 chip cannot work with this regulator off, although
    328 * it seems to be only driving the AR100 core.
    329 * Maybe we don't still know well about CPUs domain.
    330 */
    331&reg_fldo2 {
    332	regulator-always-on;
    333	regulator-min-microvolt = <1100000>;
    334	regulator-max-microvolt = <1100000>;
    335	regulator-name = "vdd-cpus";
    336};
    337
    338&reg_rtc_ldo {
    339	regulator-name = "vcc-rtc";
    340};
    341
    342&simplefb_hdmi {
    343	vcc-hdmi-supply = <&reg_dldo1>;
    344};
    345
    346&sound {
    347	simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
    348	simple-audio-card,widgets = "Headphone", "Headphone Jack",
    349				    "Microphone", "Headset Microphone",
    350				    "Microphone", "Internal Microphone",
    351				    "Speaker", "Internal Speaker";
    352	simple-audio-card,routing =
    353			"Left DAC", "DACL",
    354			"Right DAC", "DACR",
    355			"ADCL", "Left ADC",
    356			"ADCR", "Right ADC",
    357			"Headphone Jack", "HP",
    358			"Speaker Amp INL", "LINEOUT",
    359			"Speaker Amp INR", "LINEOUT",
    360			"Internal Speaker", "Speaker Amp OUTL",
    361			"Internal Speaker", "Speaker Amp OUTR",
    362			"Internal Microphone", "MBIAS",
    363			"MIC1", "Internal Microphone",
    364			"Headset Microphone", "HBIAS",
    365			"MIC2", "Headset Microphone";
    366	status = "okay";
    367};
    368
    369&tcon0 {
    370	pinctrl-names = "default";
    371	pinctrl-0 = <&lcd_rgb666_pins>;
    372
    373	status = "okay";
    374};
    375
    376&tcon0_out {
    377	tcon0_out_anx6345: endpoint@0 {
    378		reg = <0>;
    379		remote-endpoint = <&anx6345_in>;
    380	};
    381};
    382
    383&uart0 {
    384	pinctrl-names = "default";
    385	pinctrl-0 = <&uart0_pb_pins>;
    386	status = "okay";
    387};
    388
    389&usbphy {
    390	usb1_vbus-supply = <&reg_usb1_vbus>;
    391	status = "okay";
    392};