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

sdm845-cheza.dtsi (26872B)


      1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2/*
      3 * Google Cheza device tree source (common between revisions)
      4 *
      5 * Copyright 2018 Google LLC.
      6 */
      7
      8#include <dt-bindings/input/input.h>
      9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
     10#include "sdm845.dtsi"
     11
     12/* PMICs depend on spmi_bus label and so must come after SoC */
     13#include "pm8005.dtsi"
     14#include "pm8998.dtsi"
     15
     16/ {
     17	aliases {
     18		bluetooth0 = &bluetooth;
     19		hsuart0 = &uart6;
     20		serial0 = &uart9;
     21		wifi0 = &wifi;
     22	};
     23
     24	chosen {
     25		stdout-path = "serial0:115200n8";
     26	};
     27
     28	backlight: backlight {
     29		compatible = "pwm-backlight";
     30		pwms = <&cros_ec_pwm 0>;
     31		enable-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
     32		power-supply = <&ppvar_sys>;
     33		pinctrl-names = "default";
     34		pinctrl-0 = <&ap_edp_bklten>;
     35	};
     36
     37	/* FIXED REGULATORS - parents above children */
     38
     39	/* This is the top level supply and variable voltage */
     40	ppvar_sys: ppvar-sys-regulator {
     41		compatible = "regulator-fixed";
     42		regulator-name = "ppvar_sys";
     43		regulator-always-on;
     44		regulator-boot-on;
     45	};
     46
     47	/* This divides ppvar_sys by 2, so voltage is variable */
     48	src_vph_pwr: src-vph-pwr-regulator {
     49		compatible = "regulator-fixed";
     50		regulator-name = "src_vph_pwr";
     51
     52		/* EC turns on with switchcap_on_l; always on for AP */
     53		regulator-always-on;
     54		regulator-boot-on;
     55
     56		vin-supply = <&ppvar_sys>;
     57	};
     58
     59	pp5000_a: pp5000-a-regulator {
     60		compatible = "regulator-fixed";
     61		regulator-name = "pp5000_a";
     62
     63		/* EC turns on with en_pp5000_a; always on for AP */
     64		regulator-always-on;
     65		regulator-boot-on;
     66		regulator-min-microvolt = <5000000>;
     67		regulator-max-microvolt = <5000000>;
     68
     69		vin-supply = <&ppvar_sys>;
     70	};
     71
     72	src_vreg_bob: src-vreg-bob-regulator {
     73		compatible = "regulator-fixed";
     74		regulator-name = "src_vreg_bob";
     75
     76		/* EC turns on with vbob_en; always on for AP */
     77		regulator-always-on;
     78		regulator-boot-on;
     79		regulator-min-microvolt = <3600000>;
     80		regulator-max-microvolt = <3600000>;
     81
     82		vin-supply = <&ppvar_sys>;
     83	};
     84
     85	pp3300_dx_edp: pp3300-dx-edp-regulator {
     86		compatible = "regulator-fixed";
     87		regulator-name = "pp3300_dx_edp";
     88
     89		regulator-min-microvolt = <3300000>;
     90		regulator-max-microvolt = <3300000>;
     91
     92		gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>;
     93		enable-active-high;
     94		pinctrl-names = "default";
     95		pinctrl-0 = <&en_pp3300_dx_edp>;
     96	};
     97
     98	/*
     99	 * Apparently RPMh does not provide support for PM8998 S4 because it
    100	 * is always-on; model it as a fixed regulator.
    101	 */
    102	src_pp1800_s4a: pm8998-smps4 {
    103		compatible = "regulator-fixed";
    104		regulator-name = "src_pp1800_s4a";
    105
    106		regulator-min-microvolt = <1800000>;
    107		regulator-max-microvolt = <1800000>;
    108
    109		regulator-always-on;
    110		regulator-boot-on;
    111
    112		vin-supply = <&src_vph_pwr>;
    113	};
    114
    115	/* BOARD-SPECIFIC TOP LEVEL NODES */
    116
    117	gpio-keys {
    118		compatible = "gpio-keys";
    119		pinctrl-names = "default";
    120		pinctrl-0 = <&pen_eject_odl>;
    121
    122		pen-insert {
    123			label = "Pen Insert";
    124			/* Insert = low, eject = high */
    125			gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
    126			linux,code = <SW_PEN_INSERTED>;
    127			linux,input-type = <EV_SW>;
    128			wakeup-source;
    129		};
    130	};
    131
    132	panel: panel {
    133		compatible ="innolux,p120zdg-bf1";
    134		power-supply = <&pp3300_dx_edp>;
    135		backlight = <&backlight>;
    136		no-hpd;
    137
    138		ports {
    139			panel_in: port {
    140				panel_in_edp: endpoint {
    141					remote-endpoint = <&sn65dsi86_out>;
    142				};
    143			};
    144		};
    145	};
    146};
    147
    148/*
    149 * Reserved memory changes
    150 *
    151 * Putting this all together (out of order with the rest of the file) to keep
    152 * all modifications to the memory map (from sdm845.dtsi) in one place.
    153 */
    154
    155/*
    156 * Our mpss_region is 8MB bigger than the default one and that conflicts
    157 * with venus_mem and cdsp_mem.
    158 *
    159 * For venus_mem we'll delete and re-create at a different address.
    160 *
    161 * cdsp_mem isn't used on cheza right now so we won't bother re-creating it; but
    162 * that also means we need to delete cdsp_pas.
    163 */
    164/delete-node/ &venus_mem;
    165/delete-node/ &cdsp_mem;
    166/delete-node/ &cdsp_pas;
    167/delete-node/ &gpu_mem;
    168
    169/* Increase the size from 120 MB to 128 MB */
    170&mpss_region {
    171	reg = <0 0x8e000000 0 0x8000000>;
    172};
    173
    174/* Increase the size from 2MB to 8MB */
    175&rmtfs_mem {
    176	reg = <0 0x88f00000 0 0x800000>;
    177};
    178
    179/ {
    180	reserved-memory {
    181		venus_mem: memory@96000000 {
    182			reg = <0 0x96000000 0 0x500000>;
    183			no-map;
    184		};
    185	};
    186};
    187
    188&qspi {
    189	status = "okay";
    190	pinctrl-names = "default";
    191	pinctrl-0 = <&qspi_clk &qspi_cs0 &qspi_data01>;
    192
    193	flash@0 {
    194		compatible = "jedec,spi-nor";
    195		reg = <0>;
    196
    197		/*
    198		 * In theory chip supports up to 104 MHz and controller up
    199		 * to 80 MHz, but above 25 MHz wasn't reliable so we'll use
    200		 * that for now.  b:117440651
    201		 */
    202		spi-max-frequency = <25000000>;
    203		spi-tx-bus-width = <2>;
    204		spi-rx-bus-width = <2>;
    205	};
    206};
    207
    208
    209&apps_rsc {
    210	pm8998-rpmh-regulators {
    211		compatible = "qcom,pm8998-rpmh-regulators";
    212		qcom,pmic-id = "a";
    213
    214		vdd-s1-supply = <&src_vph_pwr>;
    215		vdd-s2-supply = <&src_vph_pwr>;
    216		vdd-s3-supply = <&src_vph_pwr>;
    217		vdd-s4-supply = <&src_vph_pwr>;
    218		vdd-s5-supply = <&src_vph_pwr>;
    219		vdd-s6-supply = <&src_vph_pwr>;
    220		vdd-s7-supply = <&src_vph_pwr>;
    221		vdd-s8-supply = <&src_vph_pwr>;
    222		vdd-s9-supply = <&src_vph_pwr>;
    223		vdd-s10-supply = <&src_vph_pwr>;
    224		vdd-s11-supply = <&src_vph_pwr>;
    225		vdd-s12-supply = <&src_vph_pwr>;
    226		vdd-s13-supply = <&src_vph_pwr>;
    227		vdd-l1-l27-supply = <&src_pp1025_s7a>;
    228		vdd-l2-l8-l17-supply = <&src_pp1350_s3a>;
    229		vdd-l3-l11-supply = <&src_pp1025_s7a>;
    230		vdd-l4-l5-supply = <&src_pp1025_s7a>;
    231		vdd-l6-supply = <&src_vph_pwr>;
    232		vdd-l7-l12-l14-l15-supply = <&src_pp2040_s5a>;
    233		vdd-l9-supply = <&src_pp2040_s5a>;
    234		vdd-l10-l23-l25-supply = <&src_vreg_bob>;
    235		vdd-l13-l19-l21-supply = <&src_vreg_bob>;
    236		vdd-l16-l28-supply = <&src_vreg_bob>;
    237		vdd-l18-l22-supply = <&src_vreg_bob>;
    238		vdd-l20-l24-supply = <&src_vreg_bob>;
    239		vdd-l26-supply = <&src_pp1350_s3a>;
    240		vin-lvs-1-2-supply = <&src_pp1800_s4a>;
    241
    242		src_pp1125_s2a: smps2 {
    243			regulator-min-microvolt = <1100000>;
    244			regulator-max-microvolt = <1100000>;
    245		};
    246
    247		src_pp1350_s3a: smps3 {
    248			regulator-min-microvolt = <1352000>;
    249			regulator-max-microvolt = <1352000>;
    250		};
    251
    252		src_pp2040_s5a: smps5 {
    253			regulator-min-microvolt = <1904000>;
    254			regulator-max-microvolt = <2040000>;
    255		};
    256
    257		src_pp1025_s7a: smps7 {
    258			regulator-min-microvolt = <900000>;
    259			regulator-max-microvolt = <1028000>;
    260		};
    261
    262		vdd_qusb_hs0:
    263		vdda_hp_pcie_core:
    264		vdda_mipi_csi0_0p9:
    265		vdda_mipi_csi1_0p9:
    266		vdda_mipi_csi2_0p9:
    267		vdda_mipi_dsi0_pll:
    268		vdda_mipi_dsi1_pll:
    269		vdda_qlink_lv:
    270		vdda_qlink_lv_ck:
    271		vdda_qrefs_0p875:
    272		vdda_pcie_core:
    273		vdda_pll_cc_ebi01:
    274		vdda_pll_cc_ebi23:
    275		vdda_sp_sensor:
    276		vdda_ufs1_core:
    277		vdda_ufs2_core:
    278		vdda_usb1_ss_core:
    279		vdda_usb2_ss_core:
    280		src_pp875_l1a: ldo1 {
    281			regulator-min-microvolt = <880000>;
    282			regulator-max-microvolt = <880000>;
    283			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    284		};
    285
    286		vddpx_10:
    287		src_pp1200_l2a: ldo2 {
    288			regulator-min-microvolt = <1200000>;
    289			regulator-max-microvolt = <1200000>;
    290			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    291
    292			/* TODO: why??? */
    293			regulator-always-on;
    294		};
    295
    296		pp1000_l3a_sdr845: ldo3 {
    297			regulator-min-microvolt = <1000000>;
    298			regulator-max-microvolt = <1000000>;
    299			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    300		};
    301
    302		vdd_wcss_cx:
    303		vdd_wcss_mx:
    304		vdda_wcss_pll:
    305		src_pp800_l5a: ldo5 {
    306			regulator-min-microvolt = <800000>;
    307			regulator-max-microvolt = <800000>;
    308			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    309		};
    310
    311		vddpx_13:
    312		src_pp1800_l6a: ldo6 {
    313			regulator-min-microvolt = <1856000>;
    314			regulator-max-microvolt = <1856000>;
    315			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    316		};
    317
    318		pp1800_l7a_wcn3990: ldo7 {
    319			regulator-min-microvolt = <1800000>;
    320			regulator-max-microvolt = <1800000>;
    321			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    322		};
    323
    324		src_pp1200_l8a: ldo8 {
    325			regulator-min-microvolt = <1200000>;
    326			regulator-max-microvolt = <1248000>;
    327			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    328		};
    329
    330		pp1800_dx_pen:
    331		src_pp1800_l9a: ldo9 {
    332			regulator-min-microvolt = <1800000>;
    333			regulator-max-microvolt = <1800000>;
    334			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    335		};
    336
    337		src_pp1800_l10a: ldo10 {
    338			regulator-min-microvolt = <1800000>;
    339			regulator-max-microvolt = <1800000>;
    340			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    341		};
    342
    343		pp1000_l11a_sdr845: ldo11 {
    344			regulator-min-microvolt = <1000000>;
    345			regulator-max-microvolt = <1048000>;
    346			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    347		};
    348
    349		vdd_qfprom:
    350		vdd_qfprom_sp:
    351		vdda_apc1_cs_1p8:
    352		vdda_gfx_cs_1p8:
    353		vdda_qrefs_1p8:
    354		vdda_qusb_hs0_1p8:
    355		vddpx_11:
    356		src_pp1800_l12a: ldo12 {
    357			regulator-min-microvolt = <1800000>;
    358			regulator-max-microvolt = <1800000>;
    359			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    360		};
    361
    362		vddpx_2:
    363		src_pp2950_l13a: ldo13 {
    364			regulator-min-microvolt = <1800000>;
    365			regulator-max-microvolt = <2960000>;
    366			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    367		};
    368
    369		src_pp1800_l14a: ldo14 {
    370			regulator-min-microvolt = <1800000>;
    371			regulator-max-microvolt = <1800000>;
    372			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    373		};
    374
    375		src_pp1800_l15a: ldo15 {
    376			regulator-min-microvolt = <1800000>;
    377			regulator-max-microvolt = <1800000>;
    378			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    379		};
    380
    381		pp2700_l16a: ldo16 {
    382			regulator-min-microvolt = <2704000>;
    383			regulator-max-microvolt = <2704000>;
    384			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    385		};
    386
    387		src_pp1300_l17a: ldo17 {
    388			regulator-min-microvolt = <1304000>;
    389			regulator-max-microvolt = <1304000>;
    390			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    391		};
    392
    393		pp2700_l18a: ldo18 {
    394			regulator-min-microvolt = <2704000>;
    395			regulator-max-microvolt = <2960000>;
    396			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    397		};
    398
    399		/*
    400		 * NOTE: this rail should have been called
    401		 * src_pp3300_l19a in the schematic
    402		 */
    403		src_pp3000_l19a: ldo19 {
    404			regulator-min-microvolt = <3304000>;
    405			regulator-max-microvolt = <3304000>;
    406
    407			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    408		};
    409
    410		src_pp2950_l20a: ldo20 {
    411			regulator-min-microvolt = <2704000>;
    412			regulator-max-microvolt = <2960000>;
    413			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    414		};
    415
    416		src_pp2950_l21a: ldo21 {
    417			regulator-min-microvolt = <2704000>;
    418			regulator-max-microvolt = <2960000>;
    419			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    420		};
    421
    422		pp3300_hub:
    423		src_pp3300_l22a: ldo22 {
    424			regulator-min-microvolt = <3304000>;
    425			regulator-max-microvolt = <3304000>;
    426			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    427			/*
    428			 * HACK: Should add a usb hub node and driver
    429			 * to turn this on and off at suspend/resume time
    430			 */
    431			regulator-boot-on;
    432			regulator-always-on;
    433		};
    434
    435		pp3300_l23a_ch1_wcn3990: ldo23 {
    436			regulator-min-microvolt = <3000000>;
    437			regulator-max-microvolt = <3312000>;
    438			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    439		};
    440
    441		vdda_qusb_hs0_3p1:
    442		src_pp3075_l24a: ldo24 {
    443			regulator-min-microvolt = <3088000>;
    444			regulator-max-microvolt = <3088000>;
    445			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    446		};
    447
    448		pp3300_l25a_ch0_wcn3990: ldo25 {
    449			regulator-min-microvolt = <3304000>;
    450			regulator-max-microvolt = <3304000>;
    451			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    452		};
    453
    454		pp1200_hub:
    455		vdda_hp_pcie_1p2:
    456		vdda_hv_ebi0:
    457		vdda_hv_ebi1:
    458		vdda_hv_ebi2:
    459		vdda_hv_ebi3:
    460		vdda_mipi_csi_1p25:
    461		vdda_mipi_dsi0_1p2:
    462		vdda_mipi_dsi1_1p2:
    463		vdda_pcie_1p2:
    464		vdda_ufs1_1p2:
    465		vdda_ufs2_1p2:
    466		vdda_usb1_ss_1p2:
    467		vdda_usb2_ss_1p2:
    468		src_pp1200_l26a: ldo26 {
    469			regulator-min-microvolt = <1200000>;
    470			regulator-max-microvolt = <1200000>;
    471			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    472		};
    473
    474		pp3300_dx_pen:
    475		src_pp3300_l28a: ldo28 {
    476			regulator-min-microvolt = <3304000>;
    477			regulator-max-microvolt = <3304000>;
    478			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
    479		};
    480
    481		src_pp1800_lvs1: lvs1 {
    482			regulator-min-microvolt = <1800000>;
    483			regulator-max-microvolt = <1800000>;
    484		};
    485
    486		src_pp1800_lvs2: lvs2 {
    487			regulator-min-microvolt = <1800000>;
    488			regulator-max-microvolt = <1800000>;
    489		};
    490	};
    491
    492	pm8005-rpmh-regulators {
    493		compatible = "qcom,pm8005-rpmh-regulators";
    494		qcom,pmic-id = "c";
    495
    496		vdd-s1-supply = <&src_vph_pwr>;
    497		vdd-s2-supply = <&src_vph_pwr>;
    498		vdd-s3-supply = <&src_vph_pwr>;
    499		vdd-s4-supply = <&src_vph_pwr>;
    500
    501		src_pp600_s3c: smps3 {
    502			regulator-min-microvolt = <600000>;
    503			regulator-max-microvolt = <600000>;
    504		};
    505	};
    506};
    507
    508&dsi0 {
    509	status = "okay";
    510	vdda-supply = <&vdda_mipi_dsi0_1p2>;
    511
    512	ports {
    513		port@1 {
    514			endpoint {
    515				remote-endpoint = <&sn65dsi86_in>;
    516				data-lanes = <0 1 2 3>;
    517			};
    518		};
    519	};
    520};
    521
    522&dsi0_phy {
    523	status = "okay";
    524	vdds-supply = <&vdda_mipi_dsi0_pll>;
    525};
    526
    527edp_brij_i2c: &i2c3 {
    528	status = "okay";
    529	clock-frequency = <400000>;
    530
    531	sn65dsi86_bridge: bridge@2d {
    532		compatible = "ti,sn65dsi86";
    533		reg = <0x2d>;
    534		pinctrl-names = "default";
    535		pinctrl-0 = <&edp_brij_en &edp_brij_irq>;
    536
    537		interrupt-parent = <&tlmm>;
    538		interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
    539
    540		enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
    541
    542		vpll-supply = <&src_pp1800_s4a>;
    543		vccio-supply = <&src_pp1800_s4a>;
    544		vcca-supply = <&src_pp1200_l2a>;
    545		vcc-supply = <&src_pp1200_l2a>;
    546
    547		clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
    548		clock-names = "refclk";
    549
    550		no-hpd;
    551
    552		ports {
    553			#address-cells = <1>;
    554			#size-cells = <0>;
    555
    556			port@0 {
    557				reg = <0>;
    558				sn65dsi86_in: endpoint {
    559					remote-endpoint = <&dsi0_out>;
    560				};
    561			};
    562
    563			port@1 {
    564				reg = <1>;
    565				sn65dsi86_out: endpoint {
    566					remote-endpoint = <&panel_in_edp>;
    567				};
    568			};
    569		};
    570	};
    571};
    572
    573ap_pen_1v8: &i2c11 {
    574	status = "okay";
    575	clock-frequency = <400000>;
    576
    577	digitizer@9 {
    578		compatible = "wacom,w9013", "hid-over-i2c";
    579		reg = <0x9>;
    580		pinctrl-names = "default";
    581		pinctrl-0 = <&pen_irq_l>, <&pen_pdct_l>, <&pen_rst_l>;
    582
    583		vdd-supply = <&pp3300_dx_pen>;
    584		vddl-supply = <&pp1800_dx_pen>;
    585		post-power-on-delay-ms = <100>;
    586
    587		interrupt-parent = <&tlmm>;
    588		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
    589
    590		hid-descr-addr = <0x1>;
    591	};
    592};
    593
    594amp_i2c: &i2c12 {
    595	status = "okay";
    596	clock-frequency = <400000>;
    597};
    598
    599ap_ts_i2c: &i2c14 {
    600	status = "okay";
    601	clock-frequency = <400000>;
    602
    603	touchscreen@10 {
    604		compatible = "elan,ekth3500";
    605		reg = <0x10>;
    606		pinctrl-names = "default";
    607		pinctrl-0 = <&ts_int_l &ts_reset_l>;
    608
    609		interrupt-parent = <&tlmm>;
    610		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
    611
    612		vcc33-supply = <&src_pp3300_l28a>;
    613
    614		reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
    615	};
    616};
    617
    618&gmu {
    619	status = "okay";
    620};
    621
    622&gpu {
    623	status = "okay";
    624};
    625
    626&ipa {
    627	status = "okay";
    628	modem-init;
    629};
    630
    631&lpasscc {
    632	status = "okay";
    633};
    634
    635&mdss {
    636	status = "okay";
    637};
    638
    639/*
    640 * Cheza fw does not properly program the GPU aperture to allow the
    641 * GPU to update the SMMU pagetables for context switches.  Work
    642 * around this by dropping the "qcom,adreno-smmu" compat string.
    643 */
    644&adreno_smmu {
    645	compatible = "qcom,sdm845-smmu-v2", "qcom,smmu-v2";
    646};
    647
    648&mss_pil {
    649	status = "okay";
    650
    651	iommus = <&apps_smmu 0x781 0x0>,
    652		 <&apps_smmu 0x724 0x3>;
    653};
    654
    655&pm8998_pwrkey {
    656	status = "disabled";
    657};
    658
    659&qupv3_id_0 {
    660	status = "okay";
    661	iommus = <&apps_smmu 0x0 0x3>;
    662};
    663
    664&qupv3_id_1 {
    665	status = "okay";
    666	iommus = <&apps_smmu 0x6c0 0x3>;
    667};
    668
    669&sdhc_2 {
    670	status = "okay";
    671
    672	pinctrl-names = "default";
    673	pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_cd_odl>;
    674
    675	vmmc-supply = <&src_pp2950_l21a>;
    676	vqmmc-supply = <&vddpx_2>;
    677
    678	cd-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
    679};
    680
    681&spi0 {
    682	status = "okay";
    683};
    684
    685&spi5 {
    686	status = "okay";
    687
    688	tpm@0 {
    689		compatible = "google,cr50";
    690		reg = <0>;
    691		pinctrl-names = "default";
    692		pinctrl-0 = <&h1_ap_int_odl>;
    693		spi-max-frequency = <800000>;
    694		interrupt-parent = <&tlmm>;
    695		interrupts = <129 IRQ_TYPE_EDGE_RISING>;
    696	};
    697};
    698
    699&spi10 {
    700	status = "okay";
    701
    702	cros_ec: ec@0 {
    703		compatible = "google,cros-ec-spi";
    704		reg = <0>;
    705		interrupt-parent = <&tlmm>;
    706		interrupts = <122 IRQ_TYPE_LEVEL_LOW>;
    707		pinctrl-names = "default";
    708		pinctrl-0 = <&ec_ap_int_l>;
    709		spi-max-frequency = <3000000>;
    710
    711		cros_ec_pwm: pwm {
    712			compatible = "google,cros-ec-pwm";
    713			#pwm-cells = <1>;
    714		};
    715
    716		i2c_tunnel: i2c-tunnel {
    717			compatible = "google,cros-ec-i2c-tunnel";
    718			google,remote-bus = <0>;
    719			#address-cells = <1>;
    720			#size-cells = <0>;
    721		};
    722	};
    723};
    724
    725#include <arm/cros-ec-keyboard.dtsi>
    726#include <arm/cros-ec-sbs.dtsi>
    727
    728&uart6 {
    729	status = "okay";
    730
    731	bluetooth: wcn3990-bt {
    732		compatible = "qcom,wcn3990-bt";
    733		vddio-supply = <&src_pp1800_s4a>;
    734		vddxo-supply = <&pp1800_l7a_wcn3990>;
    735		vddrf-supply = <&src_pp1300_l17a>;
    736		vddch0-supply = <&pp3300_l25a_ch0_wcn3990>;
    737		max-speed = <3200000>;
    738	};
    739};
    740
    741&uart9 {
    742	status = "okay";
    743};
    744
    745&ufs_mem_hc {
    746	status = "okay";
    747
    748	reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
    749
    750	vcc-supply = <&src_pp2950_l20a>;
    751	vcc-max-microamp = <600000>;
    752};
    753
    754&ufs_mem_phy {
    755	status = "okay";
    756
    757	vdda-phy-supply = <&vdda_ufs1_core>;
    758	vdda-pll-supply = <&vdda_ufs1_1p2>;
    759};
    760
    761&usb_1 {
    762	status = "okay";
    763
    764	/* We'll use this as USB 2.0 only */
    765	qcom,select-utmi-as-pipe-clk;
    766};
    767
    768&usb_1_dwc3 {
    769	/*
    770	 * The hardware design intends this port to be hooked up in peripheral
    771	 * mode, so we'll hardcode it here.  Some details:
    772	 * - SDM845 expects only a single Type C connector so it has only one
    773	 *   native Type C port but cheza has two Type C connectors.
    774	 * - The only source of DP is the single native Type C port.
    775	 * - On cheza we want to be able to hook DP up to _either_ of the
    776	 *   two Type C connectors and want to be able to achieve 4 lanes of DP.
    777	 * - When you configure a Type C port for 4 lanes of DP you lose USB3.
    778	 * - In order to make everything work, the native Type C port is always
    779	 *   configured as 4-lanes DP so it's always available.
    780	 * - The extra USB3 port on SDM845 goes to a USB 3 hub which is then
    781	 *   sent to the two Type C connectors.
    782	 * - The extra USB2 lines from the native Type C port are always
    783	 *   setup as "peripheral" so that we can mux them over to one connector
    784	 *   or the other if someone needs the connector configured as a gadget
    785	 *   (but they only get USB2 speeds).
    786	 *
    787	 * All the hardware muxes would allow us to hook things up in different
    788	 * ways to some potential benefit for static configurations (you could
    789	 * achieve extra USB2 bandwidth by using two different ports for the
    790	 * two connectors or possibly even get USB3 peripheral mode), but in
    791	 * each case you end up forcing to disconnect/reconnect an in-use
    792	 * USB session in some cases depending on what you hotplug into the
    793	 * other connector.  Thus hardcoding this as peripheral makes sense.
    794	 */
    795	dr_mode = "peripheral";
    796
    797	/*
    798	 * We always need the high speed pins as 4-lanes DP in case someone
    799	 * hotplugs a DP peripheral.  Thus limit this port to a max of high
    800	 * speed.
    801	 */
    802	maximum-speed = "high-speed";
    803
    804	/*
    805	 * We don't need the usb3-phy since we run in highspeed mode always, so
    806	 * re-define these properties removing the superspeed USB PHY reference.
    807	 */
    808	phys = <&usb_1_hsphy>;
    809	phy-names = "usb2-phy";
    810};
    811
    812&usb_1_hsphy {
    813	status = "okay";
    814
    815	vdd-supply = <&vdda_usb1_ss_core>;
    816	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
    817	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
    818
    819	qcom,imp-res-offset-value = <8>;
    820	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
    821	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
    822	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
    823};
    824
    825&usb_2 {
    826	status = "okay";
    827};
    828
    829&usb_2_dwc3 {
    830	/* We have this hooked up to a hub and we always use in host mode */
    831	dr_mode = "host";
    832};
    833
    834&usb_2_hsphy {
    835	status = "okay";
    836
    837	vdd-supply = <&vdda_usb2_ss_core>;
    838	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
    839	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
    840
    841	qcom,imp-res-offset-value = <8>;
    842	qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
    843};
    844
    845&usb_2_qmpphy {
    846	status = "okay";
    847
    848	vdda-phy-supply = <&vdda_usb2_ss_1p2>;
    849	vdda-pll-supply = <&vdda_usb2_ss_core>;
    850};
    851
    852&wifi {
    853	status = "okay";
    854
    855	vdd-0.8-cx-mx-supply = <&src_pp800_l5a >;
    856	vdd-1.8-xo-supply = <&pp1800_l7a_wcn3990>;
    857	vdd-1.3-rfa-supply = <&src_pp1300_l17a>;
    858	vdd-3.3-ch0-supply = <&pp3300_l25a_ch0_wcn3990>;
    859};
    860
    861/* PINCTRL - additions to nodes defined in sdm845.dtsi */
    862
    863&qspi_cs0 {
    864	pinconf {
    865		pins = "gpio90";
    866		bias-disable;
    867	};
    868};
    869
    870&qspi_clk {
    871	pinconf {
    872		pins = "gpio95";
    873		bias-disable;
    874	};
    875};
    876
    877&qspi_data01 {
    878	pinconf {
    879		pins = "gpio91", "gpio92";
    880
    881		/* High-Z when no transfers; nice to park the lines */
    882		bias-pull-up;
    883	};
    884};
    885
    886&qup_i2c3_default {
    887	pinconf {
    888		pins = "gpio41", "gpio42";
    889		drive-strength = <2>;
    890
    891		/* Has external pullup */
    892		bias-disable;
    893	};
    894};
    895
    896&qup_i2c11_default {
    897	pinconf {
    898		pins = "gpio31", "gpio32";
    899		drive-strength = <2>;
    900
    901		/* Has external pullup */
    902		bias-disable;
    903	};
    904};
    905
    906&qup_i2c12_default {
    907	pinconf {
    908		pins = "gpio49", "gpio50";
    909		drive-strength = <2>;
    910
    911		/* Has external pullup */
    912		bias-disable;
    913	};
    914};
    915
    916&qup_i2c14_default {
    917	pinconf {
    918		pins = "gpio33", "gpio34";
    919		drive-strength = <2>;
    920
    921		/* Has external pullup */
    922		bias-disable;
    923	};
    924};
    925
    926&qup_spi0_default {
    927	pinconf {
    928		pins = "gpio0", "gpio1", "gpio2", "gpio3";
    929		drive-strength = <2>;
    930		bias-disable;
    931	};
    932};
    933
    934&qup_spi5_default {
    935	pinconf {
    936		pins = "gpio85", "gpio86", "gpio87", "gpio88";
    937		drive-strength = <2>;
    938		bias-disable;
    939	};
    940};
    941
    942&qup_spi10_default {
    943	pinconf {
    944		pins = "gpio53", "gpio54", "gpio55", "gpio56";
    945		drive-strength = <2>;
    946		bias-disable;
    947	};
    948};
    949
    950&qup_uart6_default {
    951	/* Change pinmux to all 4 pins since CTS and RTS are connected */
    952	pinmux {
    953		pins = "gpio45", "gpio46",
    954		       "gpio47", "gpio48";
    955	};
    956
    957	pinconf-cts {
    958		/*
    959		 * Configure a pull-down on 45 (CTS) to match the pull of
    960		 * the Bluetooth module.
    961		 */
    962		pins = "gpio45";
    963		bias-pull-down;
    964	};
    965
    966	pinconf-rts-tx {
    967		/* We'll drive 46 (RTS) and 47 (TX), so no pull */
    968		pins = "gpio46", "gpio47";
    969		drive-strength = <2>;
    970		bias-disable;
    971	};
    972
    973	pinconf-rx {
    974		/*
    975		 * Configure a pull-up on 48 (RX). This is needed to avoid
    976		 * garbage data when the TX pin of the Bluetooth module is
    977		 * in tri-state (module powered off or not driving the
    978		 * signal yet).
    979		 */
    980		pins = "gpio48";
    981		bias-pull-up;
    982	};
    983};
    984
    985&qup_uart9_default {
    986	pinconf-tx {
    987		pins = "gpio4";
    988		drive-strength = <2>;
    989		bias-disable;
    990	};
    991
    992	pinconf-rx {
    993		pins = "gpio5";
    994		drive-strength = <2>;
    995		bias-pull-up;
    996	};
    997};
    998
    999/* PINCTRL - board-specific pinctrl */
   1000&pm8005_gpio {
   1001	gpio-line-names = "",
   1002			  "",
   1003			  "SLB",
   1004			  "";
   1005};
   1006
   1007&pm8998_adc {
   1008	adc-chan@4d {
   1009		reg = <ADC5_AMUX_THM1_100K_PU>;
   1010		label = "sdm_temp";
   1011	};
   1012
   1013	adc-chan@4e {
   1014		reg = <ADC5_AMUX_THM2_100K_PU>;
   1015		label = "quiet_temp";
   1016	};
   1017
   1018	adc-chan@4f {
   1019		reg = <ADC5_AMUX_THM3_100K_PU>;
   1020		label = "lte_temp_1";
   1021	};
   1022
   1023	adc-chan@50 {
   1024		reg = <ADC5_AMUX_THM4_100K_PU>;
   1025		label = "lte_temp_2";
   1026	};
   1027
   1028	adc-chan@51 {
   1029		reg = <ADC5_AMUX_THM5_100K_PU>;
   1030		label = "charger_temp";
   1031	};
   1032};
   1033
   1034&pm8998_gpio {
   1035	gpio-line-names = "",
   1036			  "",
   1037			  "SW_CTRL",
   1038			  "",
   1039			  "",
   1040			  "",
   1041			  "",
   1042			  "",
   1043			  "",
   1044			  "",
   1045			  "",
   1046			  "",
   1047			  "",
   1048			  "",
   1049			  "",
   1050			  "",
   1051			  "",
   1052			  "",
   1053			  "",
   1054			  "",
   1055			  "",
   1056			  "CFG_OPT1",
   1057			  "WCSS_PWR_REQ",
   1058			  "",
   1059			  "CFG_OPT2",
   1060			  "SLB";
   1061};
   1062
   1063&tlmm {
   1064	/*
   1065	 * pinctrl settings for pins that have no real owners.
   1066	 */
   1067	pinctrl-names = "default", "sleep";
   1068	pinctrl-0 = <&bios_flash_wp_r_l>,
   1069		    <&ap_suspend_l_deassert>;
   1070
   1071	pinctrl-1 = <&bios_flash_wp_r_l>,
   1072		    <&ap_suspend_l_assert>;
   1073
   1074	/*
   1075	 * Hogs prevent usermode from changing the value. A GPIO can be both
   1076	 * here and in the pinctrl section.
   1077	 */
   1078	ap-suspend-l-hog {
   1079		gpio-hog;
   1080		gpios = <126 GPIO_ACTIVE_LOW>;
   1081		output-low;
   1082	};
   1083
   1084	ap_edp_bklten: ap-edp-bklten {
   1085		pinmux {
   1086			pins = "gpio37";
   1087			function = "gpio";
   1088		};
   1089
   1090		pinconf {
   1091			pins = "gpio37";
   1092			drive-strength = <2>;
   1093			bias-disable;
   1094		};
   1095	};
   1096
   1097	bios_flash_wp_r_l: bios-flash-wp-r-l {
   1098		pinmux {
   1099			pins = "gpio128";
   1100			function = "gpio";
   1101			input-enable;
   1102		};
   1103
   1104		pinconf {
   1105			pins = "gpio128";
   1106			bias-disable;
   1107		};
   1108	};
   1109
   1110	ec_ap_int_l: ec-ap-int-l {
   1111		pinmux {
   1112		       pins = "gpio122";
   1113		       function = "gpio";
   1114		       input-enable;
   1115		};
   1116
   1117		pinconf {
   1118		       pins = "gpio122";
   1119		       bias-pull-up;
   1120		};
   1121	};
   1122
   1123	edp_brij_en: edp-brij-en {
   1124		pinmux {
   1125			pins = "gpio102";
   1126			function = "gpio";
   1127		};
   1128
   1129		pinconf {
   1130			pins = "gpio102";
   1131			drive-strength = <2>;
   1132			bias-disable;
   1133		};
   1134	};
   1135
   1136	edp_brij_irq: edp-brij-irq {
   1137		pinmux {
   1138			pins = "gpio10";
   1139			function = "gpio";
   1140		};
   1141
   1142		pinconf {
   1143			pins = "gpio10";
   1144			drive-strength = <2>;
   1145			bias-pull-down;
   1146		};
   1147	};
   1148
   1149	en_pp3300_dx_edp: en-pp3300-dx-edp {
   1150		pinmux {
   1151			pins = "gpio43";
   1152			function = "gpio";
   1153		};
   1154
   1155		pinconf {
   1156			pins = "gpio43";
   1157			drive-strength = <2>;
   1158			bias-disable;
   1159		};
   1160	};
   1161
   1162	h1_ap_int_odl: h1-ap-int-odl {
   1163		pinmux {
   1164			pins = "gpio129";
   1165			function = "gpio";
   1166			input-enable;
   1167		};
   1168
   1169		pinconf {
   1170			pins = "gpio129";
   1171			bias-pull-up;
   1172		};
   1173	};
   1174
   1175	pen_eject_odl: pen-eject-odl {
   1176		pinmux {
   1177			pins = "gpio119";
   1178			function = "gpio";
   1179			bias-pull-up;
   1180		};
   1181	};
   1182
   1183	pen_irq_l: pen-irq-l {
   1184		pinmux {
   1185			pins = "gpio24";
   1186			function = "gpio";
   1187		};
   1188
   1189		pinconf {
   1190			pins = "gpio24";
   1191
   1192			/* Has external pullup */
   1193			bias-disable;
   1194		};
   1195	};
   1196
   1197	pen_pdct_l: pen-pdct-l {
   1198		pinmux {
   1199			pins = "gpio63";
   1200			function = "gpio";
   1201		};
   1202
   1203		pinconf {
   1204			pins = "gpio63";
   1205
   1206			/* Has external pullup */
   1207			bias-disable;
   1208		};
   1209	};
   1210
   1211	pen_rst_l: pen-rst-l {
   1212		pinmux  {
   1213			pins = "gpio23";
   1214			function = "gpio";
   1215		};
   1216
   1217		pinconf {
   1218			pins = "gpio23";
   1219			bias-disable;
   1220			drive-strength = <2>;
   1221
   1222			/*
   1223			 * The pen driver doesn't currently support
   1224			 * driving this reset line.  By specifying
   1225			 * output-high here we're relying on the fact
   1226			 * that this pin has a default pulldown at boot
   1227			 * (which makes sure the pen was in reset if it
   1228			 * was powered) and then we set it high here to
   1229			 * take it out of reset.  Better would be if the
   1230			 * pen driver could control this and we could
   1231			 * remove "output-high" here.
   1232			 */
   1233			output-high;
   1234		};
   1235	};
   1236
   1237	sdc2_clk: sdc2-clk {
   1238		pinconf {
   1239			pins = "sdc2_clk";
   1240			bias-disable;
   1241
   1242			/*
   1243			 * It seems that mmc_test reports errors if drive
   1244			 * strength is not 16.
   1245			 */
   1246			drive-strength = <16>;
   1247		};
   1248	};
   1249
   1250	sdc2_cmd: sdc2-cmd {
   1251		pinconf {
   1252			pins = "sdc2_cmd";
   1253			bias-pull-up;
   1254			drive-strength = <16>;
   1255		};
   1256	};
   1257
   1258	sdc2_data: sdc2-data {
   1259		pinconf {
   1260			pins = "sdc2_data";
   1261			bias-pull-up;
   1262			drive-strength = <16>;
   1263		};
   1264	};
   1265
   1266	sd_cd_odl: sd-cd-odl {
   1267		pinmux {
   1268			pins = "gpio44";
   1269			function = "gpio";
   1270		};
   1271
   1272		pinconf {
   1273			pins = "gpio44";
   1274			bias-pull-up;
   1275		};
   1276	};
   1277
   1278	ts_int_l: ts-int-l {
   1279		pinmux  {
   1280			pins = "gpio125";
   1281			function = "gpio";
   1282		};
   1283
   1284		pinconf {
   1285			pins = "gpio125";
   1286			bias-pull-up;
   1287		};
   1288	};
   1289
   1290	ts_reset_l: ts-reset-l {
   1291		pinmux  {
   1292			pins = "gpio118";
   1293			function = "gpio";
   1294		};
   1295
   1296		pinconf {
   1297			pins = "gpio118";
   1298			bias-disable;
   1299			drive-strength = <2>;
   1300		};
   1301	};
   1302
   1303	ap_suspend_l_assert: ap_suspend_l_assert {
   1304		config {
   1305			pins = "gpio126";
   1306			function = "gpio";
   1307			bias-no-pull;
   1308			drive-strength = <2>;
   1309			output-low;
   1310		};
   1311	};
   1312
   1313	ap_suspend_l_deassert: ap_suspend_l_deassert {
   1314		config {
   1315			pins = "gpio126";
   1316			function = "gpio";
   1317			bias-no-pull;
   1318			drive-strength = <2>;
   1319			output-high;
   1320		};
   1321	};
   1322};
   1323
   1324&venus {
   1325	status = "okay";
   1326
   1327	video-firmware {
   1328		iommus = <&apps_smmu 0x10b2 0x0>;
   1329	};
   1330};