| // SPDX-License-Identifier: GPL-2.0-or-later |
| /* |
| * Copyright 2012 Linaro Ltd |
| */ |
| |
| #include <dt-bindings/clock/ste-ab8500.h> |
| |
| / { |
| /* Essential housekeeping hardware monitors */ |
| iio-hwmon { |
| compatible = "iio-hwmon"; |
| io-channels = <&gpadc 0x02>, /* Battery temperature */ |
| <&gpadc 0x03>, /* Main charger voltage */ |
| <&gpadc 0x08>, /* Main battery voltage */ |
| <&gpadc 0x09>, /* VBUS */ |
| <&gpadc 0x0a>, /* Main charger current */ |
| <&gpadc 0x0b>, /* USB charger current */ |
| <&gpadc 0x0c>, /* Backup battery voltage */ |
| <&gpadc 0x0d>, /* Die temperature */ |
| <&gpadc 0x12>; /* Crystal temperature */ |
| }; |
| |
| soc { |
| prcmu@80157000 { |
| ab8500 { |
| compatible = "stericsson,ab8500"; |
| interrupt-parent = <&intc>; |
| interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| |
| ab8500_clock: clock-controller { |
| compatible = "stericsson,ab8500-clk"; |
| #clock-cells = <1>; |
| }; |
| |
| ab8500_gpio: ab8500-gpio { |
| compatible = "stericsson,ab8500-gpio"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |
| |
| ab8500-rtc { |
| compatible = "stericsson,ab8500-rtc"; |
| interrupts = <17 IRQ_TYPE_LEVEL_HIGH>, |
| <18 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "60S", "ALARM"; |
| }; |
| |
| gpadc: ab8500-gpadc { |
| compatible = "stericsson,ab8500-gpadc"; |
| interrupts = <32 IRQ_TYPE_LEVEL_HIGH>, |
| <39 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "HW_CONV_END", "SW_CONV_END"; |
| vddadc-supply = <&ab8500_ldo_tvout_reg>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| #io-channel-cells = <1>; |
| |
| /* GPADC channels */ |
| bat_ctrl: channel@01 { |
| reg = <0x01>; |
| }; |
| btemp_ball: channel@02 { |
| reg = <0x02>; |
| }; |
| main_charger_v: channel@03 { |
| reg = <0x03>; |
| }; |
| acc_detect1: channel@04 { |
| reg = <0x04>; |
| }; |
| acc_detect2: channel@05 { |
| reg = <0x05>; |
| }; |
| adc_aux1: channel@06 { |
| reg = <0x06>; |
| }; |
| adc_aux2: channel@07 { |
| reg = <0x07>; |
| }; |
| main_batt_v: channel@08 { |
| reg = <0x08>; |
| }; |
| vbus_v: channel@09 { |
| reg = <0x09>; |
| }; |
| main_charger_c: channel@0a { |
| reg = <0x0a>; |
| }; |
| usb_charger_c: channel@0b { |
| reg = <0x0b>; |
| }; |
| bk_bat_v: channel@0c { |
| reg = <0x0c>; |
| }; |
| die_temp: channel@0d { |
| reg = <0x0d>; |
| }; |
| usb_id: channel@0e { |
| reg = <0x0e>; |
| }; |
| xtal_temp: channel@12 { |
| reg = <0x12>; |
| }; |
| vbat_true_meas: channel@13 { |
| reg = <0x13>; |
| }; |
| bat_ctrl_and_ibat: channel@1c { |
| reg = <0x1c>; |
| }; |
| vbat_meas_and_ibat: channel@1d { |
| reg = <0x1d>; |
| }; |
| vbat_true_meas_and_ibat: channel@1e { |
| reg = <0x1e>; |
| }; |
| bat_temp_and_ibat: channel@1f { |
| reg = <0x1f>; |
| }; |
| }; |
| |
| ab8500_temp { |
| compatible = "stericsson,abx500-temp"; |
| interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "ABX500_TEMP_WARM"; |
| io-channels = <&gpadc 0x06>, |
| <&gpadc 0x07>; |
| io-channel-names = "aux1", "aux2"; |
| }; |
| |
| ab8500_battery: ab8500_battery { |
| stericsson,battery-type = "LIPO"; |
| thermistor-on-batctrl; |
| }; |
| |
| ab8500_fg { |
| compatible = "stericsson,ab8500-fg"; |
| interrupts = <24 IRQ_TYPE_LEVEL_HIGH>, |
| <8 IRQ_TYPE_LEVEL_HIGH>, |
| <28 IRQ_TYPE_LEVEL_HIGH>, |
| <27 IRQ_TYPE_LEVEL_HIGH>, |
| <26 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "NCONV_ACCU", |
| "BATT_OVV", |
| "LOW_BAT_F", |
| "CC_INT_CALIB", |
| "CCEOC"; |
| battery = <&ab8500_battery>; |
| io-channels = <&gpadc 0x08>; |
| io-channel-names = "main_bat_v"; |
| }; |
| |
| ab8500_btemp { |
| compatible = "stericsson,ab8500-btemp"; |
| interrupts = <20 IRQ_TYPE_LEVEL_HIGH>, |
| <80 IRQ_TYPE_LEVEL_HIGH>, |
| <83 IRQ_TYPE_LEVEL_HIGH>, |
| <81 IRQ_TYPE_LEVEL_HIGH>, |
| <82 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "BAT_CTRL_INDB", |
| "BTEMP_LOW", |
| "BTEMP_HIGH", |
| "BTEMP_LOW_MEDIUM", |
| "BTEMP_MEDIUM_HIGH"; |
| battery = <&ab8500_battery>; |
| io-channels = <&gpadc 0x02>, |
| <&gpadc 0x01>; |
| io-channel-names = "btemp_ball", |
| "bat_ctrl"; |
| }; |
| |
| ab8500_charger { |
| compatible = "stericsson,ab8500-charger"; |
| interrupts = <10 IRQ_TYPE_LEVEL_HIGH>, |
| <11 IRQ_TYPE_LEVEL_HIGH>, |
| <0 IRQ_TYPE_LEVEL_HIGH>, |
| <107 IRQ_TYPE_LEVEL_HIGH>, |
| <106 IRQ_TYPE_LEVEL_HIGH>, |
| <14 IRQ_TYPE_LEVEL_HIGH>, |
| <15 IRQ_TYPE_LEVEL_HIGH>, |
| <79 IRQ_TYPE_LEVEL_HIGH>, |
| <105 IRQ_TYPE_LEVEL_HIGH>, |
| <104 IRQ_TYPE_LEVEL_HIGH>, |
| <89 IRQ_TYPE_LEVEL_HIGH>, |
| <22 IRQ_TYPE_LEVEL_HIGH>, |
| <21 IRQ_TYPE_LEVEL_HIGH>, |
| <16 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "MAIN_CH_UNPLUG_DET", |
| "MAIN_CHARGE_PLUG_DET", |
| "MAIN_EXT_CH_NOT_OK", |
| "MAIN_CH_TH_PROT_R", |
| "MAIN_CH_TH_PROT_F", |
| "VBUS_DET_F", |
| "VBUS_DET_R", |
| "USB_LINK_STATUS", |
| "USB_CH_TH_PROT_R", |
| "USB_CH_TH_PROT_F", |
| "USB_CHARGER_NOT_OKR", |
| "VBUS_OVV", |
| "CH_WD_EXP", |
| "VBUS_CH_DROP_END"; |
| battery = <&ab8500_battery>; |
| vddadc-supply = <&ab8500_ldo_tvout_reg>; |
| io-channels = <&gpadc 0x03>, |
| <&gpadc 0x0a>, |
| <&gpadc 0x09>, |
| <&gpadc 0x0b>; |
| io-channel-names = "main_charger_v", |
| "main_charger_c", |
| "vbus_v", |
| "usb_charger_c"; |
| }; |
| |
| ab8500_chargalg { |
| compatible = "stericsson,ab8500-chargalg"; |
| battery = <&ab8500_battery>; |
| }; |
| |
| ab8500_usb: ab8500_usb { |
| compatible = "stericsson,ab8500-usb"; |
| interrupts = <90 IRQ_TYPE_LEVEL_HIGH>, |
| <96 IRQ_TYPE_LEVEL_HIGH>, |
| <14 IRQ_TYPE_LEVEL_HIGH>, |
| <15 IRQ_TYPE_LEVEL_HIGH>, |
| <79 IRQ_TYPE_LEVEL_HIGH>, |
| <74 IRQ_TYPE_LEVEL_HIGH>, |
| <75 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "ID_WAKEUP_R", |
| "ID_WAKEUP_F", |
| "VBUS_DET_F", |
| "VBUS_DET_R", |
| "USB_LINK_STATUS", |
| "USB_ADP_PROBE_PLUG", |
| "USB_ADP_PROBE_UNPLUG"; |
| vddulpivio18-supply = <&ab8500_ldo_intcore_reg>; |
| v-ape-supply = <&db8500_vape_reg>; |
| musb_1v8-supply = <&db8500_vsmps2_reg>; |
| clocks = <&prcmu_clk PRCMU_SYSCLK>; |
| clock-names = "sysclk"; |
| #phy-cells = <0>; |
| }; |
| |
| ab8500-ponkey { |
| compatible = "stericsson,ab8500-poweron-key"; |
| interrupts = <6 IRQ_TYPE_LEVEL_HIGH>, |
| <7 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "ONKEY_DBF", "ONKEY_DBR"; |
| }; |
| |
| ab8500-sysctrl { |
| compatible = "stericsson,ab8500-sysctrl"; |
| }; |
| |
| ab8500-pwm-1 { |
| compatible = "stericsson,ab8500-pwm"; |
| clocks = <&ab8500_clock AB8500_SYSCLK_INT>; |
| clock-names = "intclk"; |
| }; |
| |
| ab8500-pwm-2 { |
| compatible = "stericsson,ab8500-pwm"; |
| clocks = <&ab8500_clock AB8500_SYSCLK_INT>; |
| clock-names = "intclk"; |
| }; |
| |
| ab8500-pwm-3 { |
| compatible = "stericsson,ab8500-pwm"; |
| clocks = <&ab8500_clock AB8500_SYSCLK_INT>; |
| clock-names = "intclk"; |
| }; |
| |
| ab8500-debugfs { |
| compatible = "stericsson,ab8500-debug"; |
| }; |
| |
| codec: ab8500-codec { |
| compatible = "stericsson,ab8500-codec"; |
| |
| V-AUD-supply = <&ab8500_ldo_audio_reg>; |
| V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>; |
| V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>; |
| V-DMIC-supply = <&ab8500_ldo_dmic_reg>; |
| |
| clocks = <&ab8500_clock AB8500_SYSCLK_AUDIO>; |
| clock-names = "audioclk"; |
| |
| stericsson,earpeice-cmv = <950>; /* Units in mV. */ |
| }; |
| |
| ext_regulators: ab8500-ext-regulators { |
| compatible = "stericsson,ab8500-ext-regulator"; |
| |
| ab8500_ext1_reg: ab8500_ext1 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| ab8500_ext2_reg: ab8500_ext2 { |
| regulator-min-microvolt = <1360000>; |
| regulator-max-microvolt = <1360000>; |
| regulator-boot-on; |
| regulator-always-on; |
| }; |
| |
| ab8500_ext3_reg: ab8500_ext3 { |
| regulator-min-microvolt = <3400000>; |
| regulator-max-microvolt = <3400000>; |
| regulator-boot-on; |
| }; |
| }; |
| |
| ab8500-regulators { |
| compatible = "stericsson,ab8500-regulator"; |
| vin-supply = <&ab8500_ext3_reg>; |
| |
| // supplies to the display/camera |
| ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-boot-on; |
| /* BUG: If turned off MMC will be affected. */ |
| regulator-always-on; |
| }; |
| |
| // supplies to the on-board eMMC |
| ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| // supply for VAUX3; SDcard slots |
| ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| |
| // supply for v-intcore12; VINTCORE12 LDO |
| ab8500_ldo_intcore_reg: ab8500_ldo_intcore { |
| }; |
| |
| // supply for tvout; gpadc; TVOUT LDO |
| ab8500_ldo_tvout_reg: ab8500_ldo_tvout { |
| }; |
| |
| // supply for ab8500-vaudio; VAUDIO LDO |
| ab8500_ldo_audio_reg: ab8500_ldo_audio { |
| }; |
| |
| // supply for v-anamic1 VAMIC1 LDO |
| ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { |
| }; |
| |
| // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1 |
| ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { |
| }; |
| |
| // supply for v-dmic; VDMIC LDO |
| ab8500_ldo_dmic_reg: ab8500_ldo_dmic { |
| }; |
| |
| // supply for U8500 CSI/DSI; VANA LDO |
| ab8500_ldo_ana_reg: ab8500_ldo_ana { |
| }; |
| }; |
| }; |
| }; |
| |
| sound { |
| stericsson,audio-codec = <&codec>; |
| clocks = <&prcmu_clk PRCMU_SYSCLK>, <&ab8500_clock AB8500_SYSCLK_ULP>, <&ab8500_clock AB8500_SYSCLK_INT>; |
| clock-names = "sysclk", "ulpclk", "intclk"; |
| }; |
| |
| mcde@a0350000 { |
| vana-supply = <&ab8500_ldo_ana_reg>; |
| |
| dsi@a0351000 { |
| vana-supply = <&ab8500_ldo_ana_reg>; |
| }; |
| dsi@a0352000 { |
| vana-supply = <&ab8500_ldo_ana_reg>; |
| }; |
| dsi@a0353000 { |
| vana-supply = <&ab8500_ldo_ana_reg>; |
| }; |
| }; |
| |
| usb_per5@a03e0000 { |
| phys = <&ab8500_usb>; |
| phy-names = "usb"; |
| }; |
| }; |
| }; |