linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Nikolaus Schaller" <hns@goldelico.com>
To: Adam Ford <aford173@gmail.com>
Cc: "Tony Lindgren" <tony@atomide.com>,
	"André Roth" <neolynx@gmail.com>,
	Linux-OMAP <linux-omap@vger.kernel.org>,
	"Discussions about the Letux Kernel"
	<letux-kernel@openphoenux.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Andreas Kemnade" <andreas@kemnade.info>,
	"Nishanth Menon" <nm@ti.com>
Subject: Re: [Letux-kernel] [RFC PATCH 0/3] Enable 1GHz support on omap36xx
Date: Tue, 10 Sep 2019 18:59:17 +0200	[thread overview]
Message-ID: <3663B13C-1AAB-4BE3-8CAD-F821B70393FA@goldelico.com> (raw)
In-Reply-To: <CAHCN7x+fgtMHMNYU2W7BRQwd-d2g_Tb8-L5QNcnZjCF=VzRXJg@mail.gmail.com>

Hi Adam,

> Am 09.09.2019 um 21:13 schrieb Adam Ford <aford173@gmail.com>:
> 
> On Mon, Sep 9, 2019 at 1:11 PM H. Nikolaus Schaller <hns@goldelico.com> wrote:
>> 
>> Ok, we have to check if the ti,abb-v2 "LDO" driver
>> drivers/regulator/ti-abb-regulator.c
>> can handle that with a DT entry similar to:
>> 
>> https://elixir.bootlin.com/linux/latest/source/arch/arm/boot/dts/omap5.dtsi#L365
> 
> At least for the 3630, the ti-abb-regulator driver is the same driver,
> but different structures based on v1, v2, or v3 are used based on
> which compatible flag is used.
> 
> I tried enabling the vbb-supply in the device tree, but the driver
> doesn't load it without .multi_regulator being true.
> 
> cpus {
> /* OMAP3630/OMAP37xx variants OPP50 to OPP130 and OPP1G */
>     cpu: cpu@0 {
>          operating-points-v2 = <&cpu0_opp_table>;
>          vbb-supply = <&abb_mpu_iva>;

Oh, that is great that the app_mpu_iva already exists!

So we just need plumbing pieces together.

>          clock-latency = <300000>; /* From omap-cpufreq driver */
>     };
> };
> 
> I enabled that in the 3630 structure, but then the opp must list
> voltage points for both regulators.
> Looking at the entry for abb_mpu_iva, it appears to have voltages that
> directly match the OPP table, so I made a duplicate entry:
> 
> opp-microvolt = <1012500 1012500 1012500>,
>                           <1012500 1012500 1012500>;
> 
> and similar for 600, 800 and 1000 similar to the way dra7.dtsi does

Yes.

> it, but then I got some nasty errors and crashes.

I have done the same but not (yet) seen a crash or error. Maybe you had
a typo?

> 
> I started undoing the stuff, and I wanted to see if the abb_mpu_iva
> regulator was even running, but I would get -22 errors when I went to
> read the voltage.
> 
> # cat /sys/devices/platform/68000000.ocp/483072f0.regulator-abb-mpu/regulator/regulator.5/microvolts
> -22

So it reports wrong voltage settings of -22µV...

I have tested and have the same.

root@letux:~# cd /sys/bus/platform/devices/483072f0.regulator-abb-mpu/regulator/regulator.3/
root@letux:/sys/bus/platform/devices/483072f0.regulator-abb-mpu/regulator/regulator.3# ls -l
total 0
lrwxrwxrwx 1 root root    0 Jan  1 00:02 device -> ../../../483072f0.regulator-abb-mpu
-r--r--r-- 1 root root 4096 Jan  1 00:02 max_microvolts
-r--r--r-- 1 root root 4096 Jan  1 00:02 microvolts
-r--r--r-- 1 root root 4096 Jan  1 00:02 min_microvolts
-r--r--r-- 1 root root 4096 Jan  1 00:02 name
-r--r--r-- 1 root root 4096 Jan  1 00:02 num_users
lrwxrwxrwx 1 root root    0 Jan  1 00:02 of_node -> ../../../../../../firmware/devicetree/base/ocp@68000000/regulator-abb-mpu
drwxr-xr-x 2 root root    0 Jan  1 00:02 power
-r--r--r-- 1 root root 4096 Jan  1 00:02 requested_microamps
lrwxrwxrwx 1 root root    0 Jan  1 00:02 subsystem -> ../../../../../../class/regulator
-r--r--r-- 1 root root 4096 Jan  1 00:02 suspend_disk_state
-r--r--r-- 1 root root 4096 Jan  1 00:02 suspend_mem_state
-r--r--r-- 1 root root 4096 Jan  1 00:02 suspend_standby_state
-r--r--r-- 1 root root 4096 Jan  1 00:02 type
-rw-r--r-- 1 root root 4096 Jan  1 00:02 uevent
root@letux:/sys/bus/platform/devices/483072f0.regulator-abb-mpu/regulator/regulator.3# cat *
cat: device: Is a directory
1375000
-22
1012500
abb_mpu_iva
1
cat: of_node: Is a directory
cat: power: Is a directory
0
cat: subsystem: Is a directory
disabled
disabled
disabled
voltage
OF_NAME=regulator-abb-mpu
OF_FULLNAME=/ocp@68000000/regulator-abb-mpu
OF_COMPATIBLE_0=ti,abb-v1
OF_COMPATIBLE_N=1
root@letux:/sys/bus/platform/devices/483072f0.regulator-abb-mpu/regulator/regulator.3# cd
root@letux:~# cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: cpufreq-dt
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 300 us.
  hardware limits: 300 MHz - 1000 MHz
  available frequency steps: 300 MHz, 600 MHz, 800 MHz, 1000 MHz
  available cpufreq governors: conservative, userspace, powersave, ondemand, performance
  current policy: frequency should be within 300 MHz and 1000 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 300 MHz (asserted by call to hardware).
  cpufreq stats: 300 MHz:31.36%, 600 MHz:4.23%, 800 MHz:3.76%, 1000 MHz:60.65%  (1933)
root@letux:~# 

So it runs with different OPPs... My chip may also be more robust to wrong ABB FBB setting.

> 
> If someone has any suggestions on how to test the abb_mpu_iva driver,
> let me know.

Well, next I want to look into the code for cat microvolts and
maybe add some printk to understand the result...

A first result is that it comes from

	/* We do not know where the OPP voltage is at the moment */
	abb->current_info_idx = -EINVAL;

But this is not treated as an -EINVAL but value of -22 microvolts...
Maybe an error check is missing somewhere in the regulator core.

I just need more time to track it down.

BR and thanks for the description,
Nikolaus


  reply	other threads:[~2019-09-10 16:59 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190801012823.28730-1-neolynx@gmail.com>
     [not found] ` <CAHCN7x+nD0J6KZYtfH+0ApQTPO5byO2obMkUwc9Uf4WubyRbTw@mail.gmail.com>
     [not found]   ` <C04F49BA-1229-4E96-9FCF-4FC662D1DB11@goldelico.com>
     [not found]     ` <CAHCN7x+Ye6sB_YqO0sAX1OJDw64B-qGS3pL545v3Xk5z914cwQ@mail.gmail.com>
     [not found]       ` <0C1EF64E-B33C-4BFA-A7D3-471DD1B9EE86@goldelico.com>
     [not found]         ` <515048DE-138D-4400-8168-F2B7D61F1005@goldelico.com>
     [not found]           ` <CAHCN7xLPCX9rZ0+7KVBiA_bgZ6tg6VeCXqD-UXu+6iwpFMPVrA@mail.gmail.com>
     [not found]             ` <7B3D1D77-3E8C-444F-90B9-6DF2641178B8@goldelico.com>
     [not found]               ` <CAHCN7xLW58ggx3CpVL=HdCVHWo6D-MCTB91A_9rtSRoZQ+xJuQ@mail.gmail.com>
2019-09-07  7:37                 ` [Letux-kernel] [RFC PATCH 0/3] Enable 1GHz support on omap36xx H. Nikolaus Schaller
2019-09-09 14:26                   ` Adam Ford
2019-09-09 14:56                     ` H. Nikolaus Schaller
2019-09-09 16:20                       ` Adam Ford
2019-09-09 16:32                         ` Adam Ford
2019-09-09 16:32                       ` Tony Lindgren
2019-09-09 16:38                         ` Adam Ford
2019-09-09 17:03                           ` H. Nikolaus Schaller
2019-09-09 16:54                         ` H. Nikolaus Schaller
2019-09-09 18:11                           ` H. Nikolaus Schaller
2019-09-09 19:13                             ` Adam Ford
2019-09-10 16:59                               ` H. Nikolaus Schaller [this message]
2019-09-10 18:30                                 ` Adam Ford
2019-09-10 18:51                                   ` H. Nikolaus Schaller
2019-09-10 19:26                                     ` H. Nikolaus Schaller
2019-09-10 19:36                                     ` Adam Ford
2019-09-10 19:55                                     ` H. Nikolaus Schaller
2019-09-10 20:06                                       ` Adam Ford
2019-09-11  0:24                                         ` Adam Ford
2019-09-11  0:41                                           ` Adam Ford
2019-09-11  5:13                                             ` H. Nikolaus Schaller
2019-09-11  6:03                                               ` H. Nikolaus Schaller
2019-09-11  6:49                                                 ` H. Nikolaus Schaller
2019-09-11 12:43                                                   ` Adam Ford
2019-09-11 15:46                                                     ` H. Nikolaus Schaller
2019-09-11 15:56                                                       ` Adam Ford
2019-09-11 16:01                                                         ` H. Nikolaus Schaller
2019-09-11 17:43                                                           ` H. Nikolaus Schaller
2019-09-11 17:49                                                             ` Adam Ford
2019-09-12 13:58                                                               ` Adam Ford
2019-09-12 18:52                                                                 ` Adam Ford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3663B13C-1AAB-4BE3-8CAD-F821B70393FA@goldelico.com \
    --to=hns@goldelico.com \
    --cc=aford173@gmail.com \
    --cc=andreas@kemnade.info \
    --cc=letux-kernel@openphoenux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=neolynx@gmail.com \
    --cc=nm@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).