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

rzg2l-smarc-som.dtsi (7743B)


      1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2/*
      3 * Device Tree Source for the RZ/{G2L,V2L} SMARC SOM common parts
      4 *
      5 * Copyright (C) 2021 Renesas Electronics Corp.
      6 */
      7
      8#include <dt-bindings/gpio/gpio.h>
      9#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
     10
     11/* SW1[2] should be at position 2/OFF to enable 64 GB eMMC */
     12#define EMMC	1
     13
     14/*
     15 * To enable uSD card on CN3,
     16 * SW1[2] should be at position 3/ON.
     17 * Disable eMMC by setting "#define EMMC	0" above.
     18 */
     19#define SDHI	(!EMMC)
     20
     21/ {
     22	aliases {
     23		ethernet0 = &eth0;
     24		ethernet1 = &eth1;
     25	};
     26
     27	chosen {
     28		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
     29	};
     30
     31	memory@48000000 {
     32		device_type = "memory";
     33		/* first 128MB is reserved for secure area. */
     34		reg = <0x0 0x48000000 0x0 0x78000000>;
     35	};
     36
     37	reg_1p8v: regulator0 {
     38		compatible = "regulator-fixed";
     39		regulator-name = "fixed-1.8V";
     40		regulator-min-microvolt = <1800000>;
     41		regulator-max-microvolt = <1800000>;
     42		regulator-boot-on;
     43		regulator-always-on;
     44	};
     45
     46	reg_3p3v: regulator1 {
     47		compatible = "regulator-fixed";
     48		regulator-name = "fixed-3.3V";
     49		regulator-min-microvolt = <3300000>;
     50		regulator-max-microvolt = <3300000>;
     51		regulator-boot-on;
     52		regulator-always-on;
     53	};
     54
     55	reg_1p1v: regulator-vdd-core {
     56		compatible = "regulator-fixed";
     57		regulator-name = "fixed-1.1V";
     58		regulator-min-microvolt = <1100000>;
     59		regulator-max-microvolt = <1100000>;
     60		regulator-boot-on;
     61		regulator-always-on;
     62	};
     63
     64	vccq_sdhi0: regulator-vccq-sdhi0 {
     65		compatible = "regulator-gpio";
     66
     67		regulator-name = "SDHI0 VccQ";
     68		regulator-min-microvolt = <1800000>;
     69		regulator-max-microvolt = <3300000>;
     70		states = <3300000 1>, <1800000 0>;
     71		regulator-boot-on;
     72		gpios = <&pinctrl RZG2L_GPIO(39, 0) GPIO_ACTIVE_HIGH>;
     73		regulator-always-on;
     74	};
     75};
     76
     77&adc {
     78	pinctrl-0 = <&adc_pins>;
     79	pinctrl-names = "default";
     80	status = "okay";
     81
     82	/delete-node/ channel@6;
     83	/delete-node/ channel@7;
     84};
     85
     86&eth0 {
     87	pinctrl-0 = <&eth0_pins>;
     88	pinctrl-names = "default";
     89	phy-handle = <&phy0>;
     90	phy-mode = "rgmii-id";
     91	status = "okay";
     92
     93	phy0: ethernet-phy@7 {
     94		compatible = "ethernet-phy-id0022.1640",
     95			     "ethernet-phy-ieee802.3-c22";
     96		reg = <7>;
     97		rxc-skew-psec = <2400>;
     98		txc-skew-psec = <2400>;
     99		rxdv-skew-psec = <0>;
    100		txdv-skew-psec = <0>;
    101		rxd0-skew-psec = <0>;
    102		rxd1-skew-psec = <0>;
    103		rxd2-skew-psec = <0>;
    104		rxd3-skew-psec = <0>;
    105		txd0-skew-psec = <0>;
    106		txd1-skew-psec = <0>;
    107		txd2-skew-psec = <0>;
    108		txd3-skew-psec = <0>;
    109	};
    110};
    111
    112&eth1 {
    113	pinctrl-0 = <&eth1_pins>;
    114	pinctrl-names = "default";
    115	phy-handle = <&phy1>;
    116	phy-mode = "rgmii-id";
    117	status = "okay";
    118
    119	phy1: ethernet-phy@7 {
    120		compatible = "ethernet-phy-id0022.1640",
    121			     "ethernet-phy-ieee802.3-c22";
    122		reg = <7>;
    123		rxc-skew-psec = <2400>;
    124		txc-skew-psec = <2400>;
    125		rxdv-skew-psec = <0>;
    126		txdv-skew-psec = <0>;
    127		rxd0-skew-psec = <0>;
    128		rxd1-skew-psec = <0>;
    129		rxd2-skew-psec = <0>;
    130		rxd3-skew-psec = <0>;
    131		txd0-skew-psec = <0>;
    132		txd1-skew-psec = <0>;
    133		txd2-skew-psec = <0>;
    134		txd3-skew-psec = <0>;
    135	};
    136};
    137
    138&extal_clk {
    139	clock-frequency = <24000000>;
    140};
    141
    142&gpu {
    143	mali-supply = <&reg_1p1v>;
    144};
    145
    146&ostm1 {
    147	status = "okay";
    148};
    149
    150&ostm2 {
    151	status = "okay";
    152};
    153
    154&pinctrl {
    155	adc_pins: adc {
    156		pinmux = <RZG2L_PORT_PINMUX(9, 0, 2)>; /* ADC_TRG */
    157	};
    158
    159	eth0_pins: eth0 {
    160		pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
    161			 <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
    162			 <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
    163			 <RZG2L_PORT_PINMUX(20, 0, 1)>, /* ET0_TXC */
    164			 <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
    165			 <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
    166			 <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
    167			 <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
    168			 <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
    169			 <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
    170			 <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
    171			 <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
    172			 <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
    173			 <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
    174			 <RZG2L_PORT_PINMUX(26, 1, 1)>; /* ET0_RXD3 */
    175	};
    176
    177	eth1_pins: eth1 {
    178		pinmux = <RZG2L_PORT_PINMUX(37, 2, 1)>, /* ET1_LINKSTA */
    179			 <RZG2L_PORT_PINMUX(37, 0, 1)>, /* ET1_MDC */
    180			 <RZG2L_PORT_PINMUX(37, 1, 1)>, /* ET1_MDIO */
    181			 <RZG2L_PORT_PINMUX(29, 0, 1)>, /* ET1_TXC */
    182			 <RZG2L_PORT_PINMUX(29, 1, 1)>, /* ET1_TX_CTL */
    183			 <RZG2L_PORT_PINMUX(30, 0, 1)>, /* ET1_TXD0 */
    184			 <RZG2L_PORT_PINMUX(30, 1, 1)>, /* ET1_TXD1 */
    185			 <RZG2L_PORT_PINMUX(31, 0, 1)>, /* ET1_TXD2 */
    186			 <RZG2L_PORT_PINMUX(31, 1, 1)>, /* ET1_TXD3 */
    187			 <RZG2L_PORT_PINMUX(33, 1, 1)>, /* ET1_RXC */
    188			 <RZG2L_PORT_PINMUX(34, 0, 1)>, /* ET1_RX_CTL */
    189			 <RZG2L_PORT_PINMUX(34, 1, 1)>, /* ET1_RXD0 */
    190			 <RZG2L_PORT_PINMUX(35, 0, 1)>, /* ET1_RXD1 */
    191			 <RZG2L_PORT_PINMUX(35, 1, 1)>, /* ET1_RXD2 */
    192			 <RZG2L_PORT_PINMUX(36, 0, 1)>; /* ET1_RXD3 */
    193	};
    194
    195	gpio-sd0-pwr-en-hog {
    196		gpio-hog;
    197		gpios = <RZG2L_GPIO(4, 1) GPIO_ACTIVE_HIGH>;
    198		output-high;
    199		line-name = "gpio_sd0_pwr_en";
    200	};
    201
    202	qspi0_pins: qspi0 {
    203		qspi0-data {
    204			pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3";
    205			power-source = <1800>;
    206		};
    207
    208		qspi0-ctrl {
    209			pins = "QSPI0_SPCLK", "QSPI0_SSL", "QSPI_RESET#";
    210			power-source = <1800>;
    211		};
    212	};
    213
    214	/*
    215	 * SD0 device selection is XOR between GPIO_SD0_DEV_SEL and SW1[2]
    216	 * The below switch logic can be used to select the device between
    217	 * eMMC and microSD, after setting GPIO_SD0_DEV_SEL to high in DT.
    218	 * SW1[2] should be at position 2/OFF to enable 64 GB eMMC
    219	 * SW1[2] should be at position 3/ON to enable uSD card CN3
    220	 */
    221	sd0-dev-sel-hog {
    222		gpio-hog;
    223		gpios = <RZG2L_GPIO(41, 1) GPIO_ACTIVE_HIGH>;
    224		output-high;
    225		line-name = "sd0_dev_sel";
    226	};
    227
    228	sdhi0_emmc_pins: sd0emmc {
    229		sd0_emmc_data {
    230			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
    231			       "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
    232			power-source = <1800>;
    233		};
    234
    235		sd0_emmc_ctrl {
    236			pins = "SD0_CLK", "SD0_CMD";
    237			power-source = <1800>;
    238		};
    239
    240		sd0_emmc_rst {
    241			pins = "SD0_RST#";
    242			power-source = <1800>;
    243		};
    244	};
    245
    246	sdhi0_pins: sd0 {
    247		sd0_data {
    248			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
    249			power-source = <3300>;
    250		};
    251
    252		sd0_ctrl {
    253			pins = "SD0_CLK", "SD0_CMD";
    254			power-source = <3300>;
    255		};
    256
    257		sd0_mux {
    258			pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
    259		};
    260	};
    261
    262	sdhi0_pins_uhs: sd0_uhs {
    263		sd0_data_uhs {
    264			pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
    265			power-source = <1800>;
    266		};
    267
    268		sd0_ctrl_uhs {
    269			pins = "SD0_CLK", "SD0_CMD";
    270			power-source = <1800>;
    271		};
    272
    273		sd0_mux_uhs {
    274			pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
    275		};
    276	};
    277};
    278
    279&sbc {
    280	pinctrl-0 = <&qspi0_pins>;
    281	pinctrl-names = "default";
    282	status = "okay";
    283
    284	flash@0 {
    285		compatible = "micron,mt25qu512a", "jedec,spi-nor";
    286		reg = <0>;
    287		m25p,fast-read;
    288		spi-max-frequency = <50000000>;
    289		spi-rx-bus-width = <4>;
    290
    291		partitions {
    292			compatible = "fixed-partitions";
    293			#address-cells = <1>;
    294			#size-cells = <1>;
    295
    296			boot@0 {
    297				reg = <0x00000000 0x2000000>;
    298				read-only;
    299			};
    300			user@2000000 {
    301				reg = <0x2000000 0x2000000>;
    302			};
    303		};
    304	};
    305};
    306
    307#if SDHI
    308&sdhi0 {
    309	pinctrl-0 = <&sdhi0_pins>;
    310	pinctrl-1 = <&sdhi0_pins_uhs>;
    311	pinctrl-names = "default", "state_uhs";
    312
    313	vmmc-supply = <&reg_3p3v>;
    314	vqmmc-supply = <&vccq_sdhi0>;
    315	bus-width = <4>;
    316	sd-uhs-sdr50;
    317	sd-uhs-sdr104;
    318	status = "okay";
    319};
    320#endif
    321
    322#if EMMC
    323&sdhi0 {
    324	pinctrl-0 = <&sdhi0_emmc_pins>;
    325	pinctrl-1 = <&sdhi0_emmc_pins>;
    326	pinctrl-names = "default", "state_uhs";
    327
    328	vmmc-supply = <&reg_3p3v>;
    329	vqmmc-supply = <&reg_1p8v>;
    330	bus-width = <8>;
    331	mmc-hs200-1_8v;
    332	non-removable;
    333	fixed-emmc-driver-type = <1>;
    334	status = "okay";
    335};
    336#endif
    337
    338&wdt0 {
    339	status = "okay";
    340	timeout-sec = <60>;
    341};
    342
    343&wdt1 {
    344	status = "okay";
    345	timeout-sec = <60>;
    346};
    347
    348&wdt2 {
    349	status = "okay";
    350	timeout-sec = <60>;
    351};