| // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) |
| /* |
| * Copyright (c) 2023, Linaro Ltd |
| */ |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/leds/common.h> |
| #include "qcm2290.dtsi" |
| #include "pm2250.dtsi" |
| |
| / { |
| model = "Qualcomm Technologies, Inc. Robotics RB1"; |
| compatible = "qcom,qrb2210-rb1", "qcom,qrb2210", "qcom,qcm2290"; |
| |
| aliases { |
| serial0 = &uart4; |
| sdhc1 = &sdhc_1; |
| sdhc2 = &sdhc_2; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| clocks { |
| clk40M: can-clk { |
| compatible = "fixed-clock"; |
| clock-frequency = <40000000>; |
| #clock-cells = <0>; |
| }; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| label = "gpio-keys"; |
| |
| pinctrl-0 = <&key_volp_n>; |
| pinctrl-names = "default"; |
| |
| key-volume-up { |
| label = "Volume Up"; |
| linux,code = <KEY_VOLUMEUP>; |
| gpios = <&tlmm 96 GPIO_ACTIVE_LOW>; |
| debounce-interval = <15>; |
| linux,can-disable; |
| wakeup-source; |
| }; |
| }; |
| |
| hdmi-connector { |
| compatible = "hdmi-connector"; |
| type = "a"; |
| |
| port { |
| hdmi_con: endpoint { |
| remote-endpoint = <<9611_out>; |
| }; |
| }; |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| |
| led-bt { |
| label = "blue:bt"; |
| function = LED_FUNCTION_BLUETOOTH; |
| color = <LED_COLOR_ID_BLUE>; |
| gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "bluetooth-power"; |
| default-state = "off"; |
| }; |
| |
| led-user0 { |
| label = "green:user0"; |
| function = LED_FUNCTION_INDICATOR; |
| color = <LED_COLOR_ID_GREEN>; |
| gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "none"; |
| default-state = "off"; |
| panic-indicator; |
| }; |
| |
| led-wlan { |
| label = "yellow:wlan"; |
| function = LED_FUNCTION_WLAN; |
| color = <LED_COLOR_ID_YELLOW>; |
| gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; |
| linux,default-trigger = "phy0tx"; |
| default-state = "off"; |
| }; |
| }; |
| |
| vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 { |
| compatible = "regulator-fixed"; |
| regulator-name = "VREG_HDMI_OUT_1P2"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| vin-supply = <&vdc_1v2>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| lt9611_3v3: regulator-lt9611-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "LT9611_3V3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| vin-supply = <&vdc_3v3>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* Main barrel jack input */ |
| vdc_12v: regulator-vdc-12v { |
| compatible = "regulator-fixed"; |
| regulator-name = "DC_12V"; |
| regulator-min-microvolt = <12000000>; |
| regulator-max-microvolt = <12000000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* 1.2V supply stepped down from the barrel jack input */ |
| vdc_1v2: regulator-vdc-1v2 { |
| compatible = "regulator-fixed"; |
| regulator-name = "VDC_1V2"; |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| vin-supply = <&vdc_12v>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* 3.3V supply stepped down from the barrel jack input */ |
| vdc_3v3: regulator-vdc-3v3 { |
| compatible = "regulator-fixed"; |
| regulator-name = "VDC_3V3"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| vin-supply = <&vdc_12v>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* 5V supply stepped down from the barrel jack input */ |
| vdc_5v: regulator-vdc-5v { |
| compatible = "regulator-fixed"; |
| regulator-name = "VDC_5V"; |
| |
| regulator-min-microvolt = <5000000>; |
| regulator-max-microvolt = <5000000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* "Battery" voltage for the SoM, stepped down from the barrel jack input */ |
| vdc_vbat_som: regulator-vdc-vbat { |
| compatible = "regulator-fixed"; |
| regulator-name = "VBAT_SOM"; |
| regulator-min-microvolt = <4200000>; |
| regulator-max-microvolt = <4200000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| /* PM2250 charger out, supplied by VBAT */ |
| vph_pwr: regulator-vph-pwr { |
| compatible = "regulator-fixed"; |
| regulator-name = "vph_pwr"; |
| regulator-min-microvolt = <3700000>; |
| regulator-max-microvolt = <3700000>; |
| vin-supply = <&vdc_vbat_som>; |
| |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| }; |
| |
| &gpi_dma0 { |
| status = "okay"; |
| }; |
| |
| &i2c2 { |
| clock-frequency = <400000>; |
| status = "okay"; |
| |
| lt9611_codec: hdmi-bridge@2b { |
| compatible = "lontium,lt9611uxc"; |
| reg = <0x2b>; |
| interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; |
| reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; |
| |
| vdd-supply = <&vreg_hdmi_out_1p2>; |
| vcc-supply = <<9611_3v3>; |
| |
| pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; |
| pinctrl-names = "default"; |
| #sound-dai-cells = <1>; |
| |
| ports { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| port@0 { |
| reg = <0>; |
| |
| lt9611_a: endpoint { |
| remote-endpoint = <&mdss_dsi0_out>; |
| }; |
| }; |
| |
| port@2 { |
| reg = <2>; |
| |
| lt9611_out: endpoint { |
| remote-endpoint = <&hdmi_con>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &mdss { |
| status = "okay"; |
| }; |
| |
| &mdss_dsi0 { |
| vdda-supply = <&pm2250_l5>; |
| status = "okay"; |
| }; |
| |
| &mdss_dsi0_out { |
| remote-endpoint = <<9611_a>; |
| data-lanes = <0 1 2 3>; |
| }; |
| |
| &mdss_dsi0_phy { |
| status = "okay"; |
| }; |
| |
| &pm2250_resin { |
| linux,code = <KEY_VOLUMEDOWN>; |
| status = "okay"; |
| }; |
| |
| &qupv3_id_0 { |
| status = "okay"; |
| }; |
| |
| &remoteproc_adsp { |
| firmware-name = "qcom/qcm2290/adsp.mbn"; |
| status = "okay"; |
| }; |
| |
| &remoteproc_mpss { |
| firmware-name = "qcom/qcm2290/modem.mbn"; |
| status = "okay"; |
| }; |
| |
| &rpm_requests { |
| regulators { |
| compatible = "qcom,rpm-pm2250-regulators"; |
| vdd_s3-supply = <&vph_pwr>; |
| vdd_s4-supply = <&vph_pwr>; |
| vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm2250_s3>; |
| vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>; |
| vdd_l13_l14_l15_l16-supply = <&pm2250_s4>; |
| |
| /* |
| * S1 - VDD_APC |
| * S2 - VDD_CX |
| */ |
| |
| pm2250_s3: s3 { |
| /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */ |
| regulator-min-microvolt = <1352000>; |
| regulator-max-microvolt = <1352000>; |
| regulator-boot-on; |
| }; |
| |
| pm2250_s4: s4 { |
| /* 1.2V-2.35V -> 2.05V (Power tree requirements) */ |
| regulator-min-microvolt = <2072000>; |
| regulator-max-microvolt = <2072000>; |
| regulator-boot-on; |
| }; |
| |
| /* L1 - VDD_MX */ |
| |
| pm2250_l2: l2 { |
| /* LPDDR4X VDD2 */ |
| regulator-min-microvolt = <1136000>; |
| regulator-max-microvolt = <1136000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l3: l3 { |
| /* LPDDR4X VDDQ */ |
| regulator-min-microvolt = <616000>; |
| regulator-max-microvolt = <616000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l4: l4 { |
| /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <2700000>; |
| regulator-allow-set-load; |
| }; |
| |
| pm2250_l5: l5 { |
| /* CSI/DSI */ |
| regulator-min-microvolt = <1232000>; |
| regulator-max-microvolt = <1232000>; |
| regulator-allow-set-load; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l6: l6 { |
| /* DRAM PLL */ |
| regulator-min-microvolt = <928000>; |
| regulator-max-microvolt = <928000>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l7: l7 { |
| /* Wi-Fi CX/MX */ |
| regulator-min-microvolt = <664000>; |
| regulator-max-microvolt = <664000>; |
| }; |
| |
| /* |
| * L8 - VDD_LPI_CX |
| * L9 - VDD_LPI_MX |
| */ |
| |
| pm2250_l10: l10 { |
| /* Wi-Fi RFA */ |
| regulator-min-microvolt = <1304000>; |
| regulator-max-microvolt = <1304000>; |
| }; |
| |
| pm2250_l11: l11 { |
| /* GPS RF1 */ |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l12: l12 { |
| /* USB PHYs */ |
| regulator-min-microvolt = <928000>; |
| regulator-max-microvolt = <928000>; |
| regulator-allow-set-load; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l13: l13 { |
| /* USB/QFPROM/PLLs */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-allow-set-load; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l14: l14 { |
| /* SDHCI1 VQMMC */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-allow-set-load; |
| /* Broken hardware, never turn it off! */ |
| regulator-always-on; |
| }; |
| |
| pm2250_l15: l15 { |
| /* WCD/DSI/BT VDDIO */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-allow-set-load; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l16: l16 { |
| /* GPS RF2 */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l17: l17 { |
| regulator-min-microvolt = <3000000>; |
| regulator-max-microvolt = <3000000>; |
| }; |
| |
| pm2250_l18: l18 { |
| /* VDD_PXn */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| pm2250_l19: l19 { |
| /* VDD_PXn */ |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| pm2250_l20: l20 { |
| /* SDHCI1 VMMC */ |
| regulator-min-microvolt = <2400000>; |
| regulator-max-microvolt = <3600000>; |
| regulator-allow-set-load; |
| }; |
| |
| pm2250_l21: l21 { |
| /* SDHCI2 VMMC */ |
| regulator-min-microvolt = <2960000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-allow-set-load; |
| regulator-boot-on; |
| }; |
| |
| pm2250_l22: l22 { |
| /* Wi-Fi */ |
| regulator-min-microvolt = <3312000>; |
| regulator-max-microvolt = <3312000>; |
| }; |
| }; |
| }; |
| |
| &sdhc_1 { |
| vmmc-supply = <&pm2250_l20>; |
| vqmmc-supply = <&pm2250_l14>; |
| pinctrl-0 = <&sdc1_state_on>; |
| pinctrl-1 = <&sdc1_state_off>; |
| pinctrl-names = "default", "sleep"; |
| non-removable; |
| supports-cqe; |
| no-sdio; |
| no-sd; |
| status = "okay"; |
| }; |
| |
| &sdhc_2 { |
| vmmc-supply = <&pm2250_l21>; |
| vqmmc-supply = <&pm2250_l4>; |
| cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; |
| pinctrl-0 = <&sdc2_state_on &sd_det_in_on>; |
| pinctrl-1 = <&sdc2_state_off &sd_det_in_off>; |
| pinctrl-names = "default", "sleep"; |
| no-sdio; |
| no-mmc; |
| status = "okay"; |
| }; |
| |
| &spi5 { |
| status = "okay"; |
| |
| can@0 { |
| compatible = "microchip,mcp2518fd"; |
| reg = <0>; |
| interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; |
| clocks = <&clk40M>; |
| spi-max-frequency = <10000000>; |
| vdd-supply = <&vdc_5v>; |
| xceiver-supply = <&vdc_5v>; |
| }; |
| }; |
| |
| &tlmm { |
| lt9611_rst_pin: lt9611-rst-state { |
| pins = "gpio41"; |
| function = "gpio"; |
| input-disable; |
| output-high; |
| }; |
| |
| lt9611_irq_pin: lt9611-irq-state { |
| pins = "gpio46"; |
| function = "gpio"; |
| bias-disable; |
| }; |
| |
| sd_det_in_on: sd-det-in-on-state { |
| pins = "gpio88"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-up; |
| }; |
| |
| sd_det_in_off: sd-det-in-off-state { |
| pins = "gpio88"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-disable; |
| }; |
| |
| key_volp_n: key-volp-n-state { |
| pins = "gpio96"; |
| function = "gpio"; |
| bias-pull-up; |
| output-disable; |
| }; |
| }; |
| |
| /* UART connected to the Micro-USB port via a FTDI chip */ |
| &uart4 { |
| compatible = "qcom,geni-debug-uart"; |
| status = "okay"; |
| }; |
| |
| &usb { |
| status = "okay"; |
| }; |
| |
| &usb_qmpphy { |
| vdda-phy-supply = <&pm2250_l12>; |
| vdda-pll-supply = <&pm2250_l13>; |
| status = "okay"; |
| }; |
| |
| &usb_dwc3 { |
| dr_mode = "host"; |
| }; |
| |
| &usb_hsphy { |
| vdd-supply = <&pm2250_l12>; |
| vdda-pll-supply = <&pm2250_l13>; |
| vdda-phy-dpdm-supply = <&pm2250_l21>; |
| status = "okay"; |
| }; |
| |
| &wifi { |
| vdd-0.8-cx-mx-supply = <&pm2250_l7>; |
| vdd-1.8-xo-supply = <&pm2250_l13>; |
| vdd-1.3-rfa-supply = <&pm2250_l10>; |
| vdd-3.3-ch0-supply = <&pm2250_l22>; |
| qcom,ath10k-calibration-variant = "Thundercomm_RB1"; |
| status = "okay"; |
| }; |
| |
| &xo_board { |
| clock-frequency = <38400000>; |
| }; |