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-sm1-odroid.dtsi (9299B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
      4 */
      5
      6#include "meson-sm1.dtsi"
      7#include <dt-bindings/gpio/meson-g12a-gpio.h>
      8#include <dt-bindings/leds/common.h>
      9#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
     10
     11/ {
     12	aliases {
     13		serial0 = &uart_AO;
     14		ethernet0 = &ethmac;
     15	};
     16
     17	chosen {
     18		stdout-path = "serial0:115200n8";
     19	};
     20
     21	memory@0 {
     22		device_type = "memory";
     23		reg = <0x0 0x0 0x0 0x40000000>;
     24	};
     25
     26	emmc_pwrseq: emmc-pwrseq {
     27		compatible = "mmc-pwrseq-emmc";
     28		reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
     29	};
     30
     31	tflash_vdd: regulator-tflash_vdd {
     32		compatible = "regulator-fixed";
     33
     34		regulator-name = "TFLASH_VDD";
     35		regulator-min-microvolt = <3300000>;
     36		regulator-max-microvolt = <3300000>;
     37
     38		gpio = <&gpio_ao GPIOAO_3 GPIO_OPEN_DRAIN>;
     39		enable-active-high;
     40		regulator-always-on;
     41	};
     42
     43	tf_io: gpio-regulator-tf_io {
     44		compatible = "regulator-gpio";
     45
     46		regulator-name = "TF_IO";
     47		regulator-min-microvolt = <1800000>;
     48		regulator-max-microvolt = <3300000>;
     49		vin-supply = <&vcc_5v>;
     50
     51		enable-gpio = <&gpio_ao GPIOE_2 GPIO_OPEN_DRAIN>;
     52		enable-active-high;
     53		regulator-always-on;
     54
     55		gpios = <&gpio_ao GPIOAO_6 GPIO_OPEN_SOURCE>;
     56		gpios-states = <0>;
     57
     58		states = <3300000 0>,
     59			 <1800000 1>;
     60	};
     61
     62	flash_1v8: regulator-flash_1v8 {
     63		compatible = "regulator-fixed";
     64		regulator-name = "FLASH_1V8";
     65		regulator-min-microvolt = <1800000>;
     66		regulator-max-microvolt = <1800000>;
     67		vin-supply = <&vcc_3v3>;
     68		regulator-always-on;
     69	};
     70
     71	main_12v: regulator-main_12v {
     72		compatible = "regulator-fixed";
     73		regulator-name = "12V";
     74		regulator-min-microvolt = <12000000>;
     75		regulator-max-microvolt = <12000000>;
     76		regulator-always-on;
     77	};
     78
     79	vcc_5v: regulator-vcc_5v {
     80		compatible = "regulator-fixed";
     81		regulator-name = "5V";
     82		regulator-min-microvolt = <5000000>;
     83		regulator-max-microvolt = <5000000>;
     84		regulator-always-on;
     85		vin-supply = <&main_12v>;
     86		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
     87		enable-active-high;
     88	};
     89
     90	vcc_1v8: regulator-vcc_1v8 {
     91		compatible = "regulator-fixed";
     92		regulator-name = "VCC_1V8";
     93		regulator-min-microvolt = <1800000>;
     94		regulator-max-microvolt = <1800000>;
     95		vin-supply = <&vcc_3v3>;
     96		regulator-always-on;
     97	};
     98
     99	vcc_3v3: regulator-vcc_3v3 {
    100		compatible = "regulator-fixed";
    101		regulator-name = "VCC_3V3";
    102		regulator-min-microvolt = <3300000>;
    103		regulator-max-microvolt = <3300000>;
    104		vin-supply = <&vddao_3v3>;
    105		regulator-always-on;
    106		/* FIXME: actually controlled by VDDCPU_B_EN */
    107	};
    108
    109	vddcpu: regulator-vddcpu {
    110		/*
    111		 * MP8756GD Regulator.
    112		 */
    113		compatible = "pwm-regulator";
    114
    115		regulator-name = "VDDCPU";
    116		regulator-min-microvolt = <721000>;
    117		regulator-max-microvolt = <1022000>;
    118
    119		pwm-supply = <&main_12v>;
    120
    121		pwms = <&pwm_AO_cd 1 1250 0>;
    122		pwm-dutycycle-range = <100 0>;
    123
    124		regulator-boot-on;
    125		regulator-always-on;
    126	};
    127
    128	usb_pwr_en: regulator-usb_pwr_en {
    129		compatible = "regulator-fixed";
    130		regulator-name = "USB_PWR_EN";
    131		regulator-min-microvolt = <5000000>;
    132		regulator-max-microvolt = <5000000>;
    133		vin-supply = <&vcc_5v>;
    134
    135		/* Connected to the microUSB port power enable */
    136		gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
    137		enable-active-high;
    138	};
    139
    140	vddao_1v8: regulator-vddao_1v8 {
    141		compatible = "regulator-fixed";
    142		regulator-name = "VDDAO_1V8";
    143		regulator-min-microvolt = <1800000>;
    144		regulator-max-microvolt = <1800000>;
    145		vin-supply = <&vddao_3v3>;
    146		regulator-always-on;
    147	};
    148
    149	vddao_3v3: regulator-vddao_3v3 {
    150		compatible = "regulator-fixed";
    151		regulator-name = "VDDAO_3V3";
    152		regulator-min-microvolt = <3300000>;
    153		regulator-max-microvolt = <3300000>;
    154		vin-supply = <&main_12v>;
    155		regulator-always-on;
    156	};
    157
    158	hdmi-connector {
    159		compatible = "hdmi-connector";
    160		type = "a";
    161
    162		port {
    163			hdmi_connector_in: endpoint {
    164				remote-endpoint = <&hdmi_tx_tmds_out>;
    165			};
    166		};
    167	};
    168
    169	sound {
    170		compatible = "amlogic,axg-sound-card";
    171		audio-aux-devs = <&tdmout_b>;
    172		audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
    173				"TDMOUT_B IN 1", "FRDDR_B OUT 1",
    174				"TDMOUT_B IN 2", "FRDDR_C OUT 1",
    175				"TDM_B Playback", "TDMOUT_B OUT";
    176
    177		assigned-clocks = <&clkc CLKID_MPLL2>,
    178				  <&clkc CLKID_MPLL0>,
    179				  <&clkc CLKID_MPLL1>;
    180		assigned-clock-parents = <0>, <0>, <0>;
    181		assigned-clock-rates = <294912000>,
    182				       <270950400>,
    183				       <393216000>;
    184		status = "okay";
    185
    186		dai-link-0 {
    187			sound-dai = <&frddr_a>;
    188		};
    189
    190		dai-link-1 {
    191			sound-dai = <&frddr_b>;
    192		};
    193
    194		dai-link-2 {
    195			sound-dai = <&frddr_c>;
    196		};
    197
    198		/* 8ch hdmi interface */
    199		dai-link-3 {
    200			sound-dai = <&tdmif_b>;
    201			dai-format = "i2s";
    202			dai-tdm-slot-tx-mask-0 = <1 1>;
    203			dai-tdm-slot-tx-mask-1 = <1 1>;
    204			dai-tdm-slot-tx-mask-2 = <1 1>;
    205			dai-tdm-slot-tx-mask-3 = <1 1>;
    206			mclk-fs = <256>;
    207
    208			codec {
    209				sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
    210			};
    211		};
    212
    213		/* hdmi glue */
    214		dai-link-4 {
    215			sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
    216
    217			codec {
    218				sound-dai = <&hdmi_tx>;
    219			};
    220		};
    221	};
    222};
    223
    224&arb {
    225	status = "okay";
    226};
    227
    228&cec_AO {
    229	pinctrl-0 = <&cec_ao_a_h_pins>;
    230	pinctrl-names = "default";
    231	status = "disabled";
    232	hdmi-phandle = <&hdmi_tx>;
    233};
    234
    235&cecb_AO {
    236	pinctrl-0 = <&cec_ao_b_h_pins>;
    237	pinctrl-names = "default";
    238	status = "okay";
    239	hdmi-phandle = <&hdmi_tx>;
    240};
    241
    242&clkc_audio {
    243	status = "okay";
    244};
    245
    246&cpu0 {
    247	cpu-supply = <&vddcpu>;
    248	operating-points-v2 = <&cpu_opp_table>;
    249	clocks = <&clkc CLKID_CPU_CLK>;
    250	clock-latency = <50000>;
    251};
    252
    253&cpu1 {
    254	cpu-supply = <&vddcpu>;
    255	operating-points-v2 = <&cpu_opp_table>;
    256	clocks = <&clkc CLKID_CPU1_CLK>;
    257	clock-latency = <50000>;
    258};
    259
    260&cpu2 {
    261	cpu-supply = <&vddcpu>;
    262	operating-points-v2 = <&cpu_opp_table>;
    263	clocks = <&clkc CLKID_CPU2_CLK>;
    264	clock-latency = <50000>;
    265};
    266
    267&cpu3 {
    268	cpu-supply = <&vddcpu>;
    269	operating-points-v2 = <&cpu_opp_table>;
    270	clocks = <&clkc CLKID_CPU3_CLK>;
    271	clock-latency = <50000>;
    272};
    273
    274&ext_mdio {
    275	external_phy: ethernet-phy@0 {
    276		/* Realtek RTL8211F (0x001cc916) */
    277		reg = <0>;
    278		max-speed = <1000>;
    279
    280		reset-assert-us = <10000>;
    281		reset-deassert-us = <80000>;
    282		reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
    283
    284		interrupt-parent = <&gpio_intc>;
    285		/* MAC_INTR on GPIOZ_14 */
    286		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
    287	};
    288};
    289
    290&ethmac {
    291	pinctrl-0 = <&eth_pins>, <&eth_rgmii_pins>;
    292	pinctrl-names = "default";
    293	status = "okay";
    294	phy-mode = "rgmii";
    295	phy-handle = <&external_phy>;
    296	amlogic,tx-delay-ns = <2>;
    297};
    298
    299&frddr_a {
    300	status = "okay";
    301};
    302
    303&frddr_b {
    304	status = "okay";
    305};
    306
    307&frddr_c {
    308	status = "okay";
    309};
    310
    311&gpio {
    312	gpio-line-names =
    313		/* GPIOZ */
    314		"", "", "", "", "", "", "", "",
    315		"", "", "", "", "", "", "", "",
    316		/* GPIOH */
    317		"", "", "", "", "",
    318		"PIN_36", /* GPIOH_5 */
    319		"PIN_26", /* GPIOH_6 */
    320		"PIN_32", /* GPIOH_7 */
    321		"",
    322		/* BOOT */
    323		"", "", "", "", "", "", "", "",
    324		"", "", "", "", "", "", "", "",
    325		/* GPIOC */
    326		"", "", "", "", "", "", "", "",
    327		/* GPIOA */
    328		"", "", "", "", "", "", "", "",
    329		"", "", "", "", "", "",
    330		"PIN_27", /* GPIOA_14 */
    331		"PIN_28", /* GPIOA_15 */
    332		/* GPIOX */
    333		"PIN_16", /* GPIOX_0 */
    334		"PIN_18", /* GPIOX_1 */
    335		"PIN_22", /* GPIOX_2 */
    336		"PIN_11", /* GPIOX_3 */
    337		"PIN_13", /* GPIOX_4 */
    338		"PIN_7",  /* GPIOX_5 */
    339		"PIN_33", /* GPIOX_6 */
    340		"PIN_15", /* GPIOX_7 */
    341		"PIN_19", /* GPIOX_8 */
    342		"PIN_21", /* GPIOX_9 */
    343		"PIN_24", /* GPIOX_10 */
    344		"PIN_23", /* GPIOX_11 */
    345		"PIN_8",  /* GPIOX_12 */
    346		"PIN_10", /* GPIOX_13 */
    347		"PIN_29", /* GPIOX_14 */
    348		"PIN_31", /* GPIOX_15 */
    349		"PIN_12", /* GPIOX_16 */
    350		"PIN_3",  /* GPIOX_17 */
    351		"PIN_5",  /* GPIOX_18 */
    352		"PIN_35"; /* GPIOX_19 */
    353};
    354
    355&gpio_ao {
    356	gpio-line-names =
    357		/* GPIOAO */
    358		"", "", "", "",
    359		"PIN_47", /* GPIOAO_4 */
    360		"", "",
    361		"PIN_45", /* GPIOAO_7 */
    362		"PIN_46", /* GPIOAO_8 */
    363		"PIN_44", /* GPIOAO_9 */
    364		"PIN_42", /* GPIOAO_10 */
    365		"",
    366		/* GPIOE */
    367		"", "", "";
    368};
    369
    370&hdmi_tx {
    371	status = "okay";
    372	pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
    373	pinctrl-names = "default";
    374	hdmi-supply = <&vcc_5v>;
    375};
    376
    377&hdmi_tx_tmds_port {
    378	hdmi_tx_tmds_out: endpoint {
    379		remote-endpoint = <&hdmi_connector_in>;
    380	};
    381};
    382
    383&ir {
    384	status = "okay";
    385	pinctrl-0 = <&remote_input_ao_pins>;
    386	pinctrl-names = "default";
    387};
    388
    389&pwm_AO_cd {
    390	pinctrl-0 = <&pwm_ao_d_e_pins>;
    391	pinctrl-names = "default";
    392	clocks = <&xtal>;
    393	clock-names = "clkin1";
    394	status = "okay";
    395};
    396
    397&saradc {
    398	status = "okay";
    399};
    400
    401/* SD card */
    402&sd_emmc_b {
    403	status = "okay";
    404	pinctrl-0 = <&sdcard_c_pins>;
    405	pinctrl-1 = <&sdcard_clk_gate_c_pins>;
    406	pinctrl-names = "default", "clk-gate";
    407
    408	bus-width = <4>;
    409	cap-sd-highspeed;
    410	max-frequency = <200000000>;
    411	sd-uhs-sdr12;
    412	sd-uhs-sdr25;
    413	sd-uhs-sdr50;
    414	sd-uhs-sdr104;
    415	disable-wp;
    416
    417	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
    418	vmmc-supply = <&tflash_vdd>;
    419	vqmmc-supply = <&tf_io>;
    420};
    421
    422/* eMMC */
    423&sd_emmc_c {
    424	status = "okay";
    425	pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
    426	pinctrl-1 = <&emmc_clk_gate_pins>;
    427	pinctrl-names = "default", "clk-gate";
    428
    429	bus-width = <8>;
    430	cap-mmc-highspeed;
    431	mmc-ddr-1_8v;
    432	mmc-hs200-1_8v;
    433	max-frequency = <200000000>;
    434	disable-wp;
    435
    436	mmc-pwrseq = <&emmc_pwrseq>;
    437	vmmc-supply = <&vcc_3v3>;
    438	vqmmc-supply = <&flash_1v8>;
    439};
    440
    441&tdmif_b {
    442	status = "okay";
    443};
    444
    445&tdmout_b {
    446	status = "okay";
    447};
    448
    449&tohdmitx {
    450	status = "okay";
    451};
    452
    453&uart_AO {
    454	status = "okay";
    455	pinctrl-0 = <&uart_ao_a_pins>;
    456	pinctrl-names = "default";
    457};
    458
    459&usb {
    460	status = "okay";
    461	vbus-supply = <&usb_pwr_en>;
    462};
    463
    464&usb2_phy0 {
    465	phy-supply = <&vcc_5v>;
    466};
    467