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-pinebook.dts (7819B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2// Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
      3// Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.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/gpio-keys.h>
     12#include <dt-bindings/input/input.h>
     13#include <dt-bindings/pwm/pwm.h>
     14
     15/ {
     16	model = "Pinebook";
     17	compatible = "pine64,pinebook", "allwinner,sun50i-a64";
     18	chassis-type = "laptop";
     19
     20	aliases {
     21		serial0 = &uart0;
     22		ethernet0 = &rtl8723cs;
     23	};
     24
     25	backlight: backlight {
     26		compatible = "pwm-backlight";
     27		pwms = <&pwm 0 50000 0>;
     28		brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
     29		default-brightness-level = <2>;
     30		enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
     31		power-supply = <&reg_vbklt>;
     32	};
     33
     34	chosen {
     35		stdout-path = "serial0:115200n8";
     36	};
     37
     38	gpio_keys {
     39		compatible = "gpio-keys";
     40
     41		lid_switch {
     42			label = "Lid Switch";
     43			gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
     44			linux,input-type = <EV_SW>;
     45			linux,code = <SW_LID>;
     46			linux,can-disable;
     47			wakeup-source;
     48			wakeup-event-action = <EV_ACT_DEASSERTED>;
     49		};
     50	};
     51
     52	panel_edp: panel-edp {
     53		compatible = "neweast,wjfh116008a";
     54		backlight = <&backlight>;
     55		power-supply = <&reg_dc1sw>;
     56
     57		port {
     58			panel_edp_in: endpoint {
     59				remote-endpoint = <&anx6345_out_edp>;
     60			};
     61		};
     62	};
     63
     64	reg_vbklt: vbklt {
     65		compatible = "regulator-fixed";
     66		regulator-name = "vbklt";
     67		regulator-min-microvolt = <18000000>;
     68		regulator-max-microvolt = <18000000>;
     69		gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
     70		enable-active-high;
     71	};
     72
     73	reg_vcc5v0: vcc5v0 {
     74		compatible = "regulator-fixed";
     75		regulator-name = "vcc5v0";
     76		regulator-min-microvolt = <5000000>;
     77		regulator-max-microvolt = <5000000>;
     78		gpio = <&axp_gpio 0 GPIO_ACTIVE_HIGH>;
     79		enable-active-high;
     80	};
     81
     82	wifi_pwrseq: wifi_pwrseq {
     83		compatible = "mmc-pwrseq-simple";
     84		reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
     85	};
     86
     87	speaker_amp: audio-amplifier {
     88		compatible = "simple-audio-amplifier";
     89		VCC-supply = <&reg_vcc5v0>;
     90		enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
     91		sound-name-prefix = "Speaker Amp";
     92	};
     93
     94};
     95
     96&codec {
     97	status = "okay";
     98};
     99
    100&codec_analog {
    101	cpvdd-supply = <&reg_eldo1>;
    102	status = "okay";
    103};
    104
    105&cpu0 {
    106	cpu-supply = <&reg_dcdc2>;
    107};
    108
    109&cpu1 {
    110	cpu-supply = <&reg_dcdc2>;
    111};
    112
    113&cpu2 {
    114	cpu-supply = <&reg_dcdc2>;
    115};
    116
    117&cpu3 {
    118	cpu-supply = <&reg_dcdc2>;
    119};
    120
    121&dai {
    122	status = "okay";
    123};
    124
    125&de {
    126	status = "okay";
    127};
    128
    129&ehci0 {
    130	status = "okay";
    131};
    132
    133&ehci1 {
    134	status = "okay";
    135};
    136
    137&mixer0 {
    138	status = "okay";
    139};
    140
    141&mmc0 {
    142	pinctrl-names = "default";
    143	pinctrl-0 = <&mmc0_pins>;
    144	vmmc-supply = <&reg_dcdc1>;
    145	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
    146	disable-wp;
    147	bus-width = <4>;
    148	status = "okay";
    149};
    150
    151&mmc1 {
    152	pinctrl-names = "default";
    153	pinctrl-0 = <&mmc1_pins>;
    154	vmmc-supply = <&reg_dldo4>;
    155	vqmmc-supply = <&reg_eldo1>;
    156	mmc-pwrseq = <&wifi_pwrseq>;
    157	bus-width = <4>;
    158	non-removable;
    159	status = "okay";
    160
    161	rtl8723cs: wifi@1 {
    162		reg = <1>;
    163	};
    164};
    165
    166&mmc2 {
    167	pinctrl-names = "default";
    168	pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
    169	vmmc-supply = <&reg_dcdc1>;
    170	vqmmc-supply = <&reg_eldo1>;
    171	max-frequency = <200000000>;
    172	bus-width = <8>;
    173	non-removable;
    174	cap-mmc-hw-reset;
    175	mmc-hs200-1_8v;
    176	status = "okay";
    177};
    178
    179&ohci0 {
    180	status = "okay";
    181};
    182
    183&ohci1 {
    184	status = "okay";
    185};
    186
    187&pio {
    188	vcc-pc-supply = <&reg_eldo1>;
    189	vcc-pd-supply = <&reg_dcdc1>;
    190	vcc-pe-supply = <&reg_aldo1>;
    191	vcc-pg-supply = <&reg_eldo1>;
    192};
    193
    194&pwm {
    195	status = "okay";
    196};
    197
    198&r_i2c {
    199	clock-frequency = <100000>;
    200	pinctrl-names = "default";
    201	pinctrl-0 = <&r_i2c_pl89_pins>;
    202	status = "okay";
    203
    204	anx6345: anx6345@38 {
    205		compatible = "analogix,anx6345";
    206		reg = <0x38>;
    207		reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
    208		dvdd25-supply = <&reg_dldo2>;
    209		dvdd12-supply = <&reg_fldo1>;
    210
    211		ports {
    212			#address-cells = <1>;
    213			#size-cells = <0>;
    214
    215			anx6345_in: port@0 {
    216				reg = <0>;
    217				anx6345_in_tcon0: endpoint {
    218					remote-endpoint = <&tcon0_out_anx6345>;
    219				};
    220			};
    221
    222			anx6345_out: port@1 {
    223				reg = <1>;
    224				anx6345_out_edp: endpoint {
    225					remote-endpoint = <&panel_edp_in>;
    226				};
    227			};
    228		};
    229	};
    230};
    231
    232&r_pio {
    233	/*
    234	 * FIXME: We can't add that supply for now since it would
    235	 * create a circular dependency between pinctrl, the regulator
    236	 * and the RSB Bus.
    237	 *
    238	 * vcc-pl-supply = <&reg_aldo2>;
    239	 */
    240};
    241
    242&r_rsb {
    243	status = "okay";
    244
    245	axp803: pmic@3a3 {
    246		compatible = "x-powers,axp803";
    247		reg = <0x3a3>;
    248		interrupt-parent = <&r_intc>;
    249		interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
    250	};
    251};
    252
    253#include "axp803.dtsi"
    254
    255&ac_power_supply {
    256	status = "okay";
    257};
    258
    259&battery_power_supply {
    260	status = "okay";
    261};
    262
    263&reg_aldo1 {
    264	regulator-name = "vcc-pe";
    265};
    266
    267&reg_aldo2 {
    268	regulator-always-on;
    269	regulator-min-microvolt = <1800000>;
    270	regulator-max-microvolt = <3300000>;
    271	regulator-name = "vcc-pl";
    272};
    273
    274&reg_aldo3 {
    275	regulator-always-on;
    276	regulator-min-microvolt = <2700000>;
    277	regulator-max-microvolt = <3300000>;
    278	regulator-name = "vcc-pll-avcc";
    279};
    280
    281&reg_dc1sw {
    282	regulator-name = "vcc-lcd";
    283};
    284
    285&reg_dcdc1 {
    286	regulator-always-on;
    287	regulator-min-microvolt = <3300000>;
    288	regulator-max-microvolt = <3300000>;
    289	regulator-name = "vcc-3v3";
    290};
    291
    292&reg_dcdc2 {
    293	regulator-always-on;
    294	regulator-min-microvolt = <1000000>;
    295	regulator-max-microvolt = <1300000>;
    296	regulator-name = "vdd-cpux";
    297};
    298
    299/* DCDC3 is polyphased with DCDC2 */
    300
    301&reg_dcdc5 {
    302	regulator-always-on;
    303	regulator-min-microvolt = <1200000>;
    304	regulator-max-microvolt = <1200000>;
    305	regulator-name = "vcc-dram";
    306};
    307
    308&reg_dcdc6 {
    309	regulator-always-on;
    310	regulator-min-microvolt = <1100000>;
    311	regulator-max-microvolt = <1100000>;
    312	regulator-name = "vdd-sys";
    313};
    314
    315&reg_dldo1 {
    316	regulator-min-microvolt = <3300000>;
    317	regulator-max-microvolt = <3300000>;
    318	regulator-name = "vcc-hdmi";
    319};
    320
    321&reg_dldo2 {
    322	regulator-min-microvolt = <2500000>;
    323	regulator-max-microvolt = <2500000>;
    324	regulator-name = "vcc-edp";
    325};
    326
    327&reg_dldo4 {
    328	regulator-min-microvolt = <3300000>;
    329	regulator-max-microvolt = <3300000>;
    330	regulator-name = "vcc-wifi";
    331};
    332
    333&reg_eldo1 {
    334	regulator-always-on;
    335	regulator-min-microvolt = <1800000>;
    336	regulator-max-microvolt = <1800000>;
    337	regulator-name = "cpvdd";
    338};
    339
    340&reg_fldo1 {
    341	regulator-min-microvolt = <1200000>;
    342	regulator-max-microvolt = <1200000>;
    343	regulator-name = "vcc-1v2-hsic";
    344};
    345
    346&reg_fldo2 {
    347	regulator-always-on;
    348	regulator-min-microvolt = <1100000>;
    349	regulator-max-microvolt = <1100000>;
    350	regulator-name = "vdd-cpus";
    351};
    352
    353&reg_rtc_ldo {
    354	regulator-name = "vcc-rtc";
    355};
    356
    357&simplefb_lcd {
    358	panel-supply = <&reg_dc1sw>;
    359	dvdd25-supply = <&reg_dldo2>;
    360	dvdd12-supply = <&reg_fldo1>;
    361};
    362
    363&simplefb_hdmi {
    364	vcc-hdmi-supply = <&reg_dldo1>;
    365};
    366
    367&sound {
    368	status = "okay";
    369	simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
    370	simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
    371				    "Microphone", "Internal Microphone Right",
    372				    "Headphone", "Headphone Jack",
    373				    "Speaker", "Internal Speaker";
    374	simple-audio-card,routing =
    375			"Left DAC", "DACL",
    376			"Right DAC", "DACR",
    377			"Speaker Amp INL", "LINEOUT",
    378			"Speaker Amp INR", "LINEOUT",
    379			"Internal Speaker", "Speaker Amp OUTL",
    380			"Internal Speaker", "Speaker Amp OUTR",
    381			"Headphone Jack", "HP",
    382			"ADCL", "Left ADC",
    383			"ADCR", "Right ADC",
    384			"Internal Microphone Left", "MBIAS",
    385			"MIC1", "Internal Microphone Left",
    386			"Internal Microphone Right", "HBIAS",
    387			"MIC2", "Internal Microphone Right";
    388};
    389
    390&tcon0 {
    391	pinctrl-names = "default";
    392	pinctrl-0 = <&lcd_rgb666_pins>;
    393
    394	status = "okay";
    395};
    396
    397&tcon0_out {
    398	tcon0_out_anx6345: endpoint {
    399		remote-endpoint = <&anx6345_in_tcon0>;
    400	};
    401};
    402
    403&uart0 {
    404	pinctrl-names = "default";
    405	pinctrl-0 = <&uart0_pb_pins>;
    406	status = "okay";
    407};
    408
    409&usb_otg {
    410	dr_mode = "host";
    411};
    412
    413&usbphy {
    414	usb0_vbus-supply = <&reg_vcc5v0>;
    415	usb1_vbus-supply = <&reg_vcc5v0>;
    416	status = "okay";
    417};