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

meson-g12a-x96-max.dts (9282B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Copyright (c) 2018 BayLibre SAS. All rights reserved.
      4 */
      5
      6/dts-v1/;
      7
      8#include "meson-g12a.dtsi"
      9#include <dt-bindings/gpio/gpio.h>
     10#include <dt-bindings/gpio/meson-g12a-gpio.h>
     11#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
     12
     13/ {
     14	compatible = "amediatech,x96-max", "amlogic,g12a";
     15	model = "Shenzhen Amediatech Technology Co., Ltd X96 Max";
     16
     17	aliases {
     18		serial0 = &uart_AO;
     19		ethernet0 = &ethmac;
     20	};
     21
     22	spdif_dit: audio-codec-1 {
     23		#sound-dai-cells = <0>;
     24		compatible = "linux,spdif-dit";
     25		status = "okay";
     26		sound-name-prefix = "DIT";
     27	};
     28
     29	chosen {
     30		stdout-path = "serial0:115200n8";
     31	};
     32	memory@0 {
     33		device_type = "memory";
     34		reg = <0x0 0x0 0x0 0x40000000>;
     35	};
     36
     37	cvbs-connector {
     38		compatible = "composite-video-connector";
     39
     40		port {
     41			cvbs_connector_in: endpoint {
     42				remote-endpoint = <&cvbs_vdac_out>;
     43			};
     44		};
     45	};
     46
     47	hdmi-connector {
     48		compatible = "hdmi-connector";
     49		type = "a";
     50
     51		port {
     52			hdmi_connector_in: endpoint {
     53				remote-endpoint = <&hdmi_tx_tmds_out>;
     54			};
     55		};
     56	};
     57
     58	emmc_pwrseq: emmc-pwrseq {
     59		compatible = "mmc-pwrseq-emmc";
     60		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
     61	};
     62
     63	sdio_pwrseq: sdio-pwrseq {
     64		compatible = "mmc-pwrseq-simple";
     65		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
     66		clocks = <&wifi32k>;
     67		clock-names = "ext_clock";
     68	};
     69
     70	flash_1v8: regulator-flash_1v8 {
     71		compatible = "regulator-fixed";
     72		regulator-name = "FLASH_1V8";
     73		regulator-min-microvolt = <1800000>;
     74		regulator-max-microvolt = <1800000>;
     75		vin-supply = <&vcc_3v3>;
     76		regulator-always-on;
     77	};
     78
     79	dc_in: regulator-dc_in {
     80		compatible = "regulator-fixed";
     81		regulator-name = "DC_IN";
     82		regulator-min-microvolt = <5000000>;
     83		regulator-max-microvolt = <5000000>;
     84		regulator-always-on;
     85	};
     86
     87	vcc_1v8: regulator-vcc_1v8 {
     88		compatible = "regulator-fixed";
     89		regulator-name = "VCC_1V8";
     90		regulator-min-microvolt = <1800000>;
     91		regulator-max-microvolt = <1800000>;
     92		vin-supply = <&vcc_3v3>;
     93		regulator-always-on;
     94	};
     95
     96	vcc_3v3: regulator-vcc_3v3 {
     97		compatible = "regulator-fixed";
     98		regulator-name = "VCC_3V3";
     99		regulator-min-microvolt = <3300000>;
    100		regulator-max-microvolt = <3300000>;
    101		vin-supply = <&vddao_3v3>;
    102		regulator-always-on;
    103		/* FIXME: actually controlled by VDDCPU_B_EN */
    104	};
    105
    106	vcc_5v: regulator-vcc_5v {
    107		compatible = "regulator-fixed";
    108		regulator-name = "VCC_5V";
    109		regulator-min-microvolt = <5000000>;
    110		regulator-max-microvolt = <5000000>;
    111		vin-supply = <&dc_in>;
    112
    113		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
    114		enable-active-low;
    115	};
    116
    117	vddao_1v8: regulator-vddao_1v8 {
    118		compatible = "regulator-fixed";
    119		regulator-name = "VDDAO_1V8";
    120		regulator-min-microvolt = <1800000>;
    121		regulator-max-microvolt = <1800000>;
    122		vin-supply = <&vddao_3v3>;
    123		regulator-always-on;
    124	};
    125
    126	vddao_3v3: regulator-vddao_3v3 {
    127		compatible = "regulator-fixed";
    128		regulator-name = "VDDAO_3V3";
    129		regulator-min-microvolt = <3300000>;
    130		regulator-max-microvolt = <3300000>;
    131		vin-supply = <&dc_in>;
    132		regulator-always-on;
    133	};
    134
    135	vddcpu: regulator-vddcpu {
    136		compatible = "pwm-regulator";
    137
    138		regulator-name = "VDDCPU";
    139		regulator-min-microvolt = <721000>;
    140		regulator-max-microvolt = <1022000>;
    141
    142		pwm-supply = <&dc_in>;
    143
    144		pwms = <&pwm_AO_cd 1 1250 0>;
    145		pwm-dutycycle-range = <100 0>;
    146
    147		regulator-boot-on;
    148		regulator-always-on;
    149	};
    150
    151	sound {
    152		compatible = "amlogic,axg-sound-card";
    153		model = "X96-MAX";
    154		audio-aux-devs = <&tdmout_b>;
    155		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
    156				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
    157				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
    158				"TDM_B Playback", "TDMOUT_B OUT",
    159				"SPDIFOUT IN 0", "FRDDR_A OUT 3",
    160				"SPDIFOUT IN 1", "FRDDR_B OUT 3",
    161				"SPDIFOUT IN 2", "FRDDR_C OUT 3";
    162
    163		assigned-clocks = <&clkc CLKID_MPLL2>,
    164				  <&clkc CLKID_MPLL0>,
    165				  <&clkc CLKID_MPLL1>;
    166		assigned-clock-parents = <0>, <0>, <0>;
    167		assigned-clock-rates = <294912000>,
    168				       <270950400>,
    169				       <393216000>;
    170		status = "okay";
    171
    172		dai-link-0 {
    173			sound-dai = <&frddr_a>;
    174		};
    175
    176		dai-link-1 {
    177			sound-dai = <&frddr_b>;
    178		};
    179
    180		dai-link-2 {
    181			sound-dai = <&frddr_c>;
    182		};
    183
    184		/* 8ch hdmi interface */
    185		dai-link-3 {
    186			sound-dai = <&tdmif_b>;
    187			dai-format = "i2s";
    188			dai-tdm-slot-tx-mask-0 = <1 1>;
    189			dai-tdm-slot-tx-mask-1 = <1 1>;
    190			dai-tdm-slot-tx-mask-2 = <1 1>;
    191			dai-tdm-slot-tx-mask-3 = <1 1>;
    192			mclk-fs = <256>;
    193
    194			codec {
    195				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
    196			};
    197		};
    198
    199		/* spdif hdmi or toslink interface */
    200		dai-link-4 {
    201			sound-dai = <&spdifout>;
    202
    203			codec-0 {
    204				sound-dai = <&spdif_dit>;
    205			};
    206
    207			codec-1 {
    208				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
    209			};
    210		};
    211
    212		/* spdif hdmi interface */
    213		dai-link-5 {
    214			sound-dai = <&spdifout_b>;
    215
    216			codec {
    217				sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
    218			};
    219		};
    220
    221		/* hdmi glue */
    222		dai-link-6 {
    223			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
    224
    225			codec {
    226				sound-dai = <&hdmi_tx>;
    227			};
    228		};
    229	};
    230
    231	wifi32k: wifi32k {
    232		compatible = "pwm-clock";
    233		#clock-cells = <0>;
    234		clock-frequency = <32768>;
    235		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
    236	};
    237};
    238
    239&arb {
    240	status = "okay";
    241};
    242
    243&cec_AO {
    244	pinctrl-0 = <&cec_ao_a_h_pins>;
    245	pinctrl-names = "default";
    246	status = "disabled";
    247	hdmi-phandle = <&hdmi_tx>;
    248};
    249
    250&cecb_AO {
    251	pinctrl-0 = <&cec_ao_b_h_pins>;
    252	pinctrl-names = "default";
    253	status = "okay";
    254	hdmi-phandle = <&hdmi_tx>;
    255};
    256
    257&clkc_audio {
    258	status = "okay";
    259};
    260
    261&cpu0 {
    262	cpu-supply = <&vddcpu>;
    263	operating-points-v2 = <&cpu_opp_table>;
    264	clocks = <&clkc CLKID_CPU_CLK>;
    265	clock-latency = <50000>;
    266};
    267
    268&cpu1 {
    269	cpu-supply = <&vddcpu>;
    270	operating-points-v2 = <&cpu_opp_table>;
    271	clocks = <&clkc CLKID_CPU_CLK>;
    272	clock-latency = <50000>;
    273};
    274
    275&cpu2 {
    276	cpu-supply = <&vddcpu>;
    277	operating-points-v2 = <&cpu_opp_table>;
    278	clocks = <&clkc CLKID_CPU_CLK>;
    279	clock-latency = <50000>;
    280};
    281
    282&cpu3 {
    283	cpu-supply = <&vddcpu>;
    284	operating-points-v2 = <&cpu_opp_table>;
    285	clocks = <&clkc CLKID_CPU_CLK>;
    286	clock-latency = <50000>;
    287};
    288
    289&cvbs_vdac_port {
    290	cvbs_vdac_out: endpoint {
    291		remote-endpoint = <&cvbs_connector_in>;
    292	};
    293};
    294
    295&frddr_a {
    296	status = "okay";
    297};
    298
    299&frddr_b {
    300	status = "okay";
    301};
    302
    303&frddr_c {
    304	status = "okay";
    305};
    306
    307&hdmi_tx {
    308	status = "okay";
    309	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
    310	pinctrl-names = "default";
    311	hdmi-supply = <&vcc_5v>;
    312};
    313
    314&hdmi_tx_tmds_port {
    315	hdmi_tx_tmds_out: endpoint {
    316		remote-endpoint = <&hdmi_connector_in>;
    317	};
    318};
    319
    320&ir {
    321	status = "okay";
    322	pinctrl-0 = <&remote_input_ao_pins>;
    323	pinctrl-names = "default";
    324	linux,rc-map-name = "rc-x96max";
    325};
    326
    327&pwm_AO_cd {
    328	pinctrl-0 = <&pwm_ao_d_e_pins>;
    329	pinctrl-names = "default";
    330	clocks = <&xtal>;
    331	clock-names = "clkin1";
    332	status = "okay";
    333};
    334
    335&ext_mdio {
    336	external_phy: ethernet-phy@0 {
    337		/* Realtek RTL8211F (0x001cc916) */
    338		reg = <0>;
    339		max-speed = <1000>;
    340		eee-broken-1000t;
    341
    342		reset-assert-us = <10000>;
    343		reset-deassert-us = <80000>;
    344		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
    345
    346		interrupt-parent = <&gpio_intc>;
    347		/* MAC_INTR on GPIOZ_14 */
    348		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
    349	};
    350};
    351
    352&ethmac {
    353	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
    354	pinctrl-names = "default";
    355	status = "okay";
    356	phy-mode = "rgmii";
    357	phy-handle = <&external_phy>;
    358	amlogic,tx-delay-ns = <2>;
    359};
    360
    361&pwm_ef {
    362	status = "okay";
    363	pinctrl-0 = <&pwm_e_pins>;
    364	pinctrl-names = "default";
    365	clocks = <&xtal>;
    366	clock-names = "clkin0";
    367};
    368
    369&uart_A {
    370	status = "okay";
    371	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
    372	pinctrl-names = "default";
    373	uart-has-rtscts;
    374
    375	bluetooth {
    376		compatible = "brcm,bcm43438-bt";
    377		shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
    378		max-speed = <2000000>;
    379		clocks = <&wifi32k>;
    380		clock-names = "lpo";
    381	};
    382};
    383
    384&uart_AO {
    385	status = "okay";
    386	pinctrl-0 = <&uart_ao_a_pins>;
    387	pinctrl-names = "default";
    388};
    389
    390&usb {
    391	status = "okay";
    392	dr_mode = "host";
    393};
    394
    395/* SDIO */
    396&sd_emmc_a {
    397	status = "okay";
    398	pinctrl-0 = <&sdio_pins>;
    399	pinctrl-1 = <&sdio_clk_gate_pins>;
    400	pinctrl-names = "default", "clk-gate";
    401	#address-cells = <1>;
    402	#size-cells = <0>;
    403
    404	bus-width = <4>;
    405	cap-sd-highspeed;
    406	sd-uhs-sdr50;
    407	max-frequency = <100000000>;
    408
    409	non-removable;
    410	disable-wp;
    411
    412	/* WiFi firmware requires power to be kept while in suspend */
    413	keep-power-in-suspend;
    414
    415	mmc-pwrseq = <&sdio_pwrseq>;
    416
    417	vmmc-supply = <&vddao_3v3>;
    418	vqmmc-supply = <&vddao_1v8>;
    419
    420	brcmf: wifi@1 {
    421		reg = <1>;
    422		compatible = "brcm,bcm4329-fmac";
    423	};
    424};
    425
    426/* SD card */
    427&sd_emmc_b {
    428	status = "okay";
    429	pinctrl-0 = <&sdcard_c_pins>;
    430	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
    431	pinctrl-names = "default", "clk-gate";
    432
    433	bus-width = <4>;
    434	cap-sd-highspeed;
    435	max-frequency = <100000000>;
    436	disable-wp;
    437
    438	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
    439	vmmc-supply = <&vddao_3v3>;
    440	vqmmc-supply = <&vddao_3v3>;
    441};
    442
    443/* eMMC */
    444&sd_emmc_c {
    445	status = "okay";
    446	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
    447	pinctrl-1 = <&emmc_clk_gate_pins>;
    448	pinctrl-names = "default", "clk-gate";
    449
    450	bus-width = <8>;
    451	cap-mmc-highspeed;
    452	max-frequency = <100000000>;
    453	non-removable;
    454	disable-wp;
    455
    456	mmc-pwrseq = <&emmc_pwrseq>;
    457	vmmc-supply = <&vcc_3v3>;
    458	vqmmc-supply = <&flash_1v8>;
    459};
    460
    461&spdifout {
    462	pinctrl-0 = <&spdif_out_h_pins>;
    463	pinctrl-names = "default";
    464	status = "okay";
    465};
    466
    467&spdifout_b {
    468	status = "okay";
    469};
    470
    471&tdmif_b {
    472	status = "okay";
    473};
    474
    475&tdmout_b {
    476	status = "okay";
    477};
    478
    479&tohdmitx {
    480	status = "okay";
    481};