File Index
Files and directories
Sign in
FILE

sc7180-trogdor.dtsi

File preview with syntax highlighting.

linux-6.19.14/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi DEVICETREE
   1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
   2/*
   3 * Google Trogdor device tree source (common between revisions)
   4 *
   5 * Copyright 2019 Google LLC.
   6 */
   7
   8#include <dt-bindings/gpio/gpio.h>
   9#include <dt-bindings/input/gpio-keys.h>
  10#include <dt-bindings/input/input.h>
  11#include <dt-bindings/leds/common.h>
  12#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
  13#include <dt-bindings/sound/sc7180-lpass.h>
  14
  15#include "sc7180.dtsi"
  16#include "sc7180-firmware-tfa.dtsi"
  17/* PMICs depend on spmi_bus label and so must come after sc7180.dtsi */
  18#include "pm6150.dtsi"
  19#include "pm6150l.dtsi"
  20
  21/ {
  22	thermal-zones {
  23		charger_thermal: charger-thermal {
  24			thermal-sensors = <&pm6150_adc_tm 0>;
  25
  26			trips {
  27				charger-crit {
  28					temperature = <125000>;
  29					hysteresis = <1000>;
  30					type = "critical";
  31				};
  32			};
  33		};
  34	};
  35};
  36
  37/*
  38 * Reserved memory changes
  39 *
  40 * Delete all unused memory nodes and define the peripheral memory regions
  41 * required by the board dts.
  42 */
  43
  44/delete-node/ &gpu_zap_shader;
  45/delete-node/ &hyp_mem;
  46/delete-node/ &ipa_fw_mem;
  47/delete-node/ &xbl_mem;
  48/delete-node/ &aop_mem;
  49/delete-node/ &sec_apps_mem;
  50/delete-node/ &tz_mem;
  51
  52/* Increase the size from 2MB to 8MB */
  53&rmtfs_mem {
  54	reg = <0x0 0x94600000 0x0 0x800000>;
  55};
  56
  57/ {
  58	reserved-memory {
  59		atf_mem: memory@80b00000 {
  60			reg = <0x0 0x80b00000 0x0 0x100000>;
  61			no-map;
  62		};
  63
  64		mpss_mem: memory@86000000 {
  65			reg = <0x0 0x86000000 0x0 0x2000000>;
  66			no-map;
  67		};
  68
  69		venus_mem: memory@8f600000 {
  70			reg = <0 0x8f600000 0 0x500000>;
  71			no-map;
  72		};
  73
  74		wlan_mem: memory@94100000 {
  75			reg = <0x0 0x94100000 0x0 0x200000>;
  76			no-map;
  77		};
  78
  79		mba_mem: memory@94400000 {
  80			reg = <0x0 0x94400000 0x0 0x200000>;
  81			no-map;
  82		};
  83
  84		mdata_mem: mpss-metadata {
  85			alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
  86			size = <0x0 0x4000>;
  87			no-map;
  88		};
  89	};
  90
  91	aliases {
  92		bluetooth0 = &bluetooth;
  93		hsuart0 = &uart3;
  94		serial0 = &uart8;
  95		wifi0 = &wifi;
  96	};
  97
  98	chosen {
  99		stdout-path = "serial0:115200n8";
 100	};
 101
 102	/* FIXED REGULATORS - parents above children */
 103
 104	/* This is the top level supply and variable voltage */
 105	ppvar_sys: ppvar-sys-regulator {
 106		compatible = "regulator-fixed";
 107		regulator-name = "ppvar_sys";
 108		regulator-always-on;
 109		regulator-boot-on;
 110	};
 111
 112	/* This divides ppvar_sys by 2, so voltage is variable */
 113	src_vph_pwr: src-vph-pwr-regulator {
 114		compatible = "regulator-fixed";
 115		regulator-name = "src_vph_pwr";
 116
 117		/* EC turns on with switchcap_on; always on for AP */
 118		regulator-always-on;
 119		regulator-boot-on;
 120
 121		vin-supply = <&ppvar_sys>;
 122	};
 123
 124	pp5000_a: pp5000-a-regulator {
 125		compatible = "regulator-fixed";
 126		regulator-name = "pp5000_a";
 127
 128		/* EC turns on with en_pp5000_a; always on for AP */
 129		regulator-always-on;
 130		regulator-boot-on;
 131		regulator-min-microvolt = <5000000>;
 132		regulator-max-microvolt = <5000000>;
 133
 134		vin-supply = <&ppvar_sys>;
 135	};
 136
 137	pp3300_a: pp3300-a-regulator {
 138		compatible = "regulator-fixed";
 139		regulator-name = "pp3300_a";
 140
 141		/* EC turns on with en_pp3300_a; always on for AP */
 142		regulator-always-on;
 143		regulator-boot-on;
 144		regulator-min-microvolt = <3300000>;
 145		regulator-max-microvolt = <3300000>;
 146
 147		/*
 148		 * Actually should be pp3300 but that's practically an alias for
 149		 * pp3300_a so we use pp3300's vin-supply here to avoid one more
 150		 * node.
 151		 */
 152		vin-supply = <&ppvar_sys>;
 153	};
 154
 155	pp1800_ec:
 156	pp1800_sensors:
 157	pp1800_ldo: pp1800-ldo-regulator {
 158		compatible = "regulator-fixed";
 159		regulator-name = "pp1800_ldo";
 160
 161		/* EC turns on with hibernate_l; always on for AP */
 162		regulator-always-on;
 163		regulator-boot-on;
 164		regulator-min-microvolt = <1800000>;
 165		regulator-max-microvolt = <1800000>;
 166
 167		/*
 168		 * Actually should be pp1800_h1 but we don't have any need to
 169		 * model that so we use the parent of pp1800_h1.
 170		 */
 171		vin-supply = <&pp3300_a>;
 172	};
 173
 174	pp1800_uf_cam: pp1800-uf-cam-regulator {
 175		compatible = "regulator-fixed";
 176		regulator-name = "pp1800_uf_cam";
 177		status = "disabled";
 178
 179		regulator-min-microvolt = <1800000>;
 180		regulator-max-microvolt = <1800000>;
 181
 182		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
 183		enable-active-high;
 184		pinctrl-names = "default";
 185		pinctrl-0 = <&uf_cam_en>;
 186
 187		vin-supply = <&pp1800_ldo>;
 188		regulator-enable-ramp-delay = <1000>;
 189	};
 190
 191	pp1800_wf_cam: pp1800-wf-cam-regulator {
 192		compatible = "regulator-fixed";
 193		regulator-name = "pp1800_wf_cam";
 194		status = "disabled";
 195
 196		regulator-min-microvolt = <1800000>;
 197		regulator-max-microvolt = <1800000>;
 198
 199		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
 200		enable-active-high;
 201		pinctrl-names = "default";
 202		pinctrl-0 = <&wf_cam_en>;
 203
 204		vin-supply = <&pp1800_ldo>;
 205		regulator-enable-ramp-delay = <1000>;
 206	};
 207
 208	pp2800_uf_cam: pp2800-uf-cam-regulator {
 209		compatible = "regulator-fixed";
 210		regulator-name = "pp2800_uf_cam";
 211		status = "disabled";
 212
 213		regulator-min-microvolt = <2850000>;
 214		regulator-max-microvolt = <2850000>;
 215
 216		gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
 217		enable-active-high;
 218		/*
 219		 * The pinconf can only be referenced once so we put it on the
 220		 * first regulator and comment it out here.
 221		 * pinctrl-names = "default";
 222		 * pinctrl-0 = <&uf_cam_en>;
 223		 */
 224
 225		vin-supply = <&pp3300_a>;
 226	};
 227
 228	pp2800_vcm_wf_cam:
 229	pp2800_wf_cam: pp2800-wf-cam-regulator {
 230		compatible = "regulator-fixed";
 231		regulator-name = "pp2800_wf_cam";
 232		status = "disabled";
 233
 234		regulator-min-microvolt = <2850000>;
 235		regulator-max-microvolt = <2850000>;
 236
 237		gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
 238		enable-active-high;
 239		/*
 240		 * The pinconf can only be referenced once so we put it on the
 241		 * first regulator and comment it out here.
 242		 * pinctrl-names = "default";
 243		 * pinctrl-0 = <&wf_cam_en>;
 244		 */
 245
 246		vin-supply = <&pp3300_a>;
 247	};
 248
 249	pp3300_audio:
 250	pp3300_codec: pp3300-codec-regulator {
 251		compatible = "regulator-fixed";
 252		regulator-name = "pp3300_codec";
 253
 254		regulator-min-microvolt = <3300000>;
 255		regulator-max-microvolt = <3300000>;
 256
 257		gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
 258		enable-active-high;
 259		pinctrl-names = "default";
 260		pinctrl-0 = <&en_pp3300_codec>;
 261
 262		vin-supply = <&pp3300_a>;
 263	};
 264
 265	pp3300_dx_edp:
 266	pp3300_ts: pp3300-dx-edp-regulator {
 267		compatible = "regulator-fixed";
 268		regulator-name = "pp3300_dx_edp";
 269
 270		regulator-min-microvolt = <3300000>;
 271		regulator-max-microvolt = <3300000>;
 272
 273		gpio = <&tlmm 30 GPIO_ACTIVE_HIGH>;
 274		enable-active-high;
 275		pinctrl-names = "default";
 276		pinctrl-0 = <&en_pp3300_dx_edp>;
 277
 278		vin-supply = <&pp3300_a>;
 279	};
 280
 281	pp3300_fp_tp: pp3300-fp-tp-regulator {
 282		compatible = "regulator-fixed";
 283		regulator-name = "pp3300_fp_tp";
 284
 285		regulator-min-microvolt = <3300000>;
 286		regulator-max-microvolt = <3300000>;
 287
 288		/* AP turns on with PP1800_VIO_OUT; always on for AP */
 289		regulator-always-on;
 290		regulator-boot-on;
 291
 292		vin-supply = <&pp3300_a>;
 293	};
 294
 295	pp3300_hub: pp3300-hub-regulator {
 296		compatible = "regulator-fixed";
 297		regulator-name = "pp3300_hub";
 298
 299		regulator-min-microvolt = <3300000>;
 300		regulator-max-microvolt = <3300000>;
 301
 302		gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
 303		enable-active-high;
 304		pinctrl-names = "default";
 305		pinctrl-0 = <&en_pp3300_hub>;
 306
 307		/* The BIOS leaves this regulator on */
 308		regulator-boot-on;
 309
 310		vin-supply = <&pp3300_a>;
 311	};
 312
 313	/* BOARD-SPECIFIC TOP LEVEL NODES */
 314
 315	backlight: backlight {
 316		compatible = "pwm-backlight";
 317
 318		/* The panels don't seem to like anything below ~ 5% */
 319		brightness-levels = <
 320			196 256 324 400 484 576 676 784 900 1024 1156 1296
 321			1444 1600 1764 1936 2116 2304 2500 2704 2916 3136
 322			3364 3600 3844 4096
 323		>;
 324		num-interpolated-steps = <64>;
 325		default-brightness-level = <951>;
 326
 327		pwms = <&cros_ec_pwm 1>;
 328		enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
 329		power-supply = <&ppvar_sys>;
 330		pinctrl-names = "default";
 331		pinctrl-0 = <&ap_edp_bklten>;
 332	};
 333
 334	gpio_keys: gpio-keys {
 335		compatible = "gpio-keys";
 336		status = "disabled";
 337		pinctrl-names = "default";
 338		pinctrl-0 = <&pen_pdct_l>;
 339
 340		pen_insert: switch-pen-insert {
 341			label = "Pen Insert";
 342
 343			/* Insert = low, eject = high */
 344			gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
 345			linux,code = <SW_PEN_INSERTED>;
 346			linux,input-type = <EV_SW>;
 347			wakeup-event-action = <EV_ACT_DEASSERTED>;
 348			wakeup-source;
 349		};
 350	};
 351
 352	max98360a: audio-codec-0 {
 353		compatible = "maxim,max98360a";
 354		pinctrl-names = "default";
 355		pinctrl-0 = <&amp_en>;
 356		sdmode-gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
 357		#sound-dai-cells = <0>;
 358	};
 359
 360	pwmleds: pwmleds {
 361		compatible = "pwm-leds";
 362		status = "disabled";
 363
 364		keyboard_backlight: led-0 {
 365			label = "cros_ec::kbd_backlight";
 366			function = LED_FUNCTION_KBD_BACKLIGHT;
 367			pwms = <&cros_ec_pwm 0>;
 368			max-brightness = <1023>;
 369		};
 370	};
 371
 372	sound: sound {
 373		compatible = "google,sc7180-trogdor";
 374
 375		audio-routing =
 376			"Headphone Jack", "HPOL",
 377			"Headphone Jack", "HPOR";
 378
 379		#address-cells = <1>;
 380		#size-cells = <0>;
 381
 382		dai-link@0 {
 383			link-name = "MultiMedia0";
 384			reg = <MI2S_PRIMARY>;
 385			cpu {
 386				sound-dai = <&lpass_cpu MI2S_PRIMARY>;
 387			};
 388
 389			sound_multimedia0_codec: codec {
 390				sound-dai = <&alc5682 0 /* aif1 */>;
 391			};
 392		};
 393
 394		dai-link@1 {
 395			link-name = "MultiMedia1";
 396			reg = <MI2S_SECONDARY>;
 397			cpu {
 398				sound-dai = <&lpass_cpu MI2S_SECONDARY>;
 399			};
 400
 401			sound_multimedia1_codec: codec {
 402				sound-dai = <&max98360a>;
 403			};
 404		};
 405
 406		dai-link@5 {
 407			link-name = "MultiMedia2";
 408			reg = <LPASS_DP_RX>;
 409			cpu {
 410				sound-dai = <&lpass_cpu LPASS_DP_RX>;
 411			};
 412
 413			codec {
 414				sound-dai = <&mdss_dp>;
 415			};
 416		};
 417	};
 418};
 419
 420&qfprom {
 421	vcc-supply = <&pp1800_l11a>;
 422};
 423
 424&qspi {
 425	status = "okay";
 426	pinctrl-names = "default", "sleep";
 427	pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>;
 428	pinctrl-1 = <&qspi_sleep>;
 429
 430	flash@0 {
 431		compatible = "jedec,spi-nor";
 432		reg = <0>;
 433
 434		spi-max-frequency = <37500000>;
 435		spi-tx-bus-width = <2>;
 436		spi-rx-bus-width = <2>;
 437	};
 438};
 439
 440&apps_rsc {
 441	regulators-0 {
 442		compatible = "qcom,pm6150-rpmh-regulators";
 443		qcom,pmic-id = "a";
 444
 445		vddpx_1:
 446		vdd2:
 447		pp1125_s1a: smps1 {
 448			regulator-min-microvolt = <1128000>;
 449			regulator-max-microvolt = <1128000>;
 450		};
 451
 452		vdd_qlink_lv:
 453		vdd_qlink_lv_ck:
 454		vdd_qusb_hs0_core:
 455		vdd_ufs1_core:
 456		vdda_mipi_csi0_0p9:
 457		vdda_mipi_csi1_0p9:
 458		vdda_mipi_csi2_0p9:
 459		vdda_mipi_csi3_0p9:
 460		vdda_mipi_dsi0_pll:
 461		vdda_pll_cc_ebi01:
 462		vdda_qrefs_0p9:
 463		vdda_usb_ss_dp_core:
 464		pp900_l4a: ldo4 {
 465			regulator-min-microvolt = <824000>;
 466			regulator-max-microvolt = <928000>;
 467			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 468		};
 469
 470		vdd_cx_wlan:
 471		pp800_l9a: ldo9 {
 472			regulator-min-microvolt = <488000>;
 473			regulator-max-microvolt = <800000>;
 474			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 475		};
 476
 477		vdd1:
 478		vddpx_3:
 479		vddpx_7:
 480		vio_in:
 481		pp1800_l10a: ldo10 {
 482			regulator-min-microvolt = <1800000>;
 483			regulator-max-microvolt = <1800000>;
 484			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 485		};
 486
 487		vdd_qfprom:
 488		vdda_apc1_cs_1p8:
 489		vdda_qrefs_1p8:
 490		vdda_qusb_hs0_1p8:
 491		vddpx_11:
 492		vreg_bb_clk:
 493		pp1800_l11a: ldo11 {
 494			regulator-min-microvolt = <1800000>;
 495			regulator-max-microvolt = <1800000>;
 496			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 497		};
 498
 499		mcp_vccq:
 500		pp1800_l12a_r: ldo12 {
 501			regulator-min-microvolt = <1800000>;
 502			regulator-max-microvolt = <1800000>;
 503			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 504		};
 505
 506		/*
 507		 * On trogdor this needs to match l10a since we use it to
 508		 * give power to things like SPI flash which communicate back
 509		 * on lines powered by l10a.  Thus we force to 1.8V.
 510		 */
 511		pp1800_l13a: ldo13 {
 512			regulator-min-microvolt = <1800000>;
 513			regulator-max-microvolt = <1800000>;
 514			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 515			regulator-always-on;
 516			regulator-boot-on;
 517		};
 518
 519		pp1800_prox:
 520		pp1800_l14a: ldo14 {
 521			regulator-min-microvolt = <1800000>;
 522			regulator-max-microvolt = <1800000>;
 523			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 524		};
 525
 526		pp1800_alc5682:
 527		pp1800_l15a: ldo15 {
 528			regulator-min-microvolt = <1800000>;
 529			regulator-max-microvolt = <1800000>;
 530			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 531		};
 532
 533		vdda_qusb_hs0_3p1:
 534		vdd_pdphy:
 535		pp3100_l17a: ldo17 {
 536			regulator-min-microvolt = <2920000>;
 537			regulator-max-microvolt = <3232000>;
 538			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 539		};
 540
 541		pp1800_pen:
 542		pp1800_l18a: ldo18 {
 543			regulator-min-microvolt = <1800000>;
 544			regulator-max-microvolt = <1800000>;
 545			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 546		};
 547
 548		mcp_vcc:
 549		pp2850_l19a: ldo19 {
 550			regulator-min-microvolt = <2960000>;
 551			regulator-max-microvolt = <2960000>;
 552			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 553		};
 554	};
 555
 556	regulators-1 {
 557		compatible = "qcom,pm6150l-rpmh-regulators";
 558		qcom,pmic-id = "c";
 559
 560		pp1300_s8c: smps8 {
 561			regulator-min-microvolt = <1120000>;
 562			regulator-max-microvolt = <1408000>;
 563		};
 564
 565		pp1800_l1c: ldo1 {
 566			regulator-min-microvolt = <1616000>;
 567			regulator-max-microvolt = <1984000>;
 568			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 569		};
 570
 571		vdd_wcss_adc_dac:
 572		pp1300_l2c: ldo2 {
 573			regulator-min-microvolt = <1168000>;
 574			regulator-max-microvolt = <1304000>;
 575			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 576		};
 577
 578		pp1200_brij:
 579		vdd_ufs1_1p2:
 580		vdda_csi0_1p25:
 581		vdda_csi1_1p25:
 582		vdda_csi2_1p25:
 583		vdda_csi3_1p25:
 584		vdda_hv_ebi0:
 585		vdda_mipi_dsi0_1p2:
 586		vdda_usb_ss_dp_1p2:
 587		vddpx_10:
 588		pp1200_l3c: ldo3 {
 589			regulator-min-microvolt = <1200000>;
 590			regulator-max-microvolt = <1200000>;
 591			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 592		};
 593
 594		vddpx_2:
 595		ppvar_l6c: ldo6 {
 596			regulator-min-microvolt = <1800000>;
 597			regulator-max-microvolt = <2952000>;
 598			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 599		};
 600
 601		pp3300_l7c: ldo7 {
 602			regulator-min-microvolt = <3304000>;
 603			regulator-max-microvolt = <3304000>;
 604			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 605		};
 606
 607		pp1800_brij_vccio:
 608		pp1800_edp_vpll:
 609		pp1800_l8c: ldo8 {
 610			regulator-min-microvolt = <1800000>;
 611			regulator-max-microvolt = <1800000>;
 612			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 613		};
 614
 615		pp2950_l9c: ldo9 {
 616			regulator-min-microvolt = <2952000>;
 617			regulator-max-microvolt = <2952000>;
 618			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 619		};
 620
 621		pp3300_l10c: ldo10 {
 622			regulator-min-microvolt = <3000000>;
 623			regulator-max-microvolt = <3400000>;
 624			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 625		};
 626
 627		pp3300_l11c: ldo11 {
 628			regulator-min-microvolt = <3000000>;
 629			regulator-max-microvolt = <3400000>;
 630			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 631		};
 632
 633		src_vreg_bob: bob {
 634			regulator-min-microvolt = <3008000>;
 635			regulator-max-microvolt = <3960000>;
 636			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
 637		};
 638	};
 639};
 640
 641ap_ec_spi: &spi6 {
 642	status = "okay";
 643	cros_ec: ec@0 {
 644		compatible = "google,cros-ec-spi";
 645		reg = <0>;
 646		interrupt-parent = <&tlmm>;
 647		interrupts = <94 IRQ_TYPE_LEVEL_LOW>;
 648		pinctrl-names = "default";
 649		pinctrl-0 = <&ap_ec_int_l>;
 650		spi-max-frequency = <3000000>;
 651		wakeup-source;
 652
 653		cros_ec_pwm: pwm {
 654			compatible = "google,cros-ec-pwm";
 655			#pwm-cells = <1>;
 656		};
 657
 658		i2c_tunnel: i2c-tunnel {
 659			compatible = "google,cros-ec-i2c-tunnel";
 660			google,remote-bus = <0>;
 661			#address-cells = <1>;
 662			#size-cells = <0>;
 663		};
 664
 665		typec {
 666			compatible = "google,cros-ec-typec";
 667			#address-cells = <1>;
 668			#size-cells = <0>;
 669
 670			usb_c0: connector@0 {
 671				compatible = "usb-c-connector";
 672				reg = <0>;
 673				label = "left";
 674				power-role = "dual";
 675				data-role = "host";
 676				try-power-role = "source";
 677			};
 678
 679			usb_c1: connector@1 {
 680				compatible = "usb-c-connector";
 681				reg = <1>;
 682				label = "right";
 683				power-role = "dual";
 684				data-role = "host";
 685				try-power-role = "source";
 686			};
 687		};
 688	};
 689};
 690
 691ap_h1_spi: &spi0 {
 692	status = "okay";
 693	cr50: tpm@0 {
 694		compatible = "google,cr50";
 695		reg = <0>;
 696		pinctrl-names = "default";
 697		pinctrl-0 = <&h1_ap_int_odl>;
 698		spi-max-frequency = <800000>;
 699		interrupt-parent = <&tlmm>;
 700		interrupts = <42 IRQ_TYPE_EDGE_RISING>;
 701	};
 702};
 703
 704&camcc {
 705	status = "disabled";
 706};
 707
 708ap_sar_sensor_i2c: &i2c5 {
 709	clock-frequency = <400000>;
 710
 711	ap_sar_sensor: proximity@28 {
 712		compatible = "semtech,sx9310";
 713		reg = <0x28>;
 714		#io-channel-cells = <1>;
 715		pinctrl-names = "default";
 716		pinctrl-0 = <&p_sensor_int_l>;
 717
 718		interrupt-parent = <&tlmm>;
 719		interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
 720
 721		vdd-supply = <&pp3300_a>;
 722		svdd-supply = <&pp1800_prox>;
 723
 724		label = "proximity-wifi";
 725	};
 726};
 727
 728ap_tp_i2c: &i2c7 {
 729	clock-frequency = <400000>;
 730
 731	trackpad: trackpad@15 {
 732		compatible = "elan,ekth3000";
 733		reg = <0x15>;
 734		pinctrl-names = "default";
 735		pinctrl-0 = <&tp_int_odl>;
 736
 737		interrupt-parent = <&tlmm>;
 738		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
 739
 740		vcc-supply = <&pp3300_fp_tp>;
 741
 742		wakeup-source;
 743	};
 744};
 745
 746hp_i2c: &i2c9 {
 747	status = "okay";
 748	clock-frequency = <400000>;
 749};
 750
 751&lpasscc {
 752	status = "okay";
 753};
 754
 755&lpass_cpu {
 756	status = "okay";
 757
 758	pinctrl-names = "default";
 759	pinctrl-0 = <&sec_mi2s_active>, <&pri_mi2s_active>, <&pri_mi2s_mclk_active>;
 760
 761	#address-cells = <1>;
 762	#size-cells = <0>;
 763
 764	dai-link@0 {
 765		reg = <MI2S_PRIMARY>;
 766		qcom,playback-sd-lines = <1>;
 767		qcom,capture-sd-lines = <0>;
 768	};
 769
 770	secondary_mi2s: dai-link@1 {
 771		reg = <MI2S_SECONDARY>;
 772		qcom,playback-sd-lines = <0>;
 773	};
 774
 775	dai-link@5 {
 776		reg = <LPASS_DP_RX>;
 777	};
 778};
 779
 780&lpass_hm {
 781	status = "okay";
 782};
 783
 784&mdss {
 785	status = "okay";
 786};
 787
 788&mdss_dp {
 789	status = "okay";
 790	pinctrl-names = "default";
 791	pinctrl-0 = <&dp_hot_plug_det>;
 792};
 793
 794&mdss_dp_out {
 795	data-lanes = <0 1>;
 796	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
 797};
 798
 799&mdss_dsi0 {
 800	status = "okay";
 801	vdda-supply = <&vdda_mipi_dsi0_1p2>;
 802};
 803
 804&mdss_dsi0_out {
 805	data-lanes = <0 1 2 3>;
 806};
 807
 808&mdss_dsi0_phy {
 809	status = "okay";
 810	vdds-supply = <&vdda_mipi_dsi0_pll>;
 811};
 812
 813&pm6150_adc {
 814	channel@4f {
 815		reg = <ADC5_AMUX_THM3_100K_PU>;
 816		qcom,ratiometric;
 817		qcom,hw-settle-time = <200>;
 818		label = "charger_therm";
 819	};
 820};
 821
 822&pm6150_adc_tm {
 823	status = "okay";
 824
 825	charger-thermistor@0 {
 826		reg = <0>;
 827		io-channels = <&pm6150_adc ADC5_AMUX_THM3_100K_PU>;
 828		qcom,ratiometric;
 829		qcom,hw-settle-time-us = <200>;
 830	};
 831};
 832
 833&pm6150_pon {
 834	status = "disabled";
 835};
 836
 837&qupv3_id_0 {
 838	status = "okay";
 839};
 840
 841&qupv3_id_1 {
 842	status = "okay";
 843};
 844
 845&remoteproc_mpss {
 846	status = "okay";
 847	compatible = "qcom,sc7180-mss-pil";
 848	reg = <0 0x04080000 0 0x4040>, <0 0x04180000 0 0x48>;
 849	reg-names = "qdsp6", "rmb";
 850
 851	clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
 852		 <&gcc GCC_MSS_Q6_MEMNOC_AXI_CLK>,
 853		 <&gcc GCC_MSS_NAV_AXI_CLK>,
 854		 <&gcc GCC_MSS_SNOC_AXI_CLK>,
 855		 <&gcc GCC_MSS_MFAB_AXIS_CLK>,
 856		 <&rpmhcc RPMH_CXO_CLK>;
 857	clock-names = "iface", "bus", "nav", "snoc_axi", "mnoc_axi", "xo";
 858
 859	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
 860	memory-region = <&mba_mem>, <&mpss_mem>, <&mdata_mem>;
 861
 862	/* This gets overridden for SKUs with LTE support. */
 863	firmware-name = "qcom/sc7180-trogdor/modem-nolte/mba.mbn",
 864			"qcom/sc7180-trogdor/modem-nolte/qdsp6sw.mbn";
 865
 866	resets = <&aoss_reset AOSS_CC_MSS_RESTART>,
 867		 <&pdc_reset PDC_MODEM_SYNC_RESET>;
 868	reset-names = "mss_restart", "pdc_reset";
 869
 870	qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
 871	qcom,spare-regs = <&tcsr_regs_2 0xb3e4>;
 872};
 873
 874&scm {
 875	/* TF-A firmware maps memory cached so mark dma-coherent to match. */
 876	dma-coherent;
 877};
 878
 879&sdhc_1 {
 880	status = "okay";
 881
 882	pinctrl-names = "default", "sleep";
 883	pinctrl-0 = <&sdc1_on>;
 884	pinctrl-1 = <&sdc1_off>;
 885	vmmc-supply = <&mcp_vcc>;
 886	vqmmc-supply = <&mcp_vccq>;
 887};
 888
 889&sdhc_2 {
 890	pinctrl-names = "default", "sleep";
 891	pinctrl-0 = <&sdc2_on>;
 892	pinctrl-1 = <&sdc2_off>;
 893	vmmc-supply = <&pp2950_l9c>;
 894	vqmmc-supply = <&ppvar_l6c>;
 895
 896	cd-gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
 897};
 898
 899&spi0 {
 900	pinctrl-0 = <&qup_spi0_spi>, <&qup_spi0_cs_gpio>;
 901	cs-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
 902};
 903
 904&spi6 {
 905	pinctrl-0 = <&qup_spi6_spi>, <&qup_spi6_cs_gpio>;
 906	cs-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
 907};
 908
 909ap_spi_fp: &spi10 {
 910	pinctrl-0 = <&qup_spi10_spi>, <&qup_spi10_cs_gpio>;
 911	cs-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
 912
 913	cros_ec_fp: ec@0 {
 914		compatible = "google,cros-ec-fp", "google,cros-ec-spi";
 915		reg = <0>;
 916		interrupt-parent = <&tlmm>;
 917		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
 918		pinctrl-names = "default";
 919		pinctrl-0 = <&fp_to_ap_irq_l>, <&fp_rst_l>, <&fpmcu_boot0>;
 920		boot0-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
 921		reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
 922		spi-max-frequency = <3000000>;
 923		vdd-supply = <&pp3300_fp_tp>;
 924	};
 925};
 926
 927#include <arm/cros-ec-sbs.dtsi>
 928
 929&uart3 {
 930	status = "okay";
 931
 932	/delete-property/interrupts;
 933	interrupts-extended = <&intc GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
 934				<&tlmm 41 IRQ_TYPE_EDGE_FALLING>;
 935
 936	pinctrl-names = "default", "sleep";
 937	pinctrl-1 = <&qup_uart3_sleep>;
 938
 939	bluetooth: bluetooth {
 940		compatible = "qcom,wcn3991-bt";
 941		vddio-supply = <&pp1800_l10a>;
 942		vddxo-supply = <&pp1800_l1c>;
 943		vddrf-supply = <&pp1300_l2c>;
 944		vddch0-supply = <&pp3300_l10c>;
 945		max-speed = <3200000>;
 946
 947		qcom,local-bd-address-broken;
 948	};
 949};
 950
 951&uart8 {
 952	status = "okay";
 953};
 954
 955&usb_1 {
 956	status = "okay";
 957};
 958
 959&usb_1_dwc3 {
 960	dr_mode = "host";
 961	#address-cells = <1>;
 962	#size-cells = <0>;
 963
 964	/* 2.x hub on port 1 */
 965	usb_hub_2_x: hub@1 {
 966		compatible = "usbbda,5411";
 967		reg = <1>;
 968		vdd-supply = <&pp3300_hub>;
 969		peer-hub = <&usb_hub_3_x>;
 970	};
 971
 972	/* 3.x hub on port 2 */
 973	usb_hub_3_x: hub@2 {
 974		compatible = "usbbda,411";
 975		reg = <2>;
 976		vdd-supply = <&pp3300_hub>;
 977		peer-hub = <&usb_hub_2_x>;
 978	};
 979};
 980
 981&usb_1_hsphy {
 982	status = "okay";
 983	vdd-supply = <&vdd_qusb_hs0_core>;
 984	vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
 985	vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
 986	qcom,imp-res-offset-value = <8>;
 987	qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_15_PERCENT>;
 988	qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
 989	qcom,bias-ctrl-value = <0x22>;
 990	qcom,charge-ctrl-value = <3>;
 991	qcom,hsdisc-trim-value = <0>;
 992};
 993
 994&usb_1_qmpphy {
 995	status = "okay";
 996	vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
 997	vdda-pll-supply = <&vdda_usb_ss_dp_core>;
 998};
 999
1000&venus {
1001	video-firmware {
1002		iommus = <&apps_smmu 0x0c42 0x0>;
1003	};
1004};
1005
1006&wifi {
1007	status = "okay";
1008	vdd-0.8-cx-mx-supply = <&vdd_cx_wlan>;
1009	vdd-1.8-xo-supply = <&pp1800_l1c>;
1010	vdd-1.3-rfa-supply = <&pp1300_l2c>;
1011	vdd-3.3-ch0-supply = <&pp3300_l10c>;
1012	vdd-3.3-ch1-supply = <&pp3300_l11c>;
1013
1014	wifi-firmware {
1015		iommus = <&apps_smmu 0xc2 0x1>;
1016	};
1017};
1018
1019/* PINCTRL - additions to nodes defined in sc7180.dtsi */
1020
1021&dp_hot_plug_det {
1022	bias-disable;
1023};
1024
1025&pri_mi2s_active {
1026	drive-strength = <2>;
1027	bias-pull-down;
1028};
1029
1030&pri_mi2s_mclk_active {
1031	drive-strength = <2>;
1032	bias-pull-down;
1033};
1034
1035&qspi_cs0 {
1036	bias-disable;		/* External pullup */
1037};
1038
1039&qspi_clk {
1040	drive-strength = <8>;
1041	bias-disable;		/* Rely on Cr50 internal pulldown */
1042};
1043
1044&qspi_data0 {
1045	bias-disable;		/* Rely on Cr50 internal pulldown */
1046};
1047
1048&qspi_data1 {
1049	bias-pull-down;
1050};
1051
1052&qup_i2c2_default {
1053	drive-strength = <2>;
1054
1055	/* Has external pullup */
1056	bias-disable;
1057};
1058
1059&qup_i2c4_default {
1060	drive-strength = <2>;
1061
1062	/* Has external pullup */
1063	bias-disable;
1064};
1065
1066&qup_i2c5_default {
1067	drive-strength = <2>;
1068
1069	/* Has external pullup */
1070	bias-disable;
1071};
1072
1073&qup_i2c7_default {
1074	drive-strength = <2>;
1075
1076	/* Has external pullup */
1077	bias-disable;
1078};
1079
1080&qup_i2c9_default {
1081	drive-strength = <2>;
1082
1083	/* Has external pullup */
1084	bias-disable;
1085};
1086
1087&qup_spi0_spi {
1088	drive-strength = <2>;
1089	bias-disable;
1090};
1091
1092&qup_spi0_cs_gpio {
1093	drive-strength = <2>;
1094	bias-disable;
1095};
1096
1097&qup_spi6_spi {
1098	drive-strength = <2>;
1099	bias-disable;
1100};
1101
1102&qup_spi6_cs_gpio {
1103	drive-strength = <2>;
1104	bias-disable;
1105};
1106
1107&qup_spi10_spi {
1108	drive-strength = <2>;
1109	bias-disable;
1110};
1111
1112&qup_spi10_cs_gpio {
1113	drive-strength = <2>;
1114	bias-disable;
1115};
1116
1117&qup_uart3_cts {
1118	/*
1119	 * Configure a pull-down on CTS to match the pull of
1120	 * the Bluetooth module.
1121	 */
1122	bias-pull-down;
1123};
1124
1125&qup_uart3_rts {
1126	/* We'll drive RTS, so no pull */
1127	drive-strength = <2>;
1128	bias-disable;
1129};
1130
1131&qup_uart3_tx {
1132	/* We'll drive TX, so no pull */
1133	drive-strength = <2>;
1134	bias-disable;
1135};
1136
1137&qup_uart3_rx {
1138	/*
1139	 * Configure a pull-up on RX. This is needed to avoid
1140	 * garbage data when the TX pin of the Bluetooth module is
1141	 * in tri-state (module powered off or not driving the
1142	 * signal yet).
1143	 */
1144	bias-pull-up;
1145};
1146
1147&qup_uart8_tx {
1148	drive-strength = <2>;
1149	bias-disable;
1150};
1151
1152&qup_uart8_rx {
1153	drive-strength = <2>;
1154	bias-pull-up;
1155};
1156
1157&sec_mi2s_active {
1158	drive-strength = <2>;
1159	bias-pull-down;
1160};
1161
1162/* PINCTRL - board-specific pinctrl */
1163
1164&pm6150_gpios {
1165	status = "disabled"; /* No GPIOs are connected */
1166};
1167
1168&pm6150l_gpios {
1169	status = "disabled"; /* No GPIOs are consumed or configured */
1170	gpio-line-names = "AP_SUSPEND",
1171			  "",
1172			  "",
1173			  "",
1174			  "",
1175			  "",
1176			  "",
1177			  "",
1178			  "",
1179			  "",
1180			  "",
1181			  "";
1182};
1183
1184&tlmm {
1185	/*
1186	 * pinctrl settings for pins that have no real owners.
1187	 */
1188	pinctrl-names = "default";
1189	pinctrl-0 = <&bios_flash_wp_l>, <&ap_suspend_l_neuter>;
1190
1191	amp_en: amp-en-state {
1192		pins = "gpio23";
1193		function = "gpio";
1194		bias-pull-down;
1195	};
1196
1197	ap_ec_int_l: ap-ec-int-l-state {
1198		pins = "gpio94";
1199		function = "gpio";
1200		bias-pull-up;
1201	};
1202
1203	ap_edp_bklten: ap-edp-bklten-state {
1204		pins = "gpio12";
1205		function = "gpio";
1206		drive-strength = <2>;
1207		bias-disable;
1208
1209		/* Force backlight to be disabled to match state at boot. */
1210		output-low;
1211	};
1212
1213	ap_suspend_l_neuter: ap-suspend-l-neuter-state {
1214		pins = "gpio27";
1215		function = "gpio";
1216		bias-disable;
1217	};
1218
1219	bios_flash_wp_l: bios-flash-wp-l-state {
1220		pins = "gpio66";
1221		function = "gpio";
1222		bias-disable;
1223	};
1224
1225	edp_brij_en: edp-brij-en-state {
1226		pins = "gpio104";
1227		function = "gpio";
1228		drive-strength = <2>;
1229		bias-disable;
1230	};
1231
1232	en_pp3300_codec: en-pp3300-codec-state {
1233		pins = "gpio83";
1234		function = "gpio";
1235		drive-strength = <2>;
1236		bias-disable;
1237	};
1238
1239	en_pp3300_dx_edp: en-pp3300-dx-edp-state {
1240		pins = "gpio30";
1241		function = "gpio";
1242		drive-strength = <2>;
1243		bias-disable;
1244	};
1245
1246	en_pp3300_hub: en-pp3300-hub-state {
1247		pins = "gpio84";
1248		function = "gpio";
1249		drive-strength = <2>;
1250		bias-disable;
1251	};
1252
1253	fp_rst_l: fp-rst-l-state {
1254		pins = "gpio22";
1255		function = "gpio";
1256		bias-disable;
1257		drive-strength = <2>;
1258	};
1259
1260	fp_to_ap_irq_l: fp-to-ap-irq-l-state {
1261		pins = "gpio4";
1262		function = "gpio";
1263
1264		/* Has external pullup */
1265		bias-disable;
1266	};
1267
1268	fpmcu_boot0: fpmcu-boot0-state {
1269		pins = "gpio10";
1270		function = "gpio";
1271		bias-disable;
1272	};
1273
1274	h1_ap_int_odl: h1-ap-int-odl-state {
1275		pins = "gpio42";
1276		function = "gpio";
1277		bias-pull-up;
1278	};
1279
1280	hp_irq: hp-irq-state {
1281		pins = "gpio28";
1282		function = "gpio";
1283		bias-pull-up;
1284	};
1285
1286	pen_irq_l: pen-irq-l-state {
1287		pins = "gpio21";
1288		function = "gpio";
1289
1290		/* Has external pullup */
1291		bias-disable;
1292	};
1293
1294	pen_pdct_l: pen-pdct-l-state-state {
1295		pins = "gpio52";
1296		function = "gpio";
1297
1298		/* Has external pullup */
1299		bias-disable;
1300	};
1301
1302	pen_rst_odl: pen-rst-odl-state {
1303		pins = "gpio18";
1304		function = "gpio";
1305		bias-disable;
1306		drive-strength = <2>;
1307
1308		/*
1309		 * The pen driver doesn't currently support
1310		 * driving this reset line.  By specifying
1311		 * output-high here we're relying on the fact
1312		 * that this pin has a default pulldown at boot
1313		 * (which makes sure the pen was in reset if it
1314		 * was powered) and then we set it high here to
1315		 * take it out of reset.  Better would be if the
1316		 * pen driver could control this and we could
1317		 * remove "output-high" here.
1318		 */
1319		output-high; /* TODO: Remove this? */
1320	};
1321
1322	p_sensor_int_l: p-sensor-int-l-state {
1323		pins = "gpio24";
1324		function = "gpio";
1325
1326		/* Has external pullup */
1327		bias-disable;
1328	};
1329
1330	qspi_sleep: qspi-sleep-state {
1331		pins = "gpio63", "gpio64", "gpio65", "gpio68";
1332
1333		/*
1334		 * When we're not actively transferring we want pins as GPIOs
1335		 * with output disabled so that the quad SPI IP block stops
1336		 * driving them. We rely on the normal pulls configured in
1337		 * the active state and don't redefine them here. Also note
1338		 * that we don't need the reverse (output-enable) in the
1339		 * normal mode since the "output-enable" only matters for
1340		 * GPIO function.
1341		 */
1342		function = "gpio";
1343		output-disable;
1344	};
1345
1346	qup_uart3_sleep: qup-uart3-sleep-state {
1347		cts-pins {
1348			/*
1349			 * Configure a pull-down on CTS to match the pull of
1350			 * the Bluetooth module.
1351			 */
1352			pins = "gpio38";
1353			function = "gpio";
1354			bias-pull-down;
1355		};
1356
1357		rts-pins {
1358			/*
1359			 * Configure pull-down on RTS. As RTS is active low
1360			 * signal, pull it low to indicate the BT SoC that it
1361			 * can wakeup the system anytime from suspend state by
1362			 * pulling RX low (by sending wakeup bytes).
1363			 */
1364			pins = "gpio39";
1365			function = "gpio";
1366			bias-pull-down;
1367		};
1368
1369		tx-pins {
1370			/*
1371			 * Configure pull-up on TX when it isn't actively driven
1372			 * to prevent BT SoC from receiving garbage during sleep.
1373			 */
1374			pins = "gpio40";
1375			function = "gpio";
1376			bias-pull-up;
1377		};
1378
1379		rx-pins {
1380			/*
1381			 * Configure a pull-up on RX. This is needed to avoid
1382			 * garbage data when the TX pin of the Bluetooth module
1383			 * is floating which may cause spurious wakeups.
1384			 */
1385			pins = "gpio41";
1386			function = "gpio";
1387			bias-pull-up;
1388		};
1389	};
1390
1391	/* Named trackpad_int_1v8_odl on earlier revision schematics */
1392	trackpad_int_1v8_odl:
1393	tp_int_odl: tp-int-odl-state {
1394		pins = "gpio0";
1395		function = "gpio";
1396
1397		/* Has external pullup */
1398		bias-disable;
1399	};
1400
1401	ts_int_l: ts-int-l-state {
1402		pins = "gpio9";
1403		function = "gpio";
1404		bias-pull-up;
1405	};
1406
1407	ts_reset_l: ts-reset-l-state {
1408		pins = "gpio8";
1409		function = "gpio";
1410		bias-disable;
1411
1412		/*
1413		 * The reset GPIO to the touchscreen takes almost 2ms to drop
1414		 * at the default drive strength. When we bump it up to 8mA it
1415		 * falls in under 500us. We want this to be fast since the Elan
1416		 * datasheet (and any drivers written based on it) talk about using
1417		 * a 500 us reset pulse.
1418		 */
1419		drive-strength = <8>;
1420	};
1421
1422	sdc1_on: sdc1-on-state {
1423		clk-pins {
1424			pins = "sdc1_clk";
1425			bias-disable;
1426			drive-strength = <16>;
1427		};
1428
1429		cmd-pins {
1430			pins = "sdc1_cmd";
1431			bias-pull-up;
1432			drive-strength = <16>;
1433		};
1434
1435		data-pins {
1436			pins = "sdc1_data";
1437			bias-pull-up;
1438			drive-strength = <16>;
1439		};
1440
1441		rclk-pins {
1442			pins = "sdc1_rclk";
1443			bias-pull-down;
1444		};
1445	};
1446
1447	sdc1_off: sdc1-off-state {
1448		clk-pins {
1449			pins = "sdc1_clk";
1450			bias-disable;
1451			drive-strength = <2>;
1452		};
1453
1454		cmd-pins {
1455			pins = "sdc1_cmd";
1456			bias-pull-up;
1457			drive-strength = <2>;
1458		};
1459
1460		data-pins {
1461			pins = "sdc1_data";
1462			bias-pull-up;
1463			drive-strength = <2>;
1464		};
1465
1466		rclk-pins {
1467			pins = "sdc1_rclk";
1468			bias-pull-down;
1469		};
1470	};
1471
1472	sdc2_on: sdc2-on-state {
1473		clk-pins {
1474			pins = "sdc2_clk";
1475			bias-disable;
1476			drive-strength = <16>;
1477		};
1478
1479		cmd-pins {
1480			pins = "sdc2_cmd";
1481			bias-pull-up;
1482			drive-strength = <10>;
1483		};
1484
1485		data-pins {
1486			pins = "sdc2_data";
1487			bias-pull-up;
1488			drive-strength = <10>;
1489		};
1490
1491		sd-cd-pins {
1492			pins = "gpio69";
1493			function = "gpio";
1494			bias-pull-up;
1495			drive-strength = <2>;
1496		};
1497	};
1498
1499	sdc2_off: sdc2-off-state {
1500		clk-pins {
1501			pins = "sdc2_clk";
1502			bias-disable;
1503			drive-strength = <2>;
1504		};
1505
1506		cmd-pins {
1507			pins = "sdc2_cmd";
1508			bias-pull-up;
1509			drive-strength = <2>;
1510		};
1511
1512		data-pins {
1513			pins = "sdc2_data";
1514			bias-pull-up;
1515			drive-strength = <2>;
1516		};
1517
1518		sd-cd-pins {
1519			pins = "gpio69";
1520			function = "gpio";
1521			bias-pull-up;
1522			drive-strength = <2>;
1523		};
1524	};
1525
1526	uf_cam_en: uf-cam-en-state {
1527		pins = "gpio6";
1528		function = "gpio";
1529		drive-strength = <2>;
1530
1531		/* External pull down */
1532		bias-disable;
1533	};
1534
1535	wf_cam_en: wf-cam-en-state {
1536		pins = "gpio7";
1537		function = "gpio";
1538		drive-strength = <2>;
1539
1540		/* External pull down */
1541		bias-disable;
1542	};
1543};
~/ Read-only file preview.