0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * Copyright 2012 Linaro Ltd
0004 */
0005
0006 #include <dt-bindings/clock/ste-ab8500.h>
0007
0008 / {
0009 /* Essential housekeeping hardware monitors */
0010 iio-hwmon {
0011 compatible = "iio-hwmon";
0012 io-channels = <&gpadc 0x02>, /* Battery temperature */
0013 <&gpadc 0x03>, /* Main charger voltage */
0014 <&gpadc 0x08>, /* Main battery voltage */
0015 <&gpadc 0x09>, /* VBUS */
0016 <&gpadc 0x0a>, /* Main charger current */
0017 <&gpadc 0x0b>, /* USB charger current */
0018 <&gpadc 0x0c>, /* Backup battery voltage */
0019 <&gpadc 0x0d>, /* Die temperature */
0020 <&gpadc 0x12>; /* Crystal temperature */
0021 };
0022
0023 soc {
0024 prcmu@80157000 {
0025 ab8500 {
0026 compatible = "stericsson,ab8500";
0027 interrupt-parent = <&intc>;
0028 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
0029 interrupt-controller;
0030 #interrupt-cells = <2>;
0031 #address-cells = <1>;
0032 #size-cells = <0>;
0033
0034 ab8500_clock: clock-controller {
0035 compatible = "stericsson,ab8500-clk";
0036 #clock-cells = <1>;
0037 };
0038
0039 ab8500_gpio: gpio {
0040 compatible = "stericsson,ab8500-gpio";
0041 gpio-controller;
0042 #gpio-cells = <2>;
0043 };
0044
0045 rtc {
0046 compatible = "stericsson,ab8500-rtc";
0047 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
0048 <18 IRQ_TYPE_LEVEL_HIGH>;
0049 interrupt-names = "60S", "ALARM";
0050 };
0051
0052 gpadc: adc {
0053 compatible = "stericsson,ab8500-gpadc";
0054 interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
0055 <39 IRQ_TYPE_LEVEL_HIGH>;
0056 interrupt-names = "HW_CONV_END", "SW_CONV_END";
0057 vddadc-supply = <&ab8500_ldo_tvout_reg>;
0058 #address-cells = <1>;
0059 #size-cells = <0>;
0060 #io-channel-cells = <1>;
0061
0062 /* GPADC channels */
0063 bat_ctrl: channel@1 {
0064 reg = <0x01>;
0065 };
0066 btemp_ball: channel@2 {
0067 reg = <0x02>;
0068 };
0069 main_charger_v: channel@3 {
0070 reg = <0x03>;
0071 };
0072 acc_detect1: channel@4 {
0073 reg = <0x04>;
0074 };
0075 acc_detect2: channel@5 {
0076 reg = <0x05>;
0077 };
0078 adc_aux1: channel@6 {
0079 reg = <0x06>;
0080 };
0081 adc_aux2: channel@7 {
0082 reg = <0x07>;
0083 };
0084 main_batt_v: channel@8 {
0085 reg = <0x08>;
0086 };
0087 vbus_v: channel@9 {
0088 reg = <0x09>;
0089 };
0090 main_charger_c: channel@a {
0091 reg = <0x0a>;
0092 };
0093 usb_charger_c: channel@b {
0094 reg = <0x0b>;
0095 };
0096 bk_bat_v: channel@c {
0097 reg = <0x0c>;
0098 };
0099 die_temp: channel@d {
0100 reg = <0x0d>;
0101 };
0102 usb_id: channel@e {
0103 reg = <0x0e>;
0104 };
0105 xtal_temp: channel@12 {
0106 reg = <0x12>;
0107 };
0108 vbat_true_meas: channel@13 {
0109 reg = <0x13>;
0110 };
0111 bat_ctrl_and_ibat: channel@1c {
0112 reg = <0x1c>;
0113 };
0114 vbat_meas_and_ibat: channel@1d {
0115 reg = <0x1d>;
0116 };
0117 vbat_true_meas_and_ibat: channel@1e {
0118 reg = <0x1e>;
0119 };
0120 bat_temp_and_ibat: channel@1f {
0121 reg = <0x1f>;
0122 };
0123 };
0124
0125 thermal {
0126 compatible = "stericsson,abx500-temp";
0127 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
0128 interrupt-names = "ABX500_TEMP_WARM";
0129 };
0130
0131 ab8500_fg {
0132 compatible = "stericsson,ab8500-fg";
0133 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
0134 <8 IRQ_TYPE_LEVEL_HIGH>,
0135 <28 IRQ_TYPE_LEVEL_HIGH>,
0136 <27 IRQ_TYPE_LEVEL_HIGH>,
0137 <26 IRQ_TYPE_LEVEL_HIGH>;
0138 interrupt-names = "NCONV_ACCU",
0139 "BATT_OVV",
0140 "LOW_BAT_F",
0141 "CC_INT_CALIB",
0142 "CCEOC";
0143 monitored-battery = <&battery>;
0144 io-channels = <&gpadc 0x08>;
0145 io-channel-names = "main_bat_v";
0146 };
0147
0148 ab8500_btemp {
0149 compatible = "stericsson,ab8500-btemp";
0150 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
0151 <80 IRQ_TYPE_LEVEL_HIGH>,
0152 <83 IRQ_TYPE_LEVEL_HIGH>,
0153 <81 IRQ_TYPE_LEVEL_HIGH>,
0154 <82 IRQ_TYPE_LEVEL_HIGH>;
0155 interrupt-names = "BAT_CTRL_INDB",
0156 "BTEMP_LOW",
0157 "BTEMP_HIGH",
0158 "BTEMP_LOW_MEDIUM",
0159 "BTEMP_MEDIUM_HIGH";
0160 monitored-battery = <&battery>;
0161 io-channels = <&gpadc 0x02>,
0162 <&gpadc 0x01>;
0163 io-channel-names = "btemp_ball",
0164 "bat_ctrl";
0165 };
0166
0167 ab8500_charger {
0168 compatible = "stericsson,ab8500-charger";
0169 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
0170 <11 IRQ_TYPE_LEVEL_HIGH>,
0171 <0 IRQ_TYPE_LEVEL_HIGH>,
0172 <107 IRQ_TYPE_LEVEL_HIGH>,
0173 <106 IRQ_TYPE_LEVEL_HIGH>,
0174 <14 IRQ_TYPE_LEVEL_HIGH>,
0175 <15 IRQ_TYPE_LEVEL_HIGH>,
0176 <79 IRQ_TYPE_LEVEL_HIGH>,
0177 <105 IRQ_TYPE_LEVEL_HIGH>,
0178 <104 IRQ_TYPE_LEVEL_HIGH>,
0179 <89 IRQ_TYPE_LEVEL_HIGH>,
0180 <22 IRQ_TYPE_LEVEL_HIGH>,
0181 <21 IRQ_TYPE_LEVEL_HIGH>,
0182 <16 IRQ_TYPE_LEVEL_HIGH>;
0183 interrupt-names = "MAIN_CH_UNPLUG_DET",
0184 "MAIN_CHARGE_PLUG_DET",
0185 "MAIN_EXT_CH_NOT_OK",
0186 "MAIN_CH_TH_PROT_R",
0187 "MAIN_CH_TH_PROT_F",
0188 "VBUS_DET_F",
0189 "VBUS_DET_R",
0190 "USB_LINK_STATUS",
0191 "USB_CH_TH_PROT_R",
0192 "USB_CH_TH_PROT_F",
0193 "USB_CHARGER_NOT_OKR",
0194 "VBUS_OVV",
0195 "CH_WD_EXP",
0196 "VBUS_CH_DROP_END";
0197 monitored-battery = <&battery>;
0198 vddadc-supply = <&ab8500_ldo_tvout_reg>;
0199 io-channels = <&gpadc 0x03>,
0200 <&gpadc 0x0a>,
0201 <&gpadc 0x09>,
0202 <&gpadc 0x0b>;
0203 io-channel-names = "main_charger_v",
0204 "main_charger_c",
0205 "vbus_v",
0206 "usb_charger_c";
0207 };
0208
0209 ab8500_chargalg {
0210 compatible = "stericsson,ab8500-chargalg";
0211 monitored-battery = <&battery>;
0212 };
0213
0214 ab8500_usb: phy {
0215 compatible = "stericsson,ab8500-usb";
0216 interrupts = <90 IRQ_TYPE_LEVEL_HIGH>,
0217 <96 IRQ_TYPE_LEVEL_HIGH>,
0218 <14 IRQ_TYPE_LEVEL_HIGH>,
0219 <15 IRQ_TYPE_LEVEL_HIGH>,
0220 <79 IRQ_TYPE_LEVEL_HIGH>,
0221 <74 IRQ_TYPE_LEVEL_HIGH>,
0222 <75 IRQ_TYPE_LEVEL_HIGH>;
0223 interrupt-names = "ID_WAKEUP_R",
0224 "ID_WAKEUP_F",
0225 "VBUS_DET_F",
0226 "VBUS_DET_R",
0227 "USB_LINK_STATUS",
0228 "USB_ADP_PROBE_PLUG",
0229 "USB_ADP_PROBE_UNPLUG";
0230 vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
0231 v-ape-supply = <&db8500_vape_reg>;
0232 musb_1v8-supply = <&db8500_vsmps2_reg>;
0233 clocks = <&prcmu_clk PRCMU_SYSCLK>;
0234 clock-names = "sysclk";
0235 #phy-cells = <0>;
0236 };
0237
0238 key {
0239 compatible = "stericsson,ab8500-poweron-key";
0240 interrupts = <6 IRQ_TYPE_LEVEL_HIGH>,
0241 <7 IRQ_TYPE_LEVEL_HIGH>;
0242 interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
0243 };
0244
0245 ab8500-sysctrl {
0246 compatible = "stericsson,ab8500-sysctrl";
0247 };
0248
0249 pwm@1 {
0250 compatible = "stericsson,ab8500-pwm";
0251 reg = <1>;
0252 clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
0253 clock-names = "intclk";
0254 #pwm-cells = <1>;
0255 };
0256
0257 pwm@2 {
0258 compatible = "stericsson,ab8500-pwm";
0259 reg = <2>;
0260 clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
0261 clock-names = "intclk";
0262 #pwm-cells = <1>;
0263 };
0264
0265 pwm@3 {
0266 compatible = "stericsson,ab8500-pwm";
0267 reg = <3>;
0268 clocks = <&ab8500_clock AB8500_SYSCLK_INT>;
0269 clock-names = "intclk";
0270 #pwm-cells = <1>;
0271 };
0272
0273 codec: codec {
0274 compatible = "stericsson,ab8500-codec";
0275
0276 V-AUD-supply = <&ab8500_ldo_audio_reg>;
0277 V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
0278 V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
0279 V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
0280
0281 clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>;
0282 clock-names = "audioclk";
0283
0284 stericsson,earpeice-cmv = <950>; /* Units in mV. */
0285 };
0286
0287 ext_regulators: regulator-external {
0288 compatible = "stericsson,ab8500-ext-regulator";
0289
0290 ab8500_ext1_reg: ab8500_ext1 {
0291 regulator-min-microvolt = <1800000>;
0292 regulator-max-microvolt = <1800000>;
0293 regulator-boot-on;
0294 regulator-always-on;
0295 };
0296
0297 ab8500_ext2_reg: ab8500_ext2 {
0298 regulator-min-microvolt = <1360000>;
0299 regulator-max-microvolt = <1360000>;
0300 regulator-boot-on;
0301 regulator-always-on;
0302 };
0303
0304 ab8500_ext3_reg: ab8500_ext3 {
0305 regulator-min-microvolt = <3400000>;
0306 regulator-max-microvolt = <3400000>;
0307 regulator-boot-on;
0308 };
0309 };
0310
0311 regulator {
0312 compatible = "stericsson,ab8500-regulator";
0313 vin-supply = <&ab8500_ext3_reg>;
0314
0315 // supplies to the display/camera
0316 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
0317 regulator-min-microvolt = <2800000>;
0318 regulator-max-microvolt = <3300000>;
0319 regulator-boot-on;
0320 /* BUG: If turned off MMC will be affected. */
0321 regulator-always-on;
0322 };
0323
0324 // supplies to the on-board eMMC
0325 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
0326 regulator-min-microvolt = <1100000>;
0327 regulator-max-microvolt = <3300000>;
0328 };
0329
0330 // supply for VAUX3; SDcard slots
0331 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
0332 regulator-min-microvolt = <1100000>;
0333 regulator-max-microvolt = <3300000>;
0334 };
0335
0336 // supply for v-intcore12; VINTCORE12 LDO
0337 ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
0338 };
0339
0340 // supply for tvout; gpadc; TVOUT LDO
0341 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
0342 };
0343
0344 // supply for ab8500-vaudio; VAUDIO LDO
0345 ab8500_ldo_audio_reg: ab8500_ldo_audio {
0346 };
0347
0348 // supply for v-anamic1 VAMIC1 LDO
0349 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
0350 };
0351
0352 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
0353 ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
0354 };
0355
0356 // supply for v-dmic; VDMIC LDO
0357 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
0358 };
0359
0360 // supply for U8500 CSI/DSI; VANA LDO
0361 ab8500_ldo_ana_reg: ab8500_ldo_ana {
0362 };
0363 };
0364 };
0365 };
0366
0367 sound {
0368 stericsson,audio-codec = <&codec>;
0369 clocks = <&prcmu_clk PRCMU_SYSCLK>, <&ab8500_clock AB8500_SYSCLK_ULP>, <&ab8500_clock AB8500_SYSCLK_INT>;
0370 clock-names = "sysclk", "ulpclk", "intclk";
0371 };
0372
0373 mcde@a0350000 {
0374 vana-supply = <&ab8500_ldo_ana_reg>;
0375
0376 dsi@a0351000 {
0377 vana-supply = <&ab8500_ldo_ana_reg>;
0378 };
0379 dsi@a0352000 {
0380 vana-supply = <&ab8500_ldo_ana_reg>;
0381 };
0382 dsi@a0353000 {
0383 vana-supply = <&ab8500_ldo_ana_reg>;
0384 };
0385 };
0386
0387 usb_per5@a03e0000 {
0388 phys = <&ab8500_usb>;
0389 phy-names = "usb";
0390 };
0391 };
0392 };