* [PATCH 0/2] arm64: dts: qcom: Add initial Motorola Moto G10 support @ 2026-10-22 21:18 Michael McAllister 2026-10-22 20:39 ` [PATCH 1/2] dt-bindings: arm: qcom: Add Motorola Moto G10 Michael McAllister 2026-10-22 20:40 ` [PATCH 2/2] arm64: dts: " Michael McAllister 0 siblings, 2 replies; 5+ messages in thread From: Michael McAllister @ 2026-10-22 21:18 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree, linux-kernel This series adds an initial device tree for the Motorola Moto G10 (capri), based on the Qualcomm Snapdragon 460 (SM4250). It adds the board compatible and describes eMMC, USB-C, power and volume keys, the firmware framebuffer, regulators, GPU, Wi-Fi, Bluetooth and remote processors. The board uses the shared PM6125 and PMI632 definitions, with its own reserved-memory layout and firmware PSCI state IDs. Modem, ADSP and GPU firmware paths are namespaced under qcom/motorola/capri/. Native panel, touchscreen, speaker and battery support need separate driver and binding submissions and are outside this series. Based on Qualcomm arm64-for-7.4 (Linux 7.3-rc1). Binding and full DT schema checks pass. The W=1 DTB build reports an inherited unused DSI address/size- cells warning in sm6115.dtsi, also reproduced with OnePlus Billie2. Runtime checks covered booting with all eight CPUs, read-only eMMC access and USB ECM transfers. simpledrm and the power/volume input devices registered. Thermal readings and an active watchdog were observed. Physical button events and visible framebuffer output remain unconfirmed. GPU, Wi-Fi, Bluetooth, remote processors and suspend were not exercised; the minimal RAM image contained no wireless/DSP firmware or modules. The test ran without a panic or warning backtrace. A PSCI PC-mode firmware warning also occurs with the phone's installed kernel; suspend and deeper idle states remain untested. For the stock Android bootloader, testing used out-of-tree handoff code to select this DTB while retaining the firmware RAM map, initramfs and factory Wi-Fi address, plus an arm64 Image alignment wrapper. That code is not included here. No other device-specific driver patches were used. Michael McAllister (2): dt-bindings: arm: qcom: Add Motorola Moto G10 arm64: dts: qcom: Add Motorola Moto G10 .../devicetree/bindings/arm/qcom.yaml | 1 + arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/sm4250-motorola-capri.dts | 452 ++++++++++++++++++ 3 files changed, 454 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts base-commit: d053e38e614fb2e383b298ce8fc308a780d7f209 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] dt-bindings: arm: qcom: Add Motorola Moto G10 2026-10-22 21:18 [PATCH 0/2] arm64: dts: qcom: Add initial Motorola Moto G10 support Michael McAllister @ 2026-10-22 20:39 ` Michael McAllister 2026-10-22 20:40 ` [PATCH 2/2] arm64: dts: " Michael McAllister 1 sibling, 0 replies; 5+ messages in thread From: Michael McAllister @ 2026-10-22 20:39 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree, linux-kernel Document the Motorola Moto G10 (capri), a smartphone based on the Qualcomm Snapdragon 460 (SM4250). Signed-off-by: Michael McAllister <me@michaelmcallister.org> --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 121ca557ce..963fd482be 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -1051,6 +1051,7 @@ properties: - items: - enum: + - motorola,capri - oneplus,billie2 - const: qcom,sm4250 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] arm64: dts: qcom: Add Motorola Moto G10 2026-10-22 21:18 [PATCH 0/2] arm64: dts: qcom: Add initial Motorola Moto G10 support Michael McAllister 2026-10-22 20:39 ` [PATCH 1/2] dt-bindings: arm: qcom: Add Motorola Moto G10 Michael McAllister @ 2026-10-22 20:40 ` Michael McAllister 2026-10-22 21:41 ` sashiko-bot 2026-10-23 8:32 ` Konrad Dybcio 1 sibling, 2 replies; 5+ messages in thread From: Michael McAllister @ 2026-10-22 20:40 UTC (permalink / raw) To: Bjorn Andersson, Konrad Dybcio Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree, linux-kernel Add an initial board description for the SM4250-based Motorola Moto G10 (codenamed capri), including eMMC, USB-C, buttons, GPU, Wi-Fi and Bluetooth. Use the firmware framebuffer until native panel support is available. Describe the board-specific firmware carveouts and PSCI state IDs, and use the shared PM6125 and PMI632 definitions. Put the modem, ADSP and GPU firmware paths under qcom/motorola/capri/. Panel, touchscreen, amplifier, sound-card and battery-monitor support still depend on local drivers and are left for separate submissions. Signed-off-by: Michael McAllister <me@michaelmcallister.org> --- arch/arm64/boot/dts/qcom/Makefile | 1 + .../boot/dts/qcom/sm4250-motorola-capri.dts | 452 ++++++++++++++++++ 2 files changed, 453 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 88230c4e00..6f2dd88a14 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -383,6 +383,7 @@ shikra-iqs-evk-imx577-camera-dtbs := shikra-iqs-evk.dtb shikra-iqs-evk-imx577-ca dtb-$(CONFIG_ARCH_QCOM) += shikra-cqm-evk-imx577-camera.dtb dtb-$(CONFIG_ARCH_QCOM) += shikra-cqs-evk-imx577-camera.dtb dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk-imx577-camera.dtb +dtb-$(CONFIG_ARCH_QCOM) += sm4250-motorola-capri.dtb dtb-$(CONFIG_ARCH_QCOM) += sm4250-oneplus-billie2.dtb dtb-$(CONFIG_ARCH_QCOM) += sm4450-qrd.dtb dtb-$(CONFIG_ARCH_QCOM) += sm6115-fxtec-pro1x.dtb diff --git a/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts b/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts new file mode 100644 index 0000000000..b079f0cdc8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts @@ -0,0 +1,452 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) +/* + * Copyright (c) 2026 Michael McAllister <me@michaelmcallister.org> + * + * PM6125 regulator definitions derived from sm4250-oneplus-billie2.dts: + * Copyright (c) 2021 Iskren Chernev <iskren.chernev@gmail.com> + */ + +/dts-v1/; + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include "sm4250.dtsi" +#include "pm6125.dtsi" +#include "pmi632.dtsi" + +/ { + model = "Motorola Moto G10"; + compatible = "motorola,capri", "qcom,sm4250"; + + /* Used by the bootloader to select the board. */ + qcom,msm-id = <0x1a1 0x10000>; + qcom,board-id = <0 0xb200>; + + aliases { + display0 = &framebuffer0; + mmc0 = &sdhc_1; + serial0 = &uart3; + }; + + chosen { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + stdout-path = "display0"; + + framebuffer0: framebuffer@5c000000 { + compatible = "simple-framebuffer"; + reg = <0 0x5c000000 0 (720 * 1600 * 4)>; + display = <&mdss>; + format = "a8r8g8b8"; + height = <1600>; + stride = <(720 * 4)>; + vddio-supply = <&vreg_l9a>; + width = <720>; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-0 = <&volume_up_default>; + pinctrl-names = "default"; + + key-volume-up { + debounce-interval = <15>; + gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; + label = "Volume Up"; + linux,code = <KEY_VOLUMEUP>; + wakeup-source; + }; + }; +}; + +/* The stock firmware uses CPU mode 3 and affinity level 1 for these states. */ +&cluster_0_sleep_0 { + arm,psci-suspend-param = <0x41000023>; +}; + +&cluster_0_sleep_1 { + arm,psci-suspend-param = <0x41000043>; +}; + +&cluster_1_sleep_0 { + arm,psci-suspend-param = <0x41000023>; +}; + +&cluster_1_sleep_1 { + arm,psci-suspend-param = <0x41000043>; +}; + +&gpu { + status = "okay"; +}; + +&gpu_zap_shader { + firmware-name = "qcom/motorola/capri/a610_zap.mdt"; +}; + +&pil_cdsp_mem { + reg = <0 0x51a00000 0 0x800000>; +}; + +&pm6125_gpios { + volume_up_default: volume-up-state { + pins = "gpio5"; + function = "normal"; + bias-pull-up; + input-enable; + power-source = <0>; + }; +}; + +&pmi632_typec { + status = "okay"; + + connector { + compatible = "usb-c-connector"; + data-role = "dual"; + pd-disable; + power-role = "dual"; + self-powered; + typec-power-opmode = "default"; + vbus-supply = <&pmi632_vbus>; + + port { + pmi632_hs_in: endpoint { + remote-endpoint = <&usb_dwc3_hs>; + }; + }; + }; +}; + +&pmi632_vbus { + regulator-min-microamp = <500000>; + regulator-max-microamp = <500000>; + + status = "okay"; +}; + +&pon_pwrkey { + status = "okay"; +}; + +&pon_resin { + linux,code = <KEY_VOLUMEDOWN>; + + status = "okay"; +}; + +&qupv3_id_0 { + status = "okay"; +}; + +&remoteproc_adsp { + firmware-name = "qcom/motorola/capri/adsp2.mdt"; + + status = "okay"; +}; + +&remoteproc_mpss { + firmware-name = "qcom/motorola/capri/modem.mdt"; + + status = "okay"; +}; + +&reserved_memory { + /delete-node/ memory@53800000; + /delete-node/ memory@56100000; + /delete-node/ memory@56110000; + /delete-node/ memory@56115000; + + /* The ADSP and following carveouts differ from the SM6115 defaults. */ + pil_adsp_mem: memory@52200000 { + reg = <0 0x52200000 0 0x1c00000>; + no-map; + }; + + pil_ipa_fw_mem: memory@53e00000 { + reg = <0 0x53e00000 0 0x10000>; + no-map; + }; + + pil_ipa_gsi_mem: memory@53e10000 { + reg = <0 0x53e10000 0 0x5000>; + no-map; + }; + + pil_gpu_mem: memory@53e15000 { + reg = <0 0x53e15000 0 0x2000>; + no-map; + }; + + /* Bootloader debug data. */ + memory@aef9d800 { + reg = <0 0xaef9d800 0 0x62800>; + no-map; + }; + + ramoops@af000000 { + compatible = "ramoops"; + reg = <0 0xaf000000 0 0xbf800>; + console-size = <0x40000>; + pmsg-size = <0x40000>; + record-size = <0x20000>; + }; +}; + +&rpm_requests { + regulators-0 { + compatible = "qcom,rpm-pm6125-regulators"; + + vreg_s6a: s6 { + regulator-min-microvolt = <320000>; + regulator-max-microvolt = <1456000>; + }; + + vreg_s7a: s7 { + regulator-min-microvolt = <1280000>; + regulator-max-microvolt = <2040000>; + }; + + vreg_s8a: s8 { + regulator-min-microvolt = <1064000>; + regulator-max-microvolt = <1304000>; + }; + + vreg_l1a: l1 { + regulator-min-microvolt = <952000>; + regulator-max-microvolt = <1152000>; + }; + + vreg_l4a: l4 { + regulator-min-microvolt = <488000>; + regulator-max-microvolt = <1000000>; + }; + + vreg_l5a: l5 { + regulator-min-microvolt = <1648000>; + regulator-max-microvolt = <3056000>; + }; + + vreg_l6a: l6 { + regulator-min-microvolt = <576000>; + regulator-max-microvolt = <656000>; + }; + + vreg_l7a: l7 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1304000>; + }; + + vreg_l8a: l8 { + /* Handset ICNSS DT overrides CX/MX to 640 mV. */ + regulator-min-microvolt = <640000>; + regulator-max-microvolt = <640000>; + }; + + vreg_l9a: l9 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + /* Display and touch share this rail with Bluetooth. */ + regulator-boot-on; + }; + + vreg_l10a: l10 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <1904000>; + }; + + vreg_l11a: l11 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <1952000>; + }; + + vreg_l12a: l12 { + regulator-min-microvolt = <1624000>; + regulator-max-microvolt = <1984000>; + }; + + vreg_l13a: l13 { + regulator-min-microvolt = <1504000>; + regulator-max-microvolt = <1952000>; + }; + + vreg_l14a: l14 { + regulator-min-microvolt = <1704000>; + regulator-max-microvolt = <1904000>; + }; + + vreg_l15a: l15 { + regulator-min-microvolt = <2920000>; + regulator-max-microvolt = <3232000>; + }; + + vreg_l16a: l16 { + /* ICNSS WCN3990 XO supply setting. */ + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + vreg_l17a: l17 { + regulator-min-microvolt = <1304000>; + regulator-max-microvolt = <1304000>; + }; + + vreg_l18a: l18 { + regulator-min-microvolt = <1104000>; + regulator-max-microvolt = <1304000>; + }; + + vreg_l19a: l19 { + regulator-min-microvolt = <1624000>; + regulator-max-microvolt = <3304000>; + }; + + vreg_l20a: l20 { + regulator-min-microvolt = <1624000>; + regulator-max-microvolt = <3304000>; + }; + + vreg_l21a: l21 { + regulator-min-microvolt = <2400000>; + regulator-max-microvolt = <3544000>; + }; + + vreg_l22a: l22 { + regulator-min-microvolt = <2952000>; + regulator-max-microvolt = <3304000>; + }; + + vreg_l23a: l23 { + regulator-min-microvolt = <3296000>; + regulator-max-microvolt = <3304000>; + }; + + vreg_l24a: l24 { + regulator-min-microvolt = <2704000>; + regulator-max-microvolt = <3544000>; + }; + }; +}; + +&sdhc_1 { + pinctrl-0 = <&sdc1_state_on>; + pinctrl-1 = <&sdc1_state_off>; + pinctrl-names = "default", "sleep"; + vmmc-supply = <&vreg_l24a>; + vqmmc-supply = <&vreg_l11a>; + max-frequency = <50000000>; + non-removable; + + status = "okay"; +}; + +&sleep_clk { + clock-frequency = <32764>; +}; + +&tlmm { + gpio-reserved-ranges = <14 4>; + + bt_uart_default: bt-uart-default-state { + cts-pins { + pins = "gpio8"; + function = "qup3"; + bias-disable; + drive-strength = <2>; + }; + + rts-pins { + pins = "gpio9"; + function = "qup3"; + bias-pull-down; + drive-strength = <2>; + }; + + tx-rx-pins { + pins = "gpio10", "gpio11"; + function = "qup3"; + /* Keep RX idle high while the controller TX is tristated. */ + bias-pull-up; + drive-strength = <2>; + }; + }; + + bt_uart_sleep: bt-uart-sleep-state { + cts-rts-pins { + pins = "gpio8", "gpio9"; + function = "gpio"; + bias-pull-down; + drive-strength = <2>; + }; + + tx-rx-pins { + pins = "gpio10", "gpio11"; + function = "gpio"; + bias-pull-up; + drive-strength = <2>; + }; + }; +}; + +&uart3 { + interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, + <&tlmm 11 IRQ_TYPE_EDGE_FALLING>; + pinctrl-0 = <&bt_uart_default>; + pinctrl-1 = <&bt_uart_sleep>; + pinctrl-names = "default", "sleep"; + + status = "okay"; + + bluetooth { + compatible = "qcom,wcn3950-bt"; + max-speed = <3000000>; + vddch0-supply = <&vreg_l23a>; + vddio-supply = <&vreg_l9a>; + vddrf-supply = <&vreg_l17a>; + vddxo-supply = <&vreg_l16a>; + }; +}; + +&usb { + /* The connector exposes only the USB 2.0 data pair. */ + qcom,select-utmi-as-pipe-clk; + + status = "okay"; +}; + +&usb_dwc3 { + dr_mode = "otg"; + maximum-speed = "high-speed"; + phy-names = "usb2-phy"; + phys = <&usb_hsphy>; + role-switch-default-mode = "peripheral"; +}; + +&usb_dwc3_hs { + remote-endpoint = <&pmi632_hs_in>; +}; + +&usb_hsphy { + vdd-supply = <&vreg_l4a>; + vdda-phy-dpdm-supply = <&vreg_l15a>; + vdda-pll-supply = <&vreg_l12a>; + + status = "okay"; +}; + +&wifi { + vdd-0.8-cx-mx-supply = <&vreg_l8a>; + vdd-1.3-rfa-supply = <&vreg_l17a>; + vdd-1.8-xo-supply = <&vreg_l16a>; + vdd-3.3-ch0-supply = <&vreg_l23a>; + qcom,calibration-variant = "Motorola_Capri"; + + status = "okay"; +}; + +&xo_board { + clock-frequency = <19200000>; +}; ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add Motorola Moto G10 2026-10-22 20:40 ` [PATCH 2/2] arm64: dts: " Michael McAllister @ 2026-10-22 21:41 ` sashiko-bot 2026-10-23 8:32 ` Konrad Dybcio 1 sibling, 0 replies; 5+ messages in thread From: sashiko-bot @ 2026-10-22 21:41 UTC (permalink / raw) To: Michael McAllister; +Cc: devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: - [High] arm64: dts: qcom: capri simple-framebuffer missing display clocks and GDSC - [Medium] arm64: dts: qcom: sm4250-motorola-capri: wcn3950-bt never powers off in qca_power_off() -- commit af8b8ef25e8fb618354806c36e99ddefd993ffb6 Author: Michael McAllister <me@michaelmcallister.org> arm64: dts: qcom: Add Motorola Moto G10 This patch adds an initial device tree for the Motorola Moto G10 (capri) smartphone, enabling storage, usb type-c, buttons, graphics, wireless, bluetooth, and a simple-framebuffer display node. > diff --git a/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts b/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts > new file mode 100644 > index 0000000000000..b079f0cdc800b > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/sm4250-motorola-capri.dts > @@ -0,0 +1,452 @@ [ ... ] > + chosen { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + stdout-path = "display0"; > + > + framebuffer0: framebuffer@5c000000 { > + compatible = "simple-framebuffer"; > + reg = <0 0x5c000000 0 (720 * 1600 * 4)>; > + display = <&mdss>; > + format = "a8r8g8b8"; > + height = <1600>; > + stride = <(720 * 4)>; > + vddio-supply = <&vreg_l9a>; > + width = <720>; > + }; > + }; [Severity: High] Will the display stay powered and clocked after late_initcall cleanup when booting with this simple-framebuffer node? In arch/arm64/boot/dts/qcom/sm6115.dtsi, mdss is disabled by default while both gcc and dispcc are enabled: arch/arm64/boot/dts/qcom/sm6115.dtsi: dispcc: clock-controller@5f00000 { compatible = "qcom,sm6115-dispcc"; ... }; Because mdss is disabled and simple-framebuffer does not claim clocks or power domains through the display = <&mdss> phandle, nothing claims gcc_disp_hf_axi_clk in drivers/clk/qcom/gcc-sm6115.c or the display clocks and mdss_gdsc power domain registered by disp_cc_sm6115_probe() in drivers/clk/qcom/dispcc-sm6115.c: drivers/clk/qcom/gcc-sm6115.c: static struct clk_branch gcc_disp_hf_axi_clk = { .halt_reg = 0x17020, .halt_check = BRANCH_HALT, ... }; drivers/clk/qcom/dispcc-sm6115.c: static struct gdsc mdss_gdsc = { .gdscr = 0x3000, .pd = { .name = "mdss_gdsc", }, .pwrsts = PWRSTS_OFF_ON, .flags = HW_CTRL, }; When clk_disable_unused() and pm_genpd_poweroff_unused() run during boot, won't they disable gcc_disp_hf_axi_clk, the dispcc branch clocks, and mdss_gdsc, shutting down the active display scanout and stdout-path console? For comparison, arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts keeps gcc_disp_hf_axi_clk enabled in framebuffer0 and disables dispcc until the panel driver is wired up: arch/arm64/boot/dts/qcom/sm6115-xiaomi-lemon.dts: framebuffer0: framebuffer@5c000000 { ... clocks = <&gcc GCC_DISP_HF_AXI_CLK>; }; ... &dispcc { /* Prevent simplefb from dying until we wire panel driver */ status = "disabled"; }; Should framebuffer0 reference gcc_disp_hf_axi_clk (and either disable dispcc or claim the dispcc clocks and mdss_gdsc) here as well? [ ... ] > +&uart3 { > + interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, > + <&tlmm 11 IRQ_TYPE_EDGE_FALLING>; > + pinctrl-0 = <&bt_uart_default>; > + pinctrl-1 = <&bt_uart_sleep>; > + pinctrl-names = "default", "sleep"; > + > + status = "okay"; > + > + bluetooth { > + compatible = "qcom,wcn3950-bt"; > + max-speed = <3000000>; > + vddch0-supply = <&vreg_l23a>; > + vddio-supply = <&vreg_l9a>; > + vddrf-supply = <&vreg_l17a>; > + vddxo-supply = <&vreg_l16a>; > + }; > +}; [Severity: Medium] Can the bluetooth controller power off cleanly on this board when using qcom,wcn3950-bt with direct regulator supplies instead of a power sequencer? In drivers/bluetooth/hci_qca.c, qca_serdev_probe() falls back to direct regulator control via qca_init_regulators() when devm_pwrseq_get() does not find a bluetooth power sequencer. While qca_power_on() and qca_regulator_init() handle the wcn3950 soc_type, both switch statements in qca_power_off() and the cleanup check in qca_serdev_remove() omit it: drivers/bluetooth/hci_qca.c:qca_power_off() { switch (soc_type) { case QCA_WCN3988: case QCA_WCN3990: case QCA_WCN3991: case QCA_WCN3998: host_set_baudrate(hu, 2400); qca_send_power_pulse(hu, false); break; default: break; } if (power && power->pwrseq) { pwrseq_disable(power->pwrseq); set_bit(QCA_BT_OFF, &qca->flags); return; } switch (soc_type) { case QCA_WCN3988: case QCA_WCN3990: case QCA_WCN3991: case QCA_WCN3998: qca_regulator_disable(qcadev); break; ... } drivers/bluetooth/hci_qca.c:qca_serdev_remove() { switch (qcadev->btsoc_type) { case QCA_WCN3988: case QCA_WCN3990: case QCA_WCN3991: case QCA_WCN3998: case QCA_WCN6750: case QCA_WCN6855: case QCA_WCN7850: if (power->vregs_on) qca_power_off(&qcadev->serdev_hu); break; default: break; } } Without a power-sequencer node (or wcn3950 handling in qca_power_off() and qca_serdev_remove()), won't powering off bluetooth or unbinding the serdev driver skip both qca_send_power_pulse(hu, false) and qca_regulator_disable(qcadev), leaving vddch0, vddio, vddrf, and vddxo permanently enabled? -- Sashiko AI review · https://sashiko.dev/#/patchset/cover.1792703903.git.me@michaelmcallister.org?part=2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] arm64: dts: qcom: Add Motorola Moto G10 2026-10-22 20:40 ` [PATCH 2/2] arm64: dts: " Michael McAllister 2026-10-22 21:41 ` sashiko-bot @ 2026-10-23 8:32 ` Konrad Dybcio 1 sibling, 0 replies; 5+ messages in thread From: Konrad Dybcio @ 2026-10-23 8:32 UTC (permalink / raw) To: Michael McAllister, Bjorn Andersson, Konrad Dybcio Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree, linux-kernel On 10/22/26 10:40 PM, Michael McAllister wrote: > Add an initial board description for the SM4250-based Motorola Moto G10 > (codenamed capri), including eMMC, USB-C, buttons, GPU, Wi-Fi and > Bluetooth. Use the firmware framebuffer until native panel support is > available. [...] > +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) > +/* > + * Copyright (c) 2026 Michael McAllister <me@michaelmcallister.org> > + * > + * PM6125 regulator definitions derived from sm4250-oneplus-billie2.dts: > + * Copyright (c) 2021 Iskren Chernev <iskren.chernev@gmail.com> Did you adjust them to match your specific device? Otherwise you risk some magic smoke.. > + */ > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include "sm4250.dtsi" > +#include "pm6125.dtsi" > +#include "pmi632.dtsi" > + > +/ { > + model = "Motorola Moto G10"; > + compatible = "motorola,capri", "qcom,sm4250"; > + > + /* Used by the bootloader to select the board. */ > + qcom,msm-id = <0x1a1 0x10000>; Please add a line to socinfo (this is SM4250 as you said), include that header and use the define here [...] > +/* The stock firmware uses CPU mode 3 and affinity level 1 for these states. */ > +&cluster_0_sleep_0 { > + arm,psci-suspend-param = <0x41000023>; > +}; > + > +&cluster_0_sleep_1 { > + arm,psci-suspend-param = <0x41000043>; > +}; > + > +&cluster_1_sleep_0 { > + arm,psci-suspend-param = <0x41000023>; > +}; > + > +&cluster_1_sleep_1 { > + arm,psci-suspend-param = <0x41000043>; > +}; This isn't customized per-device. I've confirmed these values are right, please update them in the SoC DTSI in a preceding patch. We also have this state: system_sleep_0: system-sleep-0 { compatible = "domain-idle-state"; arm,psci-suspend-param = <0x42000343>; entry-latency-us = <10831>; exit-latency-us = <4506>; min-residency-us = <15338>; }; but this is definitely going to stay pending on this series: https://lore.kernel.org/linux-arm-msm/20261015-b4-shikra_lpm_addition-v2-0-ac7f1a0d5638@oss.qualcomm.com/ [...] > +&reserved_memory { > + /delete-node/ memory@53800000; > + /delete-node/ memory@56100000; > + /delete-node/ memory@56110000; > + /delete-node/ memory@56115000; Please remove these nodes via a &label_reference at the top of the file instead, so the compiler will do some more checking [...] > + /* Bootloader debug data. */ Ultra nit: usually comments don't end in a period [...] > + vreg_l8a: l8 { > + /* Handset ICNSS DT overrides CX/MX to 640 mV. */ This is presumably CX/MX for the bluetooth chip? I find this comment a bit more on the confusing side rather than helping > + regulator-min-microvolt = <640000>; > + regulator-max-microvolt = <640000>; > + }; > + > + vreg_l9a: l9 { > + regulator-min-microvolt = <1800000>; > + regulator-max-microvolt = <1800000>; > + /* Display and touch share this rail with Bluetooth. */ This will become self-evident as you add support for these pieces [...] > + vreg_l16a: l16 { > + /* ICNSS WCN3990 XO supply setting. */ This comment feels likewise a little strange [...] > +&tlmm { > + gpio-reserved-ranges = <14 4>; Do we know what these map to? Usually that's NFC eSE or a fingerprint scanner. If you do, please add a comment, like in glymur-crd.dtsi [...] > +&usb_dwc3 { > + dr_mode = "otg"; OTG is the default, you can drop this line > + maximum-speed = "high-speed"; > + phy-names = "usb2-phy"; > + phys = <&usb_hsphy>; > + role-switch-default-mode = "peripheral"; And this is the default too Konrad ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-23 8:32 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-10-22 21:18 [PATCH 0/2] arm64: dts: qcom: Add initial Motorola Moto G10 support Michael McAllister 2026-10-22 20:39 ` [PATCH 1/2] dt-bindings: arm: qcom: Add Motorola Moto G10 Michael McAllister 2026-10-22 20:40 ` [PATCH 2/2] arm64: dts: " Michael McAllister 2026-10-22 21:41 ` sashiko-bot 2026-10-23 8:32 ` Konrad Dybcio
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox