Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: qcom: Add support for ASUS ZenWatch 2

Add support for this smartwatch, based on Snapdragon 400 SoC.

Currently supported functionality:
* Internal storage
* USB
* Charger
* Power button
* Vibration motor
* Bluetooth
* Wifi

Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220226101939.1011551-2-luca@z3ntu.xyz

authored by

Luca Weiss and committed by
Bjorn Andersson
d3236c59 b736cedc

+304
+1
arch/arm/boot/dts/Makefile
··· 977 977 ox820-cloudengines-pogoplug-series-3.dtb 978 978 dtb-$(CONFIG_ARCH_QCOM) += \ 979 979 qcom-apq8016-sbc.dtb \ 980 + qcom-apq8026-asus-sparrow.dtb \ 980 981 qcom-apq8026-lg-lenok.dtb \ 981 982 qcom-apq8060-dragonboard.dtb \ 982 983 qcom-apq8064-cm-qs600.dtb \
+294
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts
··· 1 + // SPDX-License-Identifier: BSD-3-Clause 2 + /* 3 + * Copyright (c) 2022, Luca Weiss <luca@z3ntu.xyz> 4 + */ 5 + 6 + /dts-v1/; 7 + 8 + #include "qcom-msm8226.dtsi" 9 + #include "qcom-pm8226.dtsi" 10 + 11 + / { 12 + model = "ASUS ZenWatch 2"; 13 + compatible = "asus,sparrow", "qcom,apq8026"; 14 + chassis-type = "watch"; 15 + qcom,msm-id = <199 0x20000>; 16 + qcom,board-id = <8 3005>; 17 + 18 + reserved-memory { 19 + sbl_region: sbl@2f00000 { 20 + reg = <0x02f00000 0x100000>; 21 + no-map; 22 + }; 23 + external_image_region: external-image@3100000 { 24 + reg = <0x3100000 0x200000>; 25 + no-map; 26 + }; 27 + peripheral_region: peripheral@3300000 { 28 + reg = <0x3300000 0x600000>; 29 + no-map; 30 + }; 31 + adsp_region: adsp@3900000 { 32 + reg = <0x3900000 0x1400000>; 33 + no-map; 34 + }; 35 + modem_region: modem@4d00000 { 36 + reg = <0x4d00000 0x1b00000>; 37 + no-map; 38 + }; 39 + modem_efs_region: modem-efs@7f00000 { 40 + reg = <0x7f00000 0x100000>; 41 + no-map; 42 + }; 43 + }; 44 + 45 + vreg_wlan: wlan-regulator { 46 + compatible = "regulator-fixed"; 47 + 48 + regulator-name = "wl-reg"; 49 + regulator-min-microvolt = <2950000>; 50 + regulator-max-microvolt = <2950000>; 51 + 52 + gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>; 53 + enable-active-high; 54 + 55 + pinctrl-names = "default"; 56 + pinctrl-0 = <&wlan_regulator_default_state>; 57 + }; 58 + }; 59 + 60 + &blsp1_uart1 { 61 + status = "okay"; 62 + 63 + pinctrl-names = "default"; 64 + pinctrl-0 = <&blsp1_uart1_default_state>; 65 + 66 + bluetooth { 67 + compatible = "brcm,bcm43430a1-bt"; 68 + max-speed = <3000000>; 69 + 70 + pinctrl-names = "default"; 71 + pinctrl-0 = <&bluetooth_default_state>; 72 + 73 + host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>; 74 + device-wakeup-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>; 75 + shutdown-gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>; 76 + }; 77 + }; 78 + 79 + &pm8226_vib { 80 + status = "okay"; 81 + }; 82 + 83 + &rpm_requests { 84 + pm8226-regulators { 85 + compatible = "qcom,rpm-pm8226-regulators"; 86 + 87 + pm8226_s3: s3 { 88 + regulator-min-microvolt = <1200000>; 89 + regulator-max-microvolt = <1300000>; 90 + }; 91 + pm8226_s4: s4 { 92 + regulator-min-microvolt = <1800000>; 93 + regulator-max-microvolt = <2200000>; 94 + }; 95 + pm8226_s5: s5 { 96 + regulator-min-microvolt = <1150000>; 97 + regulator-max-microvolt = <1150000>; 98 + }; 99 + 100 + pm8226_l1: l1 { 101 + regulator-min-microvolt = <1225000>; 102 + regulator-max-microvolt = <1225000>; 103 + }; 104 + pm8226_l2: l2 { 105 + regulator-min-microvolt = <1200000>; 106 + regulator-max-microvolt = <1200000>; 107 + }; 108 + pm8226_l3: l3 { 109 + regulator-min-microvolt = <750000>; 110 + regulator-max-microvolt = <1337500>; 111 + }; 112 + pm8226_l4: l4 { 113 + regulator-min-microvolt = <1200000>; 114 + regulator-max-microvolt = <1200000>; 115 + }; 116 + pm8226_l5: l5 { 117 + regulator-min-microvolt = <1200000>; 118 + regulator-max-microvolt = <1200000>; 119 + }; 120 + pm8226_l6: l6 { 121 + regulator-min-microvolt = <1800000>; 122 + regulator-max-microvolt = <1800000>; 123 + }; 124 + pm8226_l7: l7 { 125 + regulator-min-microvolt = <1900000>; 126 + regulator-max-microvolt = <1900000>; 127 + }; 128 + pm8226_l8: l8 { 129 + regulator-min-microvolt = <1800000>; 130 + regulator-max-microvolt = <1800000>; 131 + }; 132 + pm8226_l9: l9 { 133 + regulator-min-microvolt = <1800000>; 134 + regulator-max-microvolt = <1800000>; 135 + }; 136 + pm8226_l10: l10 { 137 + regulator-min-microvolt = <1800000>; 138 + regulator-max-microvolt = <1800000>; 139 + }; 140 + pm8226_l12: l12 { 141 + regulator-min-microvolt = <1800000>; 142 + regulator-max-microvolt = <1800000>; 143 + }; 144 + pm8226_l14: l14 { 145 + regulator-min-microvolt = <2750000>; 146 + regulator-max-microvolt = <2750000>; 147 + }; 148 + pm8226_l15: l15 { 149 + regulator-min-microvolt = <3000000>; 150 + regulator-max-microvolt = <3000000>; 151 + }; 152 + pm8226_l16: l16 { 153 + regulator-min-microvolt = <3000000>; 154 + regulator-max-microvolt = <3000000>; 155 + }; 156 + pm8226_l17: l17 { 157 + regulator-min-microvolt = <2950000>; 158 + regulator-max-microvolt = <2950000>; 159 + }; 160 + pm8226_l18: l18 { 161 + regulator-min-microvolt = <2950000>; 162 + regulator-max-microvolt = <2950000>; 163 + }; 164 + pm8226_l19: l19 { 165 + regulator-min-microvolt = <2850000>; 166 + regulator-max-microvolt = <2850000>; 167 + }; 168 + pm8226_l20: l20 { 169 + regulator-min-microvolt = <3075000>; 170 + regulator-max-microvolt = <3075000>; 171 + }; 172 + pm8226_l21: l21 { 173 + regulator-min-microvolt = <1800000>; 174 + regulator-max-microvolt = <2950000>; 175 + }; 176 + pm8226_l22: l22 { 177 + regulator-min-microvolt = <1800000>; 178 + regulator-max-microvolt = <2950000>; 179 + }; 180 + pm8226_l23: l23 { 181 + regulator-min-microvolt = <1800000>; 182 + regulator-max-microvolt = <1800000>; 183 + }; 184 + pm8226_l24: l24 { 185 + regulator-min-microvolt = <1300000>; 186 + regulator-max-microvolt = <1350000>; 187 + }; 188 + pm8226_l25: l25 { 189 + regulator-min-microvolt = <1775000>; 190 + regulator-max-microvolt = <2125000>; 191 + }; 192 + pm8226_l26: l26 { 193 + regulator-min-microvolt = <1225000>; 194 + regulator-max-microvolt = <1225000>; 195 + }; 196 + pm8226_l27: l27 { 197 + regulator-min-microvolt = <2050000>; 198 + regulator-max-microvolt = <2050000>; 199 + }; 200 + pm8226_l28: l28 { 201 + regulator-min-microvolt = <1800000>; 202 + regulator-max-microvolt = <2950000>; 203 + }; 204 + 205 + pm8226_lvs1: lvs1 {}; 206 + }; 207 + }; 208 + 209 + &sdhc_1 { 210 + status = "okay"; 211 + 212 + vmmc-supply = <&pm8226_l17>; 213 + vqmmc-supply = <&pm8226_l6>; 214 + 215 + bus-width = <8>; 216 + non-removable; 217 + }; 218 + 219 + &sdhc_3 { 220 + status = "okay"; 221 + 222 + max-frequency = <100000000>; 223 + non-removable; 224 + 225 + vmmc-supply = <&vreg_wlan>; 226 + vqmmc-supply = <&pm8226_l6>; 227 + 228 + #address-cells = <1>; 229 + #size-cells = <0>; 230 + 231 + wifi@1 { 232 + compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac"; 233 + reg = <1>; 234 + 235 + interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; 236 + interrupt-names = "host-wake"; 237 + 238 + pinctrl-names = "default"; 239 + pinctrl-0 = <&wlan_hostwake_default_state>; 240 + }; 241 + }; 242 + 243 + &smbb { 244 + qcom,fast-charge-safe-current = <1500000>; 245 + qcom,fast-charge-current-limit = <350000>; 246 + qcom,fast-charge-safe-voltage = <4430000>; 247 + qcom,fast-charge-high-threshold-voltage = <4400000>; 248 + qcom,auto-recharge-threshold-voltage = <4300000>; 249 + qcom,minimum-input-voltage = <4400000>; 250 + }; 251 + 252 + &tlmm { 253 + blsp1_uart1_default_state: blsp1-uart1-default-state { 254 + pins = "gpio0", "gpio1", "gpio2", "gpio3"; 255 + function = "blsp_uart1"; 256 + drive-strength = <8>; 257 + bias-disable; 258 + }; 259 + 260 + bluetooth_default_state: bluetooth-default-state { 261 + pins = "gpio48", "gpio61"; 262 + function = "gpio"; 263 + drive-strength = <8>; 264 + bias-disable; 265 + input-enable; 266 + }; 267 + 268 + wlan_hostwake_default_state: wlan-hostwake-default-state { 269 + pins = "gpio46"; 270 + function = "gpio"; 271 + drive-strength = <2>; 272 + bias-disable; 273 + input-enable; 274 + }; 275 + 276 + wlan_regulator_default_state: wlan-regulator-default-state { 277 + pins = "gpio35"; 278 + function = "gpio"; 279 + drive-strength = <2>; 280 + bias-pull-up; 281 + }; 282 + }; 283 + 284 + &usb { 285 + status = "okay"; 286 + extcon = <&smbb>; 287 + dr_mode = "peripheral"; 288 + }; 289 + 290 + &usb_hs_phy { 291 + extcon = <&smbb>; 292 + v1p8-supply = <&pm8226_l10>; 293 + v3p3-supply = <&pm8226_l20>; 294 + };
+9
arch/arm/boot/dts/qcom-msm8226.dtsi
··· 182 182 status = "disabled"; 183 183 }; 184 184 185 + blsp1_uart1: serial@f991d000 { 186 + compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 187 + reg = <0xf991d000 0x1000>; 188 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 189 + clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 190 + clock-names = "core", "iface"; 191 + status = "disabled"; 192 + }; 193 + 185 194 blsp1_uart3: serial@f991f000 { 186 195 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 187 196 reg = <0xf991f000 0x1000>;