Voltages of Each VDD in MSM7201A - Android

Does anyone know the exact voltage at every VDD in the MSM7201A? I'm looking at testing some undervolting but I need more info.

http://android.git.kernel.org/?p=kernel/msm.git;a=blob_plain;f=arch/arm/mach-msm/acpuclock.c;hb=HEAD
/* MSM7201A Levels 3-6 all correspond to 1.2V, level 7 corresponds to 1.325V. */
enum {
VDD_0 = 0,
VDD_1 = 1,
VDD_2 = 2,
VDD_3 = 3,
VDD_4 = 3,
VDD_5 = 3,
VDD_6 = 3,
VDD_7 = 7,
VDD_END
};

Related

[Q] kernel developing/tweaking

Just wondering what pre-requisites were required. Are all of you Kernel devs actual programmers. What languages and any other skills would be required to understand what is going on.
Adrynalyne's guide is awesome and I was actually able to produce something usable , by following the directions, but understanding for example the Make command line we had to use, ARCH=arm, etc ????? have no idea what that line actually means, but would like to.
I have multiple certs, network+, active directory etc, and learned it all on my own so im not worried about understanding, just looking to be pointed in the right direction so as not to waste time learning languages or whatever that would not be relative.
Thanks again for any info.
Make calls the makefile and follows instructions contained within.
J # tells gcc compiler how many threads to use. 1 thread per core. Rule is # of cores +1. This can increase compile speed tremendously.
ARCH specifies the CPU architecture.
Examples are ARM, x86, and x86-64.
The rest tells gcc to compile using the toolchain which allows gcc to compile for the specified architecture.
Sent from my ADR6400L using XDA App
adrynalyne said:
Make calls the makefile and follows instructions contained within.
J # tells gcc compiler how many threads to use. 1 thread per core. Rule is # of cores +1. This can increase compile speed tremendously.
ARCH specifies the CPU architecture.
Examples are ARM, x86, and x86-64.
The rest tells gcc to compile using the toolchain which allows gcc to compile for the specified architecture.
Sent from my ADR6400L using XDA App
Click to expand...
Click to collapse
As always, thank you!
Anyone else have any words of advice on the topic question.
Thanks again.
you dont necessarily need to be a super coder. for example here is a common thing all the n1 kernel devs do to boost the audio in the nexus one in the arch/arm.audio.c file and board-mahimahi.audio.c file.
STOCK
PHP:
[Q6_HW_HANDSET] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_HEADSET] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_SPEAKER] = {
.min_gain = -1500,
.max_gain = 0,
},
[Q6_HW_TTY] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_BT_SCO] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_BT_A2DP] = {
.min_gain = -2000,
.max_gain = 0,
},
and the new values to "boost" volume
PHP:
[Q6_HW_HANDSET] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_HEADSET] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_SPEAKER] = {
.min_gain = -2000,
.max_gain = 800,
},
[Q6_HW_TTY] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_BT_SCO] = {
.min_gain = -2000,
.max_gain = 800,
},
[Q6_HW_BT_A2DP] = {
.min_gain = -2000,
.max_gain = 800,
},
that's standard for any kernel released for that device, and its pretty easy to do. i've pulled the source and compiled my own kernel many times, but i am not a good coder at all, just a few classes in college. i managed to make changes to the battery driver and get it incorporated into the cyan repo, so i definitely think you should look into it. there is nothing more rewarding then contributing back to the community.
also take a look at the cyanogen kernel, and follow the daily commits and see the type of changes made. some will be bug fixes, but you can go way back in time and see major edits as well.
go here to the kernel:
https://github.com/CyanogenMod/cm-kernel
then click COMMITS on the top. then each commit, click on the description text and it will show you the old vs new code. it will show you what the original code was, and what that commit replaced that code with. its very insightful for something like this.
it also is a good way to see what is happening with your favorite ROMs, you just have to find the repo for the ROM of your choice. cheers.
RogerPodacter said:
you dont necessarily need to be a super coder. for example here is a common thing all the n1 kernel devs do to boost the audio in the nexus one in the arch/arm.audio.c file and board-mahimahi.audio.c file.
STOCK
PHP:
[Q6_HW_HANDSET] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_HEADSET] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_SPEAKER] = {
.min_gain = -1500,
.max_gain = 0,
},
[Q6_HW_TTY] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_BT_SCO] = {
.min_gain = -2000,
.max_gain = 0,
},
[Q6_HW_BT_A2DP] = {
.min_gain = -2000,
.max_gain = 0,
},
and the new values to "boost" volume
PHP:
[Q6_HW_HANDSET] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_HEADSET] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_SPEAKER] = {
.min_gain = -2000,
.max_gain = 800,
},
[Q6_HW_TTY] = {
.min_gain = -1500,
.max_gain = 1100,
},
[Q6_HW_BT_SCO] = {
.min_gain = -2000,
.max_gain = 800,
},
[Q6_HW_BT_A2DP] = {
.min_gain = -2000,
.max_gain = 800,
},
that's standard for any kernel released for that device, and its pretty easy to do. i've pulled the source and compiled my own kernel many times, but i am not a good coder at all, just a few classes in college. i managed to make changes to the battery driver and get it incorporated into the cyan repo, so i definitely think you should look into it. there is nothing more rewarding then contributing back to the community.
also take a look at the cyanogen kernel, and follow the daily commits and see the type of changes made. some will be bug fixes, but you can go way back in time and see major edits as well.
go here to the kernel:
https://github.com/CyanogenMod/cm-kernel
then click COMMITS on the top. then each commit, click on the description text and it will show you the old vs new code. it will show you what the original code was, and what that commit replaced that code with. its very insightful for something like this.
it also is a good way to see what is happening with your favorite ROMs, you just have to find the repo for the ROM of your choice. cheers.
Click to expand...
Click to collapse
Very helpful and a great place to start, much appreciated, its funny posted this example in particular as i have been looking around on how to change the max possible volume of my phone, again thanks.
Its funny looking around the directories of the kernel source theres a sound subdirectory, which I have been looking for the above tweaks, but its not where I expected to find it.
Seems alot of stuff is in the Arch, Arm directories, what is the signifigance?
also cant find those particular battery tweaks in the mecha kernel. any idea where that code is in the mecha kernel.
happimeal said:
also cant find those particular battery tweaks in the mecha kernel. any idea where that code is in the mecha kernel.
Click to expand...
Click to collapse
here is the enhanced battery driver i did:
https://github.com/CyanogenMod/cm-k...a76d7a3bb91ec3#drivers/power/ds2784_battery.c
it looks a little overwhelming. but it literally took my months of research, compiling my own test kernel, before i finally got those couple hunder lines added and working. prior to that i had no experience except c++ class from college, and used google to learn and learn some more.
the driver is in drivers/power/ds2784_battery.c and the additions start at line 401 if you want to see the whole thing:
https://github.com/CyanogenMod/cm-k...a76d7a3bb91ec3/drivers/power/ds2784_battery.c
it was a great feeling once it was all done. check my sig for the link to the app we made too, which actually interacts with the enhanced driver and changes battery register addresses etc.
here's my repo for just the app (java code is what android apps are written in. the kernel is linux/c++). go into the SRC folder is where all the main stuff is.
http://github.com/R0gerP0dacter/BatteryCalibrator
Edit: actually I originally made a detailed commented driver version for someone who wasn't familiar with the project to follow the work. This would be helpful for you.
http://github.com/R0gerP0dacter/n1batcal/blob/master/ds2784_battery.c
Thank you very much for all this info.
Anybody have any idea where the sound/volume data is.
the audio will likely be in that same arch/arm folder. i'd go to the HTC developer site and download the kernel source code, since it has been released already. look thru and you should be able to find it.

Allwinner A23 Tablet: Launching Camera App freezes Tablet.

Hello i changed the Rom on my Tablet to :
PH_A76h_android4.4_v2.0_800x480-auto-gc2035-gc0308-wifi5990p-20141211a.img
Everything works okay, but not the Camera.
The Tablet has 2 Cameras Front and Back with 0,3 Mpixels each.
The are on the same Cable going from the Mainboard to the FrontCam and then to the Back Camera.
When i launch the App the Tablet freezes.. Sometimes it resets itself after an Minute or so (not always)
BTW:
I have saved the Data of the Nand-Partitions with the old Firmware (if you need some infos/settings/config from them)
I also have changed the script0.bin from the old Firmware to fex and changed everything in DragonFaces SystemConfiguration like it was in the Script0.bin from the original Firmware.
Here is the Block i Changed in System-Editor:
Code:
;--------------------------------------------------------------------------------
;vip (video input port) configuration
;vip_used: 0:disable 1:enable
;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer
;vip_dev_qty: The quantity of devices linked to capture bus
;vip_dev(x)_isp_used 0: not use isp 1:use isp
;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb
;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby
;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable
;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable
;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply
;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply
;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply
;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply
;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply
;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply
;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply
;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply
;x indicates the index of the devices which are linked to the same capture bus
;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000
;fill handle string as below:
;axp22_eldo3
;axp22_dldo4
;axp22_eldo2
;fill handle string "" when not using any pmu power supply
;--------------------------------------------------------------------------------
[csi0]
vip_used = 1
vip_mode = 0
vip_dev_qty = 2
vip_csi_pck = port:PE00<2><default><default><default>
vip_csi_mck = port:PE01<2><default><default><default>
vip_csi_hsync = port:PE02<2><default><default><default>
vip_csi_vsync = port:PE03<2><default><default><default>
vip_csi_d0 = port:PE04<2><default><default><default>
vip_csi_d1 = port:PE05<2><default><default><default>
vip_csi_d2 = port:PE06<2><default><default><default>
vip_csi_d3 = port:PE07<2><default><default><default>
vip_csi_d4 = port:PE08<2><default><default><default>
vip_csi_d5 = port:PE09<2><default><default><default>
vip_csi_d6 = port:PE10<2><default><default><default>
vip_csi_d7 = port:PE11<2><default><default><default>
vip_dev0_mname = "siv121d"
vip_dev0_lane = 1
vip_dev0_twi_id = 2
vip_dev0_twi_addr = 102
vip_dev0_isp_used = 0
vip_dev0_fmt = 0
vip_dev0_stby_mode = 0
vip_dev0_vflip = 0
vip_dev0_hflip = 0
vip_dev0_iovdd = "axp22_dldo3"
vip_dev0_iovdd_vol = 2800000
vip_dev0_avdd = "axp22_ldoio0" vip_dev0_avdd_vol = 2800000
vip_dev0_dvdd = "axp22_eldo2" vip_dev0_dvdd_vol = 1800000
vip_dev0_afvdd = ""
vip_dev0_afvdd_vol = 2800000
vip_dev0_power_en =
vip_dev0_reset = port:PE14<1><default><default><0>
vip_dev0_pwdn = port:PE15<1><default><default><1>
vip_dev0_flash_en = port:PB00<1><default><default><0>
vip_dev0_flash_mode =
vip_dev0_af_pwdn =
vip_dev1_mname = "siv121d"
vip_dev1_lane = 1
vip_dev1_twi_id = 2
vip_dev1_twi_addr = 102
vip_dev1_isp_used = 0
vip_dev1_fmt = 0
vip_dev1_stby_mode = 0
vip_dev1_vflip = 0
vip_dev1_hflip = 0
vip_dev1_iovdd = "axp22_dldo3"
vip_dev1_iovdd_vol = 2800000
vip_dev1_avdd = "axp22_ldoio0"
vip_dev1_avdd_vol = 2800000
vip_dev1_dvdd = "axp22_eldo2"
vip_dev1_dvdd_vol = 1800000
vip_dev1_afvdd = ""
vip_dev1_afvdd_vol = 2800000
vip_dev1_power_en =
vip_dev1_reset = port:PE16<1><default><default><0>
vip_dev1_pwdn = port:PE17<1><default><default><1>
vip_dev1_flash_en = port:PB00<1><default><default><0>
vip_dev1_flash_mode =
vip_dev1_af_pwdn =
[camera_list_para]
camera_list_para_used = 0
ov7670 = 0
gc0308 = 1
gt2005 = 0
hi704 = 0
sp0838 = 0
mt9m112 = 0
mt9m113 = 0
gc2035 = 1
ov2655 = 0
hi253 = 1
gc0307 = 0
mt9d112 = 0
ov5640 = 0
ov5647 = 0
gc2015 = 0
ov2643 = 0
gc0329 = 0
gc0309 = 0
s5k4ec = 0
siv121d = 0
siv120d = 0
I also copied camera.cfg from the old /system/etc to the new installation.
But still freezes don't know what to do now.
Please help.

[Overclocking] [SDM710] Need Guidance! Whitescreen!

First of all, hello my name is Clement I'm trying to overclock a kernel for Realme 3 pro (SDM 710)
A little background story Realme has the 3 pro and 5 pro version, although both has a gpu of Adreno 616, in realme 3 pro, the clock speed is limited too 504 Mhz while in the 5 pro version its at 610Mhz
I've tried to change the clock speed in the sdm670-gpu.dtsi but it ends up in white screen.
I changed the values under
Code:
"qcom,gpu-pwrlevels-4
/* NOM */
qcom,[email protected] {
reg = <0>;
qcom,gpu-freq = <504000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <9>;
qcom,bus-max = <11>;
};
/* SVS_L1 */
qcom,[email protected] {
reg = <1>;
qcom,gpu-freq = <430000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,[email protected] {
reg = <2>;
qcom,gpu-freq = <355000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <5>;
qcom,bus-max = <9>;
};
/* LOW SVS */
qcom,[email protected] {
reg = <3>;
qcom,gpu-freq = <267000000>;
qcom,bus-freq = <6>;
qcom,bus-min = <4>;
qcom,bus-max = <8>;
};
/* MIN SVS */
qcom,[email protected] {
reg = <4>;
qcom,gpu-freq = <180000000>;
qcom,bus-freq = <4>;
qcom,bus-min = <3>;
qcom,bus-max = <4>;
};
/* XO */
qcom,[email protected] {
reg = <5>;
qcom,gpu-freq = <0>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
}; "
and adjusted the clock and the power levels.
even changing 1 Mhz will end up in white screen. By the way , the white screen occurs whenever I change the clock speed in the kernel manager to the overclocked clock. If its in the normal clock 504 Mhz, the phone works fine.
I've also noticed that both phones(3p and 5p) have the same exact regulator values so I think it's not a regulator issue.
Values in the driver are also changed.
Can anybody help or point out where i did wrong?
Dmesg log here:
This is the kernel source for the Realme 3 Pro and Realme 5 pro
Links
Dmesg: del. dog /grexifinyt
Kernel Source:
github. com /realme-kernel-opensource/realme3pro-kernel-source/tree/master/arch/arm64/boot/dts/qcom
github. com /realme-kernel-opensource/realmeQ_realme5Pro-kernel-source/tree/master/arch/arm64/boot/dts/qcom
And the file changed is sdm670-gpu.dtsi
I cant seem to post links as I'm a new member

[Overclocking] [SDM710] Need Guidance! Whitescreen!

First of all, hello my name is Clement I'm trying to overclock a kernel for Realme 3 pro (SDM 710)
A little background story Realme has the 3 pro and 5 pro version, although both has a gpu of Adreno 616, in realme 3 pro, the clock speed is limited too 504 Mhz while in the 5 pro version its at 610Mhz
I've tried to change the clock speed in the sdm670-gpu.dtsi but it ends up in white screen.
I changed the values under
Code:
"qcom,gpu-pwrlevels-4
/* NOM */
qcom,[email protected] {
reg = <0>;
qcom,gpu-freq = <504000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <9>;
qcom,bus-max = <11>;
};
/* SVS_L1 */
qcom,[email protected] {
reg = <1>;
qcom,gpu-freq = <430000000>;
qcom,bus-freq = <11>;
qcom,bus-min = <8>;
qcom,bus-max = <11>;
};
/* SVS */
qcom,[email protected] {
reg = <2>;
qcom,gpu-freq = <355000000>;
qcom,bus-freq = <8>;
qcom,bus-min = <5>;
qcom,bus-max = <9>;
};
/* LOW SVS */
qcom,[email protected] {
reg = <3>;
qcom,gpu-freq = <267000000>;
qcom,bus-freq = <6>;
qcom,bus-min = <4>;
qcom,bus-max = <8>;
};
/* MIN SVS */
qcom,[email protected] {
reg = <4>;
qcom,gpu-freq = <180000000>;
qcom,bus-freq = <4>;
qcom,bus-min = <3>;
qcom,bus-max = <4>;
};
/* XO */
qcom,[email protected] {
reg = <5>;
qcom,gpu-freq = <0>;
qcom,bus-freq = <0>;
qcom,bus-min = <0>;
qcom,bus-max = <0>;
};
}; "
and adjusted the clock and the power levels.
even changing 1 Mhz will end up in white screen. By the way , the white screen occurs whenever I change the clock speed in the kernel manager to the overclocked clock. If its in the normal clock 504 Mhz, the phone works fine.
I've also noticed that both phones(3p and 5p) have the same exact regulator values so I think it's not a regulator issue.
Values in the driver are also changed.
Can anybody help or point out where i did wrong?
Dmesg log here:
This is the kernel source for the Realme 3 Pro and Realme 5 pro
Links
Dmesg: del. dog /grexifinyt
Kernel Source:
github. com /realme-kernel-opensource/realme3pro-kernel-source/tree/master/arch/arm64/boot/dts/qcom
github. com /realme-kernel-opensource/realmeQ_realme5Pro-kernel-source/tree/master/arch/arm64/boot/dts/qcom
And the file changed is sdm670-gpu.dtsi
I can't seem to post links as I'm a new member
you need to add cloxk speed to gpu_cc_845.c. am able to increase gpu clock speed fron 610 to 616 mhz further increase like 617 mhz give white screen.

Problem about kernel compilation, "Warning (reg_format)"

Hi all. I'm trying to compile the kernel for my HTC 5G HUB, as a first step in transforming it into a great IoT device.
It has a Snapdragon 855 SOC and runs Android 9.0.
After more than a week of work, I tried out a mostly correct environment and solved most of problems by myself, but there are still some issues that are bothering me.
I'm not expecting anyone to helping me solve problems hand by hand, but just hoping someone experienced in similar devices(Pixel 4; Mi 9; OnePlus 7, etc...) will give me some clues. Thanks!
1. Device Tree Compiler Warning
At the beginning, I got lots of warnings about"Warning (reg_format)" in various of nodes. I managed to resolve these warnings by carefully adding `#address-cells` and `#size-cells` in their parent node. Except for the following two.
Code:
Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Take smb1390 for example, its content is shown as below:
Code:
#include <dt-bindings/interrupt-controller/irq.h>
smb1390: qcom,[email protected] {
compatible = "qcom,i2c-pmic";
reg = <0x10>;
#address-cells = <1>;
#size-cells = <0>;
interrupt-parent = <&spmi_bus>;
interrupts = <0x2 0xC5 0x0 IRQ_TYPE_LEVEL_LOW>;
interrupt_names = "smb1390";
interrupt-controller;
#interrupt-cells = <3>;
qcom,periph-map = <0x10>;
status = "disabled";
smb1390_revid: qcom,revid {
compatible = "qcom,qpnp-revid";
reg = <0x100>;
};
smb1390_charger: qcom,charge_pump {
compatible = "qcom,smb1390-charger";
qcom,pmic-revid = <&smb1390_revid>;
interrupt-parent = <&smb1390>;
status = "disabled";
qcom,core {
interrupts = <0x10 0x0 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x1 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x2 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x3 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x4 IRQ_TYPE_EDGE_BOTH>,
<0x10 0x5 IRQ_TYPE_EDGE_RISING>,
<0x10 0x6 IRQ_TYPE_EDGE_RISING>,
<0x10 0x7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "switcher-off-window",
"switcher-off-fault",
"tsd-fault",
"irev-fault",
"vph-ov-hard",
"vph-ov-soft",
"ilim",
"temp-alarm";
};
};
};
and it is included by sm8150-qrd.dtsi, sm8150-sdx50m-qrd.dtsi and sm8150-mtp.dtsi like this
Code:
&qupv3_se4_i2c {
#include "smb1390.dtsi"
#include "smb1355.dtsi"
};
Code:
&smb1390 {
pinctrl-names = "default";
pinctrl-0 = <&smb_stat_default>;
status = "ok";
};
&smb1390_charger {
io-channels = <&pm8150b_vadc ADC_AMUX_THM2>;
io-channel-names = "cp_die_temp";
status = "ok";
};
searching qupv3_se4_i2c I got this in sm8150-audio-rt5-xb.dtsi (RTX is the codename of HTC 5G HUB)
Code:
&soc{
/* TI config for spk chip */
[email protected] { /* qupv3_se4_i2c */
#address-cells = <1>;
#size-cells = <0>;
[email protected] {
...
};
};
};
I believe tas2557s is an unrelated device so I ignored the details of this.
So, where is the problem?
2. vmlinux warning at the end of compilation
Code:
WARNING: EXPORT symbol "gsi_write_channel_scratch" [vmlinux] version generation failed, symbol will not be versioned.
Fortunately, they were only warnings instead of errors. So I was still able to complete the entire compilation process.
If these problems are hard to fix easily, I'd like to know if I can safely ignore them.
My build environment:
Ubuntu 14.04 in docker
aarch64-linux-android-4.9
clang-4691093
DTC from AOSP 9.0.0. when I run "dtc -v", it told me "1.4.2"
You can get kernel source code from here

Categories

Resources