1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Common CPCAP configuration used on Motorola phones 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun&mcspi1 { 7*4882a593Smuzhiyun cpcap: pmic@0 { 8*4882a593Smuzhiyun compatible = "motorola,cpcap", "st,6556002"; 9*4882a593Smuzhiyun reg = <0>; /* cs0 */ 10*4882a593Smuzhiyun interrupt-parent = <&gpio1>; 11*4882a593Smuzhiyun interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 12*4882a593Smuzhiyun interrupt-controller; 13*4882a593Smuzhiyun #interrupt-cells = <2>; 14*4882a593Smuzhiyun #address-cells = <1>; 15*4882a593Smuzhiyun #size-cells = <0>; 16*4882a593Smuzhiyun spi-max-frequency = <9600000>; 17*4882a593Smuzhiyun spi-cs-high; 18*4882a593Smuzhiyun spi-cpol; 19*4882a593Smuzhiyun spi-cpha; 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun cpcap_adc: adc { 22*4882a593Smuzhiyun compatible = "motorola,mapphone-cpcap-adc"; 23*4882a593Smuzhiyun interrupts-extended = <&cpcap 8 0>; 24*4882a593Smuzhiyun interrupt-names = "adcdone"; 25*4882a593Smuzhiyun #io-channel-cells = <1>; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun cpcap_battery: battery { 29*4882a593Smuzhiyun compatible = "motorola,cpcap-battery"; 30*4882a593Smuzhiyun interrupts-extended = < 31*4882a593Smuzhiyun &cpcap 6 0 &cpcap 5 0 &cpcap 3 0 32*4882a593Smuzhiyun &cpcap 20 0 &cpcap 54 0 &cpcap 57 0 33*4882a593Smuzhiyun >; 34*4882a593Smuzhiyun interrupt-names = 35*4882a593Smuzhiyun "eol", "lowbph", "lowbpl", 36*4882a593Smuzhiyun "chrgcurr1", "battdetb", 37*4882a593Smuzhiyun "cccal"; 38*4882a593Smuzhiyun io-channels = <&cpcap_adc 0 &cpcap_adc 1 39*4882a593Smuzhiyun &cpcap_adc 5 &cpcap_adc 6>; 40*4882a593Smuzhiyun io-channel-names = "battdetb", "battp", 41*4882a593Smuzhiyun "chg_isense", "batti"; 42*4882a593Smuzhiyun power-supplies = <&cpcap_charger>; 43*4882a593Smuzhiyun }; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun cpcap_charger: charger { 46*4882a593Smuzhiyun compatible = "motorola,mapphone-cpcap-charger"; 47*4882a593Smuzhiyun interrupts-extended = < 48*4882a593Smuzhiyun &cpcap 13 0 &cpcap 12 0 &cpcap 29 0 &cpcap 28 0 49*4882a593Smuzhiyun &cpcap 22 0 &cpcap 21 0 &cpcap 20 0 &cpcap 19 0 50*4882a593Smuzhiyun &cpcap 54 0 51*4882a593Smuzhiyun >; 52*4882a593Smuzhiyun interrupt-names = 53*4882a593Smuzhiyun "chrg_det", "rvrs_chrg", "chrg_se1b", "se0conn", 54*4882a593Smuzhiyun "rvrs_mode", "chrgcurr2", "chrgcurr1", "vbusvld", 55*4882a593Smuzhiyun "battdetb"; 56*4882a593Smuzhiyun mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW 57*4882a593Smuzhiyun &gpio3 23 GPIO_ACTIVE_LOW>; 58*4882a593Smuzhiyun io-channels = <&cpcap_adc 0 &cpcap_adc 1 59*4882a593Smuzhiyun &cpcap_adc 2 &cpcap_adc 5 60*4882a593Smuzhiyun &cpcap_adc 6>; 61*4882a593Smuzhiyun io-channel-names = "battdetb", "battp", 62*4882a593Smuzhiyun "vbus", "chg_isense", 63*4882a593Smuzhiyun "batti"; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun cpcap_regulator: regulator { 67*4882a593Smuzhiyun compatible = "motorola,mapphone-cpcap-regulator"; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun cpcap_regulators: regulators { 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun cpcap_audio: audio-codec { 74*4882a593Smuzhiyun #sound-dai-cells = <1>; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun port@0 { 77*4882a593Smuzhiyun cpcap_audio_codec0: endpoint { 78*4882a593Smuzhiyun }; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun port@1 { 81*4882a593Smuzhiyun cpcap_audio_codec1: endpoint { 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun cpcap_rtc: rtc { 87*4882a593Smuzhiyun compatible = "motorola,cpcap-rtc"; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun interrupt-parent = <&cpcap>; 90*4882a593Smuzhiyun interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>; 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun power_button: button { 94*4882a593Smuzhiyun compatible = "motorola,cpcap-pwrbutton"; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun interrupts = <23 IRQ_TYPE_NONE>; 97*4882a593Smuzhiyun }; 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun cpcap_usb2_phy: phy { 100*4882a593Smuzhiyun compatible = "motorola,mapphone-cpcap-usb-phy"; 101*4882a593Smuzhiyun pinctrl-0 = <&usb_gpio_mux_sel1 &usb_gpio_mux_sel2>; 102*4882a593Smuzhiyun pinctrl-1 = <&usb_ulpi_pins>; 103*4882a593Smuzhiyun pinctrl-2 = <&usb_utmi_pins>; 104*4882a593Smuzhiyun pinctrl-3 = <&uart3_pins>; 105*4882a593Smuzhiyun pinctrl-names = "default", "ulpi", "utmi", "uart"; 106*4882a593Smuzhiyun #phy-cells = <0>; 107*4882a593Smuzhiyun interrupts-extended = < 108*4882a593Smuzhiyun &cpcap 15 0 &cpcap 14 0 &cpcap 28 0 &cpcap 19 0 109*4882a593Smuzhiyun &cpcap 18 0 &cpcap 17 0 &cpcap 16 0 &cpcap 49 0 110*4882a593Smuzhiyun &cpcap 48 0 111*4882a593Smuzhiyun >; 112*4882a593Smuzhiyun interrupt-names = 113*4882a593Smuzhiyun "id_ground", "id_float", "se0conn", "vbusvld", 114*4882a593Smuzhiyun "sessvld", "sessend", "se1", "dm", "dp"; 115*4882a593Smuzhiyun mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH 116*4882a593Smuzhiyun &gpio1 0 GPIO_ACTIVE_HIGH>; 117*4882a593Smuzhiyun io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>; 118*4882a593Smuzhiyun io-channel-names = "vbus", "id"; 119*4882a593Smuzhiyun vusb-supply = <&vusb>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun led_red: led-red { 123*4882a593Smuzhiyun compatible = "motorola,cpcap-led-red"; 124*4882a593Smuzhiyun vdd-supply = <&sw5>; 125*4882a593Smuzhiyun label = "status-led:red"; 126*4882a593Smuzhiyun }; 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun led_green: led-green { 129*4882a593Smuzhiyun compatible = "motorola,cpcap-led-green"; 130*4882a593Smuzhiyun vdd-supply = <&sw5>; 131*4882a593Smuzhiyun label = "status-led:green"; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun 134*4882a593Smuzhiyun led_blue: led-blue { 135*4882a593Smuzhiyun compatible = "motorola,cpcap-led-blue"; 136*4882a593Smuzhiyun vdd-supply = <&sw5>; 137*4882a593Smuzhiyun label = "status-led:blue"; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun led_adl: led-adl { 141*4882a593Smuzhiyun compatible = "motorola,cpcap-led-adl"; 142*4882a593Smuzhiyun vdd-supply = <&sw5>; 143*4882a593Smuzhiyun label = "button-backlight"; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun led_cp: led-cp { 147*4882a593Smuzhiyun compatible = "motorola,cpcap-led-cp"; 148*4882a593Smuzhiyun vdd-supply = <&sw5>; 149*4882a593Smuzhiyun label = "shift-key-light"; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun}; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun&cpcap_regulators { 155*4882a593Smuzhiyun sw5: SW5 { 156*4882a593Smuzhiyun regulator-min-microvolt = <5050000>; 157*4882a593Smuzhiyun regulator-max-microvolt = <5050000>; 158*4882a593Smuzhiyun regulator-enable-ramp-delay = <50000>; 159*4882a593Smuzhiyun regulator-boot-on; 160*4882a593Smuzhiyun }; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun vcam: VCAM { 163*4882a593Smuzhiyun regulator-min-microvolt = <2900000>; 164*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 165*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun /* Used by DSS and is the "zerov_regulator" trigger for SoC off mode */ 169*4882a593Smuzhiyun vcsi: VCSI { 170*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 171*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 172*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 173*4882a593Smuzhiyun regulator-always-on; 174*4882a593Smuzhiyun }; 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun vdac: VDAC { 177*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 178*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 179*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun vdig: VDIG { 183*4882a593Smuzhiyun regulator-min-microvolt = <1875000>; 184*4882a593Smuzhiyun regulator-max-microvolt = <1875000>; 185*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun vfuse: VFUSE { 189*4882a593Smuzhiyun regulator-min-microvolt = <1500000>; 190*4882a593Smuzhiyun regulator-max-microvolt = <3150000>; 191*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun vhvio: VHVIO { 195*4882a593Smuzhiyun regulator-min-microvolt = <2775000>; 196*4882a593Smuzhiyun regulator-max-microvolt = <2775000>; 197*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 198*4882a593Smuzhiyun regulator-always-on; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun /* Used by eMMC at mmc2 */ 202*4882a593Smuzhiyun vsdio: VSDIO { 203*4882a593Smuzhiyun regulator-min-microvolt = <2900000>; 204*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 205*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun vpll: VPLL { 209*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 210*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 211*4882a593Smuzhiyun regulator-enable-ramp-delay = <100>; 212*4882a593Smuzhiyun }; 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun vrf1: VRF1 { 215*4882a593Smuzhiyun regulator-min-microvolt = <2775000>; 216*4882a593Smuzhiyun regulator-max-microvolt = <2775000>; 217*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 218*4882a593Smuzhiyun }; 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun vrf2: VRF2 { 221*4882a593Smuzhiyun regulator-min-microvolt = <2775000>; 222*4882a593Smuzhiyun regulator-max-microvolt = <2775000>; 223*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun vrfref: VRFREF { 227*4882a593Smuzhiyun regulator-min-microvolt = <2500000>; 228*4882a593Smuzhiyun regulator-max-microvolt = <2775000>; 229*4882a593Smuzhiyun regulator-enable-ramp-delay = <100>; 230*4882a593Smuzhiyun }; 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun vwlan1: VWLAN1 { 233*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 234*4882a593Smuzhiyun regulator-max-microvolt = <1900000>; 235*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun /* Used by micro-SDIO at mmc1 */ 239*4882a593Smuzhiyun vwlan2: VWLAN2 { 240*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 241*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 242*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 243*4882a593Smuzhiyun }; 244*4882a593Smuzhiyun 245*4882a593Smuzhiyun vsim: VSIM { 246*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 247*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 248*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun vsimcard: VSIMCARD { 252*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 253*4882a593Smuzhiyun regulator-max-microvolt = <2900000>; 254*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 255*4882a593Smuzhiyun }; 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun vvib: VVIB { 258*4882a593Smuzhiyun regulator-min-microvolt = <1300000>; 259*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 260*4882a593Smuzhiyun regulator-enable-ramp-delay = <500>; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun vusb: VUSB { 264*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 265*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 266*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 267*4882a593Smuzhiyun }; 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun vaudio: VAUDIO { 270*4882a593Smuzhiyun regulator-min-microvolt = <2775000>; 271*4882a593Smuzhiyun regulator-max-microvolt = <2775000>; 272*4882a593Smuzhiyun regulator-enable-ramp-delay = <1000>; 273*4882a593Smuzhiyun regulator-initial-mode = <0x00>; /* NORMAL */ 274*4882a593Smuzhiyun }; 275*4882a593Smuzhiyun}; 276