/* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include &rpm_bus { rpm-regulator-smpa1 { status = "okay"; pmtitanium_s1: regulator-s1 { regulator-min-microvolt = <870000>; regulator-max-microvolt = <1156000>; qcom,init-voltage = <1000000>; status = "okay"; }; }; /* PMTITANIUM S2 - VDD_CX supply */ rpm-regulator-smpa2 { status = "okay"; pmtitanium_s2_level: regulator-s2-level { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s2_level"; qcom,set = <3>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,use-voltage-level; }; pmtitanium_s2_floor_level: regulator-s2-floor-level { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s2_floor_level"; qcom,set = <3>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,use-voltage-floor-level; qcom,always-send-voltage; }; pmtitanium_s2_level_ao: regulator-s2-level-ao { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s2_level_ao"; qcom,set = <1>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,use-voltage-level; }; }; rpm-regulator-smpa3 { status = "okay"; pmtitanium_s3: regulator-s3 { regulator-min-microvolt = <1225000>; regulator-max-microvolt = <1225000>; qcom,init-voltage = <1225000>; status = "okay"; }; }; rpm-regulator-smpa4 { status = "okay"; pmtitanium_s4: regulator-s4 { regulator-min-microvolt = <1900000>; regulator-max-microvolt = <2050000>; qcom,init-voltage = <1900000>; status = "okay"; }; }; /* VDD_MX supply */ rpm-regulator-smpa7 { status = "okay"; pmtitanium_s7_level: regulator-s7-level { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s7_level"; qcom,set = <3>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,init-voltage-level = ; qcom,use-voltage-level; qcom,always-send-voltage; }; pmtitanium_s7_level_ao: regulator-s7-level-ao { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s7_level_ao"; qcom,set = <1>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,use-voltage-level; qcom,always-send-voltage; }; pmtitanium_s7_level_so: regulator-s7-level-so { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_s7_level_so"; qcom,set = <2>; regulator-min-microvolt = ; regulator-max-microvolt = ; qcom,init-voltage-level = ; qcom,use-voltage-level; }; }; rpm-regulator-ldoa1 { status = "okay"; pmtitanium_l1: regulator-l1 { regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; qcom,init-voltage = <1000000>; status = "okay"; }; }; rpm-regulator-ldoa2 { status = "okay"; pmtitanium_l2: regulator-l2 { regulator-min-microvolt = <975000>; regulator-max-microvolt = <1225000>; qcom,init-voltage = <975000>; status = "okay"; }; }; rpm-regulator-ldoa3 { status = "okay"; pmtitanium_l3: regulator-l3 { regulator-min-microvolt = <925000>; regulator-max-microvolt = <925000>; qcom,init-voltage = <925000>; status = "okay"; }; }; rpm-regulator-ldoa5 { status = "okay"; pmtitanium_l5: regulator-l5 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; qcom,init-voltage = <1800000>; status = "okay"; }; }; rpm-regulator-ldoa6 { status = "okay"; pmtitanium_l6: regulator-l6 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; qcom,init-voltage = <1800000>; status = "okay"; }; }; rpm-regulator-ldoa7 { status = "okay"; pmtitanium_l7: regulator-l7 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1900000>; qcom,init-voltage = <1800000>; status = "okay"; }; pmtitanium_l7_ao: regulator-l7-ao { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pmtitanium_l7_ao"; qcom,set = <1>; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1900000>; qcom,init-voltage = <1800000>; }; }; rpm-regulator-ldoa8 { status = "okay"; pmtitanium_l8: regulator-l8 { regulator-min-microvolt = <2900000>; regulator-max-microvolt = <2900000>; qcom,init-voltage = <2900000>; status = "okay"; }; }; rpm-regulator-ldoa9 { status = "okay"; pmtitanium_l9: regulator-l9 { regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3300000>; qcom,init-voltage = <3000000>; status = "okay"; }; }; rpm-regulator-ldoa10 { status = "okay"; pmtitanium_l10: regulator-l10 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; qcom,init-voltage = <2850000>; status = "okay"; }; }; rpm-regulator-ldoa11 { status = "okay"; pmtitanium_l11: regulator-l11 { regulator-min-microvolt = <2950000>; regulator-max-microvolt = <2950000>; qcom,init-voltage = <2950000>; status = "okay"; }; }; rpm-regulator-ldoa12 { status = "okay"; pmtitanium_l12: regulator-l12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <2950000>; qcom,init-voltage = <1800000>; status = "okay"; }; }; rpm-regulator-ldoa13 { status = "okay"; pmtitanium_l13: regulator-l13 { regulator-min-microvolt = <3125000>; regulator-max-microvolt = <3125000>; qcom,init-voltage = <3125000>; status = "okay"; }; }; rpm-regulator-ldoa16 { status = "okay"; pmtitanium_l16: regulator-l16 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; qcom,init-voltage = <1800000>; status = "okay"; }; }; rpm-regulator-ldoa17 { status = "okay"; pmtitanium_l17: regulator-l17 { regulator-min-microvolt = <2850000>; regulator-max-microvolt = <2850000>; qcom,init-voltage = <2850000>; status = "okay"; }; }; rpm-regulator-ldoa19 { status = "okay"; pmtitanium_l19: regulator-l19 { regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1350000>; qcom,init-voltage = <1200000>; status = "okay"; }; }; rpm-regulator-ldoa22 { status = "okay"; pmtitanium_l22: regulator-l22 { regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; qcom,init-voltage = <2800000>; status = "okay"; }; }; rpm-regulator-ldoa23 { status = "okay"; pmtitanium_l23: regulator-l23 { regulator-min-microvolt = <975000>; regulator-max-microvolt = <1225000>; qcom,init-voltage = <975000>; status = "okay"; }; }; }; &spmi_bus { qcom,pmtitanium@1 { /* PMTITANIUM S5 + S6 = VDD_APC supply */ pmtitanium_s5: spm-regulator@2000 { compatible = "qcom,spm-regulator"; reg = <0x2000 0x100>; regulator-name = "pmtitanium_s5"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1140000>; pmtitanium_s5_limit: avs-limit-regulator { regulator-name = "pmtitanium_s5_avs_limit"; regulator-min-microvolt = <400000>; regulator-max-microvolt = <1140000>; }; }; }; }; &soc { apc_mem_acc_vreg: regulator@019461d4 { compatible = "qcom,mem-acc-regulator"; reg = <0x019461d4 0x4>, <0x019461d8 0x4>; reg-names = "acc-sel-l1", "acc-sel-l2"; regulator-name = "apc_mem_acc_corner"; regulator-min-microvolt = <1>; regulator-max-microvolt = <2>; qcom,corner-acc-map = <0x1 0x0>; qcom,acc-sel-l1-bit-pos = <0>; qcom,acc-sel-l1-bit-size = <1>; qcom,acc-sel-l2-bit-pos = <0>; qcom,acc-sel-l2-bit-size = <1>; }; apc_cpr: cpr4-ctrl@b018000 { compatible = "qcom,cpr4-msmtitanium-apss-regulator"; reg = <0xb018000 0x4000>, <0xa4000 0x1000>; reg-names = "cpr_ctrl", "fuse_base"; interrupts = , ; interrupt-names = "cpr", "ceiling"; qcom,cpr-ctrl-name = "apc"; qcom,cpr-sensor-time = <1000>; qcom,cpr-loop-time = <5000000>; qcom,cpr-idle-cycles = <15>; qcom,cpr-step-quot-init-min = <13>; qcom,cpr-step-quot-init-max = <13>; qcom,cpr-count-mode = <2>; /* Staggered */ qcom,cpr-down-error-step-limit = <1>; qcom,cpr-up-error-step-limit = <1>; qcom,apm-ctrl = <&apc_apm>; qcom,apm-threshold-voltage = <850000>; qcom,apm-hysteresis-voltage = <5000>; vdd-supply = <&pmtitanium_s5>; qcom,voltage-step = <5000>; vdd-limit-supply = <&pmtitanium_s5_limit>; mem-acc-supply = <&apc_mem_acc_vreg>; thread@0 { qcom,cpr-thread-id = <0>; qcom,cpr-consecutive-up = <1>; qcom,cpr-consecutive-down = <1>; qcom,cpr-up-threshold = <1>; qcom,cpr-down-threshold = <1>; apc_vreg: regulator { regulator-name = "apc_corner"; regulator-min-microvolt = <1>; regulator-max-microvolt = <8>; qcom,cpr-fuse-corners = <4>; qcom,cpr-fuse-combos = <8>; qcom,cpr-speed-bins = <1>; qcom,cpr-speed-bin-corners = <8>; qcom,cpr-corners = <8>; qcom,cpr-corner-fmax-map = <1 2 4 8>; qcom,cpr-voltage-ceiling = <645000 720000 790000 865000 920000 990000 1065000 1065000>; qcom,cpr-voltage-floor = <565000 595000 650000 710000 745000 785000 845000 845000>; qcom,mem-acc-voltage = <1 1 2 2 2 2 2 2>; qcom,corner-frequencies = <652800000 1036800000 1401600000 1689600000 1843200000 1958400000 2150400000 2208000000>; qcom,allow-voltage-interpolation; qcom,allow-quotient-interpolation; qcom,cpr-scaled-open-loop-voltage-as-ceiling; }; }; }; gfx_mem_acc: regulator@0194415c { compatible = "qcom,mem-acc-regulator"; reg = <0x0194415c 0x4>; reg-names = "acc-sel-l1"; regulator-name = "gfx_mem_acc_corner"; regulator-min-microvolt = <1>; regulator-max-microvolt = <2>; qcom,acc-sel-l1-bit-pos = <0>; qcom,acc-sel-l1-bit-size = <1>; qcom,corner-acc-map = <0x1 0x0>; }; gfx_vreg_corner: ldo@0185f000 { compatible = "qcom,msmtitanium-gfx-ldo"; reg = <0x0185f000 0x30>, <0xa4000 0x1000>; reg-names = "ldo_addr", "efuse_addr"; regulator-name = "msm_gfx_ldo"; regulator-min-microvolt = <1>; regulator-max-microvolt = <7>; qcom,ldo-voltage-ceiling = <580000 650000 720000>; qcom,ldo-voltage-floor = <500000 500000 590000>; qcom,num-corners = <7>; qcom,num-ldo-corners = <3>; qcom,ldo-enable-corner-map = <0 0 0 0 0 0 0>; qcom,init-corner = <4>; vdd-cx-supply = <&pmtitanium_s2_level>; qcom,vdd-cx-corner-map = , , , , , , ; mem-acc-supply = <&gfx_mem_acc>; qcom,mem-acc-corner-map = <1 1 1 2 2 2 2>; }; eldo2_titanium: eldo2 { compatible = "regulator-fixed"; regulator-name = "eldo2_titanium"; startup-delay-us = <0>; enable-active-high; gpio = <&tlmm 50 0>; regulator-always-on; }; adv_vreg: adv_vreg { compatible = "regulator-fixed"; regulator-name = "adv_vreg"; startup-delay-us = <400>; enable-avtive-high; gpio = <&pmtitanium_gpios 5 0>; }; };