mirror-linux/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi...

1411 lines
29 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2025, Thundercomm All rights reserved.
*/
/dts-v1/;
/* PM7250B is configured to use SID8/9 */
#define PM7250B_SID 8
#define PM7250B_SID1 9
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "kodiak.dtsi"
#include "pm7250b.dtsi"
#include "pm7325.dtsi"
#include "pm8350c.dtsi" /* PM7350C */
#include "pmk8350.dtsi" /* PMK7325 */
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &ipa_fw_mem;
/delete-node/ &mpss_mem;
/delete-node/ &remoteproc_mpss;
/delete-node/ &remoteproc_wpss;
/delete-node/ &rmtfs_mem;
/delete-node/ &video_mem;
/delete-node/ &wifi;
/delete-node/ &wlan_ce_mem;
/delete-node/ &wlan_fw_mem;
/delete-node/ &wpss_mem;
/delete-node/ &xbl_mem;
/ {
model = "Thundercomm RUBIK Pi 3";
compatible = "thundercomm,rubikpi3", "qcom,qcm6490";
chassis-type = "embedded";
aliases {
serial0 = &uart5;
};
chosen {
stdout-path = "serial0:115200n8";
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-0 = <&kypd_vol_up_n>;
pinctrl-names = "default";
key-volume-up {
label = "Volume Up";
gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
linux,can-disable;
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&lt9611_out>;
};
};
};
pmic-glink {
compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_ss_in: endpoint {
remote-endpoint = <&usb_dp_qmpphy_out>;
};
};
port@2 {
reg = <2>;
pmic_glink_sbu_in: endpoint {
remote-endpoint = <&usb1_sbu_mux>;
};
};
};
};
};
fan0: pwm-fan {
compatible = "pwm-fan";
/* cooling level (0, 1, 2, 3) : (0% duty, 25% duty, 50% duty, 100% duty) */
cooling-levels = <0 64 128 255>;
#cooling-cells = <2>;
pwms = <&pm8350c_pwm 3 1000000>;
pinctrl-0 = <&fan_pwm_out_default>;
pinctrl-names = "default";
};
vreg_eth_1v8: regulator-eth-1v8 {
compatible = "regulator-fixed";
regulator-name = "vreg_eth_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <50000>;
gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&usb_eth_power>;
pinctrl-names = "default";
vin-supply = <&vreg_usbhub_pwr_1v8>;
};
vreg_lt9611_3v3: regulator-lt9611-3v3 {
compatible = "regulator-fixed";
regulator-name = "vreg_lt9611_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&tlmm 83 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&lt9611_vcc_pin>;
pinctrl-names = "default";
};
vreg_m2_1v8: regulator-m2-1v8 {
compatible = "regulator-fixed";
regulator-name = "vreg_m2_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <50000>;
gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&m2_vcc_pin>;
pinctrl-names = "default";
regulator-always-on;
regulator-boot-on;
};
vreg_usbhub_pwr_1v8: regulator-usbhub-pwr-1v8 {
compatible = "regulator-fixed";
regulator-name = "vreg_usbhub_pwr_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <50000>;
gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&usbhub_power>;
pinctrl-names = "default";
regulator-always-on;
};
vreg_usbhub_rest_1v8: regulator-usbhub-rest-1v8 {
compatible = "regulator-fixed";
regulator-name = "vreg_usbhub_rest_1v8";
regulator-min-microvolt = <1800000>;
regulator-enable-ramp-delay = <50000>;
regulator-max-microvolt = <1800000>;
gpio = <&tlmm 136 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&usbhub_rest>;
pinctrl-names = "default";
vin-supply = <&vreg_eth_1v8>;
regulator-always-on;
regulator-boot-on;
};
vph_pwr: regulator-vph-pwr {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
};
vreg_wifi_1v8: regulator-wifi-1v8 {
compatible = "regulator-fixed";
regulator-name = "vreg_wifi_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-enable-ramp-delay = <50000>;
gpio = <&tlmm 125 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-0 = <&wifi_reset_active>,
<&wifi_host_wake>,
<&wifi_power_on>;
pinctrl-names = "default";
regulator-always-on;
};
reserved-memory {
xbl_mem: xbl@80700000 {
reg = <0x0 0x80700000 0x0 0x100000>;
no-map;
};
cdsp_secure_heap_mem: cdsp-secure-heap@81800000 {
reg = <0x0 0x81800000 0x0 0x1e00000>;
no-map;
};
camera_mem: camera@84300000 {
reg = <0x0 0x84300000 0x0 0x500000>;
no-map;
};
adsp_mem: adsp@86100000 {
reg = <0x0 0x86100000 0x0 0x2800000>;
no-map;
};
cdsp_mem: cdsp@88900000 {
reg = <0x0 0x88900000 0x0 0x1e00000>;
no-map;
};
video_mem: video@8a700000 {
reg = <0x0 0x8a700000 0x0 0x700000>;
no-map;
};
cvp_mem: cvp@8ae00000 {
reg = <0x0 0x8ae00000 0x0 0x500000>;
no-map;
};
gpu_microcode_mem: gpu-microcode@8b31a000 {
reg = <0x0 0x8b31a000 0x0 0x2000>;
no-map;
};
tz_stat_mem: tz-stat@c0000000 {
reg = <0x0 0xc0000000 0x0 0x100000>;
no-map;
};
tags_mem: tags@c0100000 {
reg = <0x0 0xc0100000 0x0 0x1200000>;
no-map;
};
qtee_mem: qtee@c1300000 {
reg = <0x0 0xc1300000 0x0 0x500000>;
no-map;
};
trusted_apps_mem: trusted-apps@c1800000 {
reg = <0x0 0xc1800000 0x0 0x1c00000>;
no-map;
};
debug_vm_mem: debug-vm@d0600000 {
reg = <0x0 0xd0600000 0x0 0x100000>;
no-map;
};
};
thermal-zones {
quiet-thermal {
thermal-sensors = <&pmk8350_adc_tm 1>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
sdm-skin-thermal {
thermal-sensors = <&pmk8350_adc_tm 3>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
xo-thermal {
thermal-sensors = <&pmk8350_adc_tm 0>;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
};
usb1-sbu-mux {
compatible = "pericom,pi3usb102", "gpio-sbu-mux";
enable-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>;
select-gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb1_sbu_default>;
pinctrl-names = "default";
mode-switch;
orientation-switch;
port {
usb1_sbu_mux: endpoint {
remote-endpoint = <&pmic_glink_sbu_in>;
};
};
};
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm7325-rpmh-regulators";
qcom,pmic-id = "b";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-l1-l4-l12-l15-supply = <&vreg_s7b_0p972>;
vdd-l2-l7-supply = <&vreg_bob_3p296>;
vdd-l3-supply = <&vreg_s2b_0p876>;
vdd-l5-supply = <&vreg_s2b_0p876>;
vdd-l6-l9-l10-supply = <&vreg_s8b_1p272>;
vdd-l8-supply = <&vreg_s7b_0p972>;
vdd-l11-l17-l18-l19-supply = <&vreg_s1b_1p872>;
vdd-l13-supply = <&vreg_s7b_0p972>;
vdd-l14-l16-supply = <&vreg_s8b_1p272>;
vreg_s1b_1p872: smps1 {
regulator-name = "vreg_s1b_1p872";
regulator-min-microvolt = <1840000>;
regulator-max-microvolt = <2040000>;
};
vreg_s2b_0p876: smps2 {
regulator-name = "vreg_s2b_0p876";
regulator-min-microvolt = <570070>;
regulator-max-microvolt = <1050000>;
};
vreg_s7b_0p972: smps7 {
regulator-name = "vreg_s7b_0p972";
regulator-min-microvolt = <535000>;
regulator-max-microvolt = <1120000>;
};
vreg_s8b_1p272: smps8 {
regulator-name = "vreg_s8b_1p272";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1500000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
};
vreg_l1b_0p912: ldo1 {
regulator-name = "vreg_l1b_0p912";
regulator-min-microvolt = <825000>;
regulator-max-microvolt = <925000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b_3p072: ldo2 {
regulator-name = "vreg_l2b_3p072";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b_0p504: ldo3 {
regulator-name = "vreg_l3b_0p504";
regulator-min-microvolt = <312000>;
regulator-max-microvolt = <910000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4b_0p752: ldo4 {
regulator-name = "vreg_l4b_0p752";
regulator-min-microvolt = <752000>;
regulator-max-microvolt = <820000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
reg_l5b_0p752: ldo5 {
regulator-name = "reg_l5b_0p752";
regulator-min-microvolt = <552000>;
regulator-max-microvolt = <832000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b_1p2: ldo6 {
regulator-name = "vreg_l6b_1p2";
regulator-min-microvolt = <1140000>;
regulator-max-microvolt = <1260000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b_2p952: ldo7 {
regulator-name = "vreg_l7b_2p952";
regulator-min-microvolt = <2952000>;
regulator-max-microvolt = <2952000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8b_0p904: ldo8 {
regulator-name = "vreg_l8b_0p904";
regulator-min-microvolt = <870000>;
regulator-max-microvolt = <970000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b_1p2: ldo9 {
regulator-name = "vreg_l9b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11b_1p504: ldo11 {
regulator-name = "vreg_l11b_1p504";
regulator-min-microvolt = <1504000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12b_0p751: ldo12 {
regulator-name = "vreg_l12b_0p751";
regulator-min-microvolt = <751000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13b_0p53: ldo13 {
regulator-name = "vreg_l13b_0p53";
regulator-min-microvolt = <530000>;
regulator-max-microvolt = <824000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l14b_1p08: ldo14 {
regulator-name = "vreg_l14b_1p08";
regulator-min-microvolt = <1080000>;
regulator-max-microvolt = <1304000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l15b_0p765: ldo15 {
regulator-name = "vreg_l15b_0p765";
regulator-min-microvolt = <765000>;
regulator-max-microvolt = <1020000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l16b_1p1: ldo16 {
regulator-name = "vreg_l16b_1p1";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l17b_1p7: ldo17 {
regulator-name = "vreg_l17b_1p7";
regulator-min-microvolt = <1700000>;
regulator-max-microvolt = <1900000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l18b_1p8: ldo18 {
regulator-name = "vreg_l18b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l19b_1p8: ldo19 {
regulator-name = "vreg_l19b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-l1-l12-supply = <&vreg_s1b_1p872>;
vdd-l2-l8-supply = <&vreg_s1b_1p872>;
vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob_3p296>;
vdd-l6-l9-l11-supply = <&vreg_bob_3p296>;
vdd-l10-supply = <&vreg_s7b_0p972>;
vdd-bob-supply = <&vph_pwr>;
vreg_s1c_2p19: smps1 {
regulator-name = "vreg_s1c_2p19";
regulator-min-microvolt = <2190000>;
regulator-max-microvolt = <2210000>;
};
vreg_s2c_0p752: smps2 {
regulator-name = "vreg_s2c_0p752";
regulator-min-microvolt = <750000>;
regulator-max-microvolt = <800000>;
};
vreg_s5c_0p752: smps5 {
regulator-name = "vreg_s5c_0p752";
regulator-min-microvolt = <465000>;
regulator-max-microvolt = <1050000>;
};
vreg_s7c_0p752: smps7 {
regulator-name = "vreg_s7c_0p752";
regulator-min-microvolt = <465000>;
regulator-max-microvolt = <800000>;
};
vreg_s9c_1p084: smps9 {
regulator-name = "vreg_s9c_1p084";
regulator-min-microvolt = <1010000>;
regulator-max-microvolt = <1170000>;
};
vreg_l1c_1p8: ldo1 {
regulator-name = "vreg_l1c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c_1p62: ldo2 {
regulator-name = "vreg_l2c_1p62";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <1980000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3c_2p8: ldo3 {
regulator-name = "vreg_l3c_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3540000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l4c_1p62: ldo4 {
regulator-name = "vreg_l4c_1p62";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5c_1p62: ldo5 {
regulator-name = "vreg_l5c_1p62";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <3300000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c_2p96: ldo6 {
regulator-name = "vreg_l6c_2p96";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7c_3p0: ldo7 {
regulator-name = "vreg_l7c_3p0";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l8c_1p62: ldo8 {
regulator-name = "vreg_l8c_1p62";
regulator-min-microvolt = <1620000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c_2p96: ldo9 {
regulator-name = "vreg_l9c_2p96";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c_0p88: ldo10 {
regulator-name = "vreg_l10c_0p88";
regulator-min-microvolt = <720000>;
regulator-max-microvolt = <1050000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l11c_2p8: ldo11 {
regulator-name = "vreg_l11c_2p8";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l12c_1p65: ldo12 {
regulator-name = "vreg_l12c_1p65";
regulator-min-microvolt = <1650000>;
regulator-max-microvolt = <2000000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l13c_2p7: ldo13 {
regulator-name = "vreg_l13c_2p7";
regulator-min-microvolt = <2700000>;
regulator-max-microvolt = <3544000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob_3p296: bob {
regulator-name = "vreg_bob_3p296";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
};
};
};
&gcc {
protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
<GCC_MSS_CFG_AHB_CLK>,
<GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
<GCC_MSS_OFFLINE_AXI_CLK>,
<GCC_MSS_Q6SS_BOOT_CLK_SRC>,
<GCC_MSS_Q6_MEMNOC_AXI_CLK>,
<GCC_MSS_SNOC_AXI_CLK>,
<GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
<GCC_QSPI_CORE_CLK>,
<GCC_QSPI_CORE_CLK_SRC>,
<GCC_SEC_CTRL_CLK_SRC>,
<GCC_WPSS_AHB_BDG_MST_CLK>,
<GCC_WPSS_AHB_CLK>,
<GCC_WPSS_RSCP_CLK>;
};
&gpi_dma0 {
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
};
&gpu_zap_shader {
firmware-name = "qcom/qcs6490/a660_zap.mbn";
};
/* Pin 3, 5 in 40-pin connector */
&i2c1 {
status = "okay";
};
&i2c9 {
clock-frequency = <400000>;
status = "okay";
lt9611_codec: hdmi-bridge@39 {
compatible = "lontium,lt9611";
reg = <0x39>;
interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
vdd-supply = <&vreg_lt9611_3v3>;
vcc-supply = <&vreg_lt9611_3v3>;
pinctrl-0 = <&lt9611_irq_pin>,
<&lt9611_rst_pin>;
pinctrl-names = "default";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@1 {
reg = <1>;
lt9611_b: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@2 {
reg = <2>;
lt9611_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
};
&lpass_audiocc {
compatible = "qcom,qcm6490-lpassaudiocc";
/delete-property/ power-domains;
};
&mdss {
status = "okay";
};
&mdss_dp {
status = "okay";
};
&mdss_dp_out {
data-lanes = <0 1>;
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
remote-endpoint = <&usb_dp_qmpphy_dp_in>;
};
&mdss_dsi {
vdda-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&mdss_dsi0_out {
remote-endpoint = <&lt9611_b>;
data-lanes = <0 1 2 3>;
};
&mdss_dsi_phy {
vdds-supply = <&vreg_l10c_0p88>;
status = "okay";
};
&pcie0 {
perst-gpios = <&tlmm 87 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 89 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&pcie0_clkreq_n>,
<&pcie0_reset_n>,
<&pcie0_wake_n>;
pinctrl-names = "default";
status = "okay";
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l10c_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&pcie1 {
perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
pinctrl-0 = <&pcie1_clkreq_n>,
<&pcie1_reset_n>,
<&pcie1_wake_n>;
pinctrl-names = "default";
status = "okay";
};
&pcie1_phy {
vdda-phy-supply = <&vreg_l10c_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&pm7325_gpios {
kypd_vol_up_n: kypd-vol-up-n-state {
pins = "gpio6";
function = PMIC_GPIO_FUNC_NORMAL;
power-source = <1>;
bias-pull-up;
input-enable;
};
};
&pm7325_temp_alarm {
io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
io-channel-names = "thermal";
};
&pmk8350_adc_tm {
status = "okay";
xo-therm@0 {
reg = <0>;
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
quiet-therm@1 {
reg = <1>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
sdm-skin-therm@3 {
reg = <3>;
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time-us = <200>;
};
};
&pm8350c_pwm {
status = "okay";
multi-led {
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_INDICATOR;
#address-cells = <1>;
#size-cells = <0>;
led@1 {
reg = <1>;
color = <LED_COLOR_ID_RED>;
};
led@2 {
reg = <2>;
color = <LED_COLOR_ID_GREEN>;
};
led@3 {
reg = <3>;
color = <LED_COLOR_ID_BLUE>;
};
};
};
&pmk8350_rtc {
allow-set-time;
status = "okay";
};
&pmk8350_vadc {
channel@3 {
reg = <PMK8350_ADC7_DIE_TEMP>;
label = "pmk8350_die_temp";
qcom,pre-scaling = <1 1>;
};
channel@44 {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
label = "xo_therm";
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
qcom,ratiometric;
};
channel@103 {
reg = <PM7325_ADC7_DIE_TEMP>;
label = "pm7325_die_temp";
qcom,pre-scaling = <1 1>;
};
channel@144 {
reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_quiet_therm";
};
channel@146 {
reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
label = "pm7325_sdm_skin_therm";
};
};
&pon_pwrkey {
status = "okay";
};
&pon_resin {
linux,code = <KEY_VOLUMEDOWN>;
status = "okay";
};
&qupv3_id_0 {
firmware-name = "qcom/qcm6490/qupv3fw.elf";
status = "okay";
};
&qupv3_id_1 {
firmware-name = "qcom/qcm6490/qupv3fw.elf";
status = "okay";
};
&remoteproc_adsp {
firmware-name = "qcom/qcs6490/Thundercomm/RubikPi3/adsp.mbn";
status = "okay";
};
&remoteproc_cdsp {
firmware-name = "qcom/qcs6490/cdsp.mbn";
status = "okay";
};
/* WIFI part of the AP6256 connected with SDIO */
&sdhc_2 {
vmmc-supply = <&vreg_l9c_2p96>;
vqmmc-supply = <&vreg_l6c_2p96>;
non-removable;
keep-power-in-suspend;
/delete-property/ cd-gpios;
status = "okay";
};
/* Pin 19, 21, 23, 24 in 40-pin connector */
&spi12 {
status = "okay";
};
&thermal_zones {
cpu0-thermal {
trips {
cpu_tepid: cpu-tepid {
temperature = <65000>;
hysteresis = <5000>;
type = "active";
};
cpu_warm: cpu-warm {
temperature = <80000>;
hysteresis = <5000>;
type = "active";
};
};
cooling-maps {
map-cpu-tepid {
cooling-device = <&fan0 1 1>;
trip = <&cpu_tepid>;
};
map-cpu-warm {
cooling-device = <&fan0 2 2>;
trip = <&cpu_warm>;
};
map-cpu-hot {
cooling-device = <&fan0 3 3>;
trip = <&cpu0_alert0>;
};
};
};
};
/* Pin 8, 10 in 40-pin connector */
&uart2 {
status = "okay";
};
&uart5 {
status = "okay";
};
/* BT part of the AP6256 connected with UART */
&uart7 {
/delete-property/ interrupts;
interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
<&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
pinctrl-1 = <&qup_uart7_sleep_cts>,
<&qup_uart7_sleep_rts>,
<&qup_uart7_sleep_tx>,
<&qup_uart7_sleep_rx>;
pinctrl-names = "default",
"sleep";
status = "okay";
bluetooth {
compatible = "brcm,bcm4345c5";
clocks = <&sleep_clk>;
clock-names = "lpo";
device-wakeup-gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
host-wakeup-gpios = <&tlmm 137 GPIO_ACTIVE_HIGH>;
shutdown-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&bt_device_wake>,
<&bt_host_wake>,
<&bt_reset>;
pinctrl-names = "default";
vbat-supply = <&vreg_wifi_1v8>;
vddio-supply = <&vreg_wifi_1v8>;
max-speed = <3000000>;
};
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_hs_in>;
};
&usb_1_hsphy {
vdda-pll-supply = <&vreg_l10c_0p88>;
vdda33-supply = <&vreg_l2b_3p072>;
vdda18-supply = <&vreg_l1c_1p8>;
status = "okay";
};
&usb_1_qmpphy {
vdda-phy-supply = <&vreg_l6b_1p2>;
vdda-pll-supply = <&vreg_l1b_0p912>;
status = "okay";
};
&usb_2 {
dr_mode = "host";
status = "okay";
};
&usb_2_hsphy {
vdda-pll-supply = <&vreg_l10c_0p88>;
vdda18-supply = <&vreg_l1c_1p8>;
vdda33-supply = <&vreg_l2b_3p072>;
status = "okay";
};
&usb_dp_qmpphy_out {
remote-endpoint = <&pmic_glink_ss_in>;
};
&ufs_mem_hc {
reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l7b_2p952>;
vcc-max-microamp = <800000>;
vccq-supply = <&vreg_l9b_1p2>;
vccq-max-microamp = <900000>;
vccq2-supply = <&vreg_l9b_1p2>;
vccq2-max-microamp = <900000>;
status = "okay";
};
&ufs_mem_phy {
vdda-phy-supply = <&vreg_l10c_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&venus {
status = "okay";
};
/* PINCTRL - additions to nodes defined in kodiak.dtsi */
&pcie0_clkreq_n {
bias-pull-up;
drive-strength = <8>;
};
&pcie1_clkreq_n {
bias-pull-up;
drive-strength = <8>;
};
&pm8350c_gpios {
fan_pwm_out_default: fan-pwm-out-default-state {
pins = "gpio8";
function = "func1";
power-source = <1>;
drive-push-pull;
output-high;
qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
};
};
&qup_uart7_cts {
/*
* Configure a bias-bus-hold on CTS to lower power
* usage when Bluetooth is turned off. Bus hold will
* maintain a low power state regardless of whether
* the Bluetooth module drives the pin in either
* direction or leaves the pin fully unpowered.
*/
bias-bus-hold;
};
&qup_uart7_rts {
/* We'll drive RTS, so no pull */
bias-disable;
drive-strength = <2>;
};
&qup_uart7_rx {
/*
* Configure a pull-up on RX. This is needed to avoid
* garbage data when the TX pin of the Bluetooth module is
* in tri-state (module powered off or not driving the
* signal yet).
*/
bias-pull-up;
};
&qup_uart7_tx {
/* We'll drive TX, so no pull */
bias-disable;
drive-strength = <2>;
};
&sdc2_clk {
bias-disable;
drive-strength = <16>;
};
&sdc2_cmd {
bias-pull-up;
drive-strength = <10>;
};
&sdc2_data {
bias-pull-up;
drive-strength = <10>;
};
&tlmm {
pcie1_reset_n: pcie1-reset-n-state {
pins = "gpio2";
function = "gpio";
drive-strength = <8>;
output-low;
bias-disable;
};
pcie1_wake_n: pcie1-wake-n-state {
pins = "gpio3";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
usb_eth_power: usb-eth-power-state {
pins = "gpio7";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
wifi_reset_active: wifi-reset-active-state {
pins = "gpio16";
function = "gpio";
drive-strength = <8>;
output-high;
bias-disable;
};
bt_reset: bt-reset-state {
pins = "gpio17";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
lt9611_irq_pin: lt9611-irq-state {
pins = "gpio20";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
lt9611_rst_pin: lt9611-rst-state {
pins = "gpio21";
function = "gpio";
drive-strength = <8>;
output-high;
input-disable;
};
qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
pins = "gpio28";
function = "gpio";
/*
* Configure a bias-bus-hold on CTS to lower power
* usage when Bluetooth is turned off. Bus hold will
* maintain a low power state regardless of whether
* the Bluetooth module drives the pin in either
* direction or leaves the pin fully unpowered.
*/
bias-bus-hold;
};
qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
pins = "gpio29";
function = "gpio";
/*
* Configure pull-down on RTS. As RTS is active low
* signal, pull it low to indicate the BT SoC that it
* can wakeup the system anytime from suspend state by
* pulling RX low (by sending wakeup bytes).
*/
bias-pull-down;
};
qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
pins = "gpio30";
function = "gpio";
/*
* Configure pull-up on TX when it isn't actively driven
* to prevent BT SoC from receiving garbage during sleep.
*/
bias-pull-up;
};
qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
pins = "gpio31";
function = "gpio";
/*
* Configure a pull-up on RX. This is needed to avoid
* garbage data when the TX pin of the Bluetooth module
* is floating which may cause spurious wakeups.
*/
bias-pull-up;
};
wifi_host_wake: wifi-host-wake-state {
pins = "gpio38";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
bt_device_wake: bt-device-wake-state {
pins = "gpio39";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
usb1_sbu_default: usb1-sbu-state {
sel-pins {
pins = "gpio52";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
oe-n-pins {
pins = "gpio53";
function = "gpio";
drive-strength = <8>;
output-high;
bias-disable;
};
};
m2_vcc_pin: m2-vcc-state {
pins = "gpio56";
function = "gpio";
drive-strength = <8>;
output-high;
input-disable;
};
lt9611_vcc_pin: lt9611-vcc-pin-state {
pins = "gpio83";
function = "gpio";
drive-strength = <8>;
output-high;
input-disable;
};
usbhub_power: usbhub-power-state {
pins = "gpio86";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
pcie0_reset_n: pcie0-reset-n-state {
pins = "gpio87";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
pcie0_wake_n: pcie0-wake-n-state {
pins = "gpio89";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
wifi_power_on: wifi-power-on-state {
pins = "gpio125";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
usbhub_rest: usbhub-reset-state {
pins = "gpio136";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
bt_host_wake: bt-host-wake-state {
pins = "gpio137";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
};