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-gx-libretech-pc.dtsi (8750B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (c) 2019 BayLibre SAS.
      4 * Author: Jerome Brunet <jbrunet@baylibre.com>
      5 */
      6
      7/* Libretech Amlogic GX PC form factor - AKA: Tartiflette */
      8
      9#include <dt-bindings/input/input.h>
     10#include <dt-bindings/leds/common.h>
     11#include <dt-bindings/sound/meson-aiu.h>
     12
     13/ {
     14	adc-keys {
     15		compatible = "adc-keys";
     16		io-channels = <&saradc 0>;
     17		io-channel-names = "buttons";
     18		keyup-threshold-microvolt = <1800000>;
     19
     20		update-button {
     21			label = "update";
     22			linux,code = <KEY_VENDOR>;
     23			press-threshold-microvolt = <1300000>;
     24		};
     25	};
     26
     27	aliases {
     28		serial0 = &uart_AO;
     29		ethernet0 = &ethmac;
     30		spi0 = &spifc;
     31	};
     32
     33	dio2133: analog-amplifier {
     34		compatible = "simple-audio-amplifier";
     35		sound-name-prefix = "AU2";
     36		VCC-supply = <&vcc5v>;
     37		enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
     38	};
     39
     40	chosen {
     41		stdout-path = "serial0:115200n8";
     42	};
     43
     44	cvbs-connector {
     45		compatible = "composite-video-connector";
     46		status = "disabled";
     47
     48		port {
     49			cvbs_connector_in: endpoint {
     50				remote-endpoint = <&cvbs_vdac_out>;
     51			};
     52		};
     53	};
     54
     55	emmc_pwrseq: emmc-pwrseq {
     56		compatible = "mmc-pwrseq-emmc";
     57		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
     58	};
     59
     60	hdmi-connector {
     61		compatible = "hdmi-connector";
     62		type = "a";
     63
     64		port {
     65			hdmi_connector_in: endpoint {
     66				remote-endpoint = <&hdmi_tx_tmds_out>;
     67			};
     68		};
     69	};
     70
     71	gpio-keys-polled {
     72		compatible = "gpio-keys-polled";
     73		poll-interval = <100>;
     74
     75		power-button {
     76			label = "power";
     77			linux,code = <KEY_POWER>;
     78			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
     79		};
     80	};
     81
     82	memory@0 {
     83		device_type = "memory";
     84		reg = <0x0 0x0 0x0 0x80000000>;
     85	};
     86
     87	ao_5v: regulator-ao_5v {
     88		compatible = "regulator-fixed";
     89		regulator-name = "AO_5V";
     90		regulator-min-microvolt = <5000000>;
     91		regulator-max-microvolt = <5000000>;
     92		vin-supply = <&dc_in>;
     93		regulator-always-on;
     94	};
     95
     96	dc_in: regulator-dc_in {
     97		compatible = "regulator-fixed";
     98		regulator-name = "DC_IN";
     99		regulator-min-microvolt = <5000000>;
    100		regulator-max-microvolt = <5000000>;
    101		regulator-always-on;
    102	};
    103
    104	leds {
    105		compatible = "gpio-leds";
    106
    107		led-green {
    108			color = <LED_COLOR_ID_GREEN>;
    109			function = LED_FUNCTION_DISK_ACTIVITY;
    110			gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
    111			linux,default-trigger = "disk-activity";
    112		};
    113
    114		led-blue {
    115			color = <LED_COLOR_ID_BLUE>;
    116			function = LED_FUNCTION_STATUS;
    117			gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
    118			linux,default-trigger = "heartbeat";
    119			panic-indicator;
    120		};
    121	};
    122
    123	vcc_card: regulator-vcc_card {
    124		compatible = "regulator-fixed";
    125		regulator-name = "VCC_CARD";
    126		regulator-min-microvolt = <3300000>;
    127		regulator-max-microvolt = <3300000>;
    128		vin-supply = <&vddio_ao3v3>;
    129
    130		gpio = <&gpio GPIODV_4 GPIO_ACTIVE_HIGH>;
    131		enable-active-high;
    132	};
    133
    134	vcc5v: regulator-vcc5v {
    135		compatible = "regulator-fixed";
    136		regulator-name = "VCC5V";
    137		regulator-min-microvolt = <5000000>;
    138		regulator-max-microvolt = <5000000>;
    139		vin-supply = <&ao_5v>;
    140
    141		gpio = <&gpio GPIOH_3 GPIO_OPEN_DRAIN>;
    142	};
    143
    144	vddio_ao18: regulator-vddio_ao18 {
    145		compatible = "regulator-fixed";
    146		regulator-name = "VDDIO_AO18";
    147		regulator-min-microvolt = <1800000>;
    148		regulator-max-microvolt = <1800000>;
    149		vin-supply = <&ao_5v>;
    150		regulator-always-on;
    151	};
    152
    153	vddio_ao3v3: regulator-vddio_ao3v3 {
    154		compatible = "regulator-fixed";
    155		regulator-name = "VDDIO_AO3V3";
    156		regulator-min-microvolt = <3300000>;
    157		regulator-max-microvolt = <3300000>;
    158		vin-supply = <&ao_5v>;
    159		regulator-always-on;
    160	};
    161
    162	vddio_boot: regulator-vddio_boot {
    163		compatible = "regulator-fixed";
    164		regulator-name = "VDDIO_BOOT";
    165		regulator-min-microvolt = <1800000>;
    166		regulator-max-microvolt = <1800000>;
    167		vin-supply = <&vddio_ao3v3>;
    168		regulator-always-on;
    169	};
    170
    171	vddio_card: regulator-vddio-card {
    172		compatible = "regulator-gpio";
    173		regulator-name = "VDDIO_CARD";
    174		regulator-min-microvolt = <1800000>;
    175		regulator-max-microvolt = <3300000>;
    176
    177		gpios = <&gpio GPIODV_5 GPIO_ACTIVE_HIGH>;
    178		gpios-states = <0>;
    179
    180		states = <3300000 0>,
    181			 <1800000 1>;
    182
    183		regulator-settling-time-up-us = <200>;
    184		regulator-settling-time-down-us = <50000>;
    185	};
    186
    187	sound {
    188		compatible = "amlogic,gx-sound-card";
    189		model = "LIBRETECH-PC";
    190		audio-aux-devs = <&dio2133>;
    191		audio-widgets = "Speaker", "7J4-14 LEFT",
    192				"Speaker", "7J4-11 RIGHT";
    193		audio-routing = "AU2 INL", "ACODEC LOLN",
    194				"AU2 INR", "ACODEC LORN",
    195				"7J4-14 LEFT", "AU2 OUTL",
    196				"7J4-11 RIGHT", "AU2 OUTR";
    197		assigned-clocks = <&clkc CLKID_MPLL0>,
    198				  <&clkc CLKID_MPLL1>,
    199				  <&clkc CLKID_MPLL2>;
    200		assigned-clock-parents = <0>, <0>, <0>;
    201		assigned-clock-rates = <294912000>,
    202				       <270950400>,
    203				       <393216000>;
    204		status = "okay";
    205
    206		dai-link-0 {
    207			sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
    208		};
    209
    210		dai-link-1 {
    211			sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
    212			dai-format = "i2s";
    213			mclk-fs = <256>;
    214
    215			codec-0 {
    216				sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
    217			};
    218
    219			codec-1 {
    220				sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
    221			};
    222		};
    223
    224		dai-link-2 {
    225			sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
    226
    227			codec-0 {
    228				sound-dai = <&hdmi_tx>;
    229			};
    230		};
    231
    232		dai-link-3 {
    233			sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
    234
    235			codec-0 {
    236				sound-dai = <&acodec>;
    237			};
    238		};
    239	};
    240};
    241
    242&acodec {
    243	AVDD-supply = <&vddio_ao18>;
    244	status = "okay";
    245};
    246
    247&aiu {
    248	status = "okay";
    249};
    250
    251&cec_AO {
    252	pinctrl-0 = <&ao_cec_pins>;
    253	pinctrl-names = "default";
    254	hdmi-phandle = <&hdmi_tx>;
    255	status = "okay";
    256};
    257
    258&cvbs_vdac_port {
    259	cvbs_vdac_out: endpoint {
    260		remote-endpoint = <&cvbs_connector_in>;
    261	};
    262};
    263
    264&ethmac {
    265	pinctrl-0 = <&eth_pins>, <&eth_phy_irq_pins>;
    266	pinctrl-names = "default";
    267	phy-handle = <&external_phy>;
    268	amlogic,tx-delay-ns = <2>;
    269	phy-mode = "rgmii";
    270	status = "okay";
    271};
    272
    273&external_mdio {
    274	external_phy: ethernet-phy@0 {
    275		reg = <0>;
    276		max-speed = <1000>;
    277		reset-assert-us = <10000>;
    278		reset-deassert-us = <30000>;
    279		reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
    280		interrupt-parent = <&gpio_intc>;
    281		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
    282	};
    283};
    284
    285&pinctrl_periphs {
    286	/*
    287	 * Make sure the reset pin of the usb HUB is driven high to take
    288	 * it out of reset.
    289	 */
    290	usb1_rst_pins: usb1_rst_irq {
    291		mux {
    292			groups = "GPIODV_3";
    293			function = "gpio_periphs";
    294			bias-disable;
    295			output-high;
    296		};
    297	};
    298
    299	/* Make sure the phy irq pin is properly configured as input */
    300	eth_phy_irq_pins: eth_phy_irq {
    301		mux {
    302			groups = "GPIOZ_15";
    303			function = "gpio_periphs";
    304			bias-disable;
    305			output-disable;
    306		};
    307	};
    308};
    309
    310&hdmi_tx {
    311	pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
    312	pinctrl-names = "default";
    313	hdmi-supply = <&vcc5v>;
    314	status = "okay";
    315};
    316
    317&hdmi_tx_tmds_port {
    318	hdmi_tx_tmds_out: endpoint {
    319		remote-endpoint = <&hdmi_connector_in>;
    320	};
    321};
    322
    323&ir {
    324	pinctrl-0 = <&remote_input_ao_pins>;
    325	pinctrl-names = "default";
    326	status = "okay";
    327};
    328
    329&i2c_C {
    330	pinctrl-0 = <&i2c_c_dv18_pins>;
    331	pinctrl-names = "default";
    332	status = "okay";
    333
    334	rtc: rtc@51 {
    335		reg = <0x51>;
    336		compatible = "nxp,pcf8563";
    337		#clock-cells = <0>;
    338		clock-output-names = "rtc_clkout";
    339	};
    340};
    341
    342&pwm_AO_ab {
    343	pinctrl-0 = <&pwm_ao_a_3_pins>;
    344	pinctrl-names = "default";
    345	clocks = <&clkc CLKID_FCLK_DIV4>;
    346	clock-names = "clkin0";
    347	status = "okay";
    348};
    349
    350&pwm_ab {
    351	pinctrl-0 = <&pwm_b_pins>;
    352	pinctrl-names = "default";
    353	clocks = <&clkc CLKID_FCLK_DIV4>;
    354	clock-names = "clkin0";
    355	status = "okay";
    356};
    357
    358&pwm_ef {
    359	pinctrl-0 = <&pwm_e_pins>, <&pwm_f_clk_pins>;
    360	pinctrl-names = "default";
    361	clocks = <&clkc CLKID_FCLK_DIV4>;
    362	clock-names = "clkin0";
    363	status = "okay";
    364};
    365
    366&saradc {
    367	vref-supply = <&vddio_ao18>;
    368	status = "okay";
    369};
    370
    371/* SD card */
    372&sd_emmc_b {
    373	pinctrl-0 = <&sdcard_pins>;
    374	pinctrl-1 = <&sdcard_clk_gate_pins>;
    375	pinctrl-names = "default", "clk-gate";
    376
    377	bus-width = <4>;
    378	cap-sd-highspeed;
    379	sd-uhs-sdr12;
    380	sd-uhs-sdr25;
    381	sd-uhs-sdr50;
    382	sd-uhs-ddr50;
    383	max-frequency = <200000000>;
    384	disable-wp;
    385
    386	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
    387
    388	vmmc-supply = <&vcc_card>;
    389	vqmmc-supply = <&vddio_card>;
    390
    391	status = "okay";
    392};
    393
    394/* eMMC */
    395&sd_emmc_c {
    396	pinctrl-0 = <&emmc_pins>;
    397	pinctrl-1 = <&emmc_clk_gate_pins>;
    398	pinctrl-names = "default", "clk-gate";
    399
    400	bus-width = <8>;
    401	cap-mmc-highspeed;
    402	mmc-ddr-1_8v;
    403	mmc-hs200-1_8v;
    404	max-frequency = <200000000>;
    405	disable-wp;
    406
    407	mmc-pwrseq = <&emmc_pwrseq>;
    408	vmmc-supply = <&vddio_ao3v3>;
    409	vqmmc-supply = <&vddio_boot>;
    410
    411	status = "okay";
    412};
    413
    414&spifc {
    415	pinctrl-0 = <&nor_pins>;
    416	pinctrl-names = "default";
    417	status = "okay";
    418
    419	gd25lq128: flash@0 {
    420		compatible = "jedec,spi-nor";
    421		#address-cells = <1>;
    422		#size-cells = <1>;
    423		reg = <0>;
    424		spi-max-frequency = <12000000>;
    425	};
    426};
    427
    428&uart_AO {
    429	pinctrl-0 = <&uart_ao_a_pins>;
    430	pinctrl-names = "default";
    431	status = "okay";
    432};
    433
    434&usb {
    435	status = "okay";
    436	dr_mode = "host";
    437};
    438
    439&usb2_phy0 {
    440	pinctrl-0 = <&usb1_rst_pins>;
    441	pinctrl-names = "default";
    442	phy-supply = <&vcc5v>;
    443};
    444
    445&usb2_phy1 {
    446	phy-supply = <&vcc5v>;
    447};