diff mbox

bcm2835: Add Raspberry Pi CPU frequency control to the device tree

Message ID 1444592795-15129-1-git-send-email-lkundrak@v3.sk (mailing list archive)
State New, archived
Headers show

Commit Message

Lubomir Rintel Oct. 11, 2015, 7:46 p.m. UTC
This adds a device tree binding for Broadcom BCM2834 CPU frequency control
driven via Raspberry Pi VideoCore 4 firmware interface.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Lee Jones <lee@kernel.org>
Cc: Eric Anholt <eric@anholt.net>
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-pm@vger.kernel.org
---
Depends on the RPi Firmware driver submitted on linux-rpi-kernel a while ago. 
Can't see it in arm-soc or linux-next yet though (?). Available in branch 
'rpi-firmware' of https://github.com/anholt/linux

 .../bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt        | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt

Comments

Eric Anholt Oct. 15, 2015, 12:29 a.m. UTC | #1
Lubomir Rintel <lkundrak@v3.sk> writes:

> This adds a device tree binding for Broadcom BCM2834 CPU frequency control
> driven via Raspberry Pi VideoCore 4 firmware interface.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> Cc: Stephen Warren <swarren@wwwdotorg.org>
> Cc: Lee Jones <lee@kernel.org>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: linux-rpi-kernel@lists.infradead.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-pm@vger.kernel.org
> ---
> Depends on the RPi Firmware driver submitted on linux-rpi-kernel a while ago. 
> Can't see it in arm-soc or linux-next yet though (?). Available in branch 
> 'rpi-firmware' of https://github.com/anholt/linux

Looks like the firmware driver slipped through the cracks for 4.3.  I'll
be sending a pull request for it for 4.4.

With the cprman clock driver, we could set CPU frequency natively from
Linux.  What we get from doing things through the VPU right now are that
the MAX (overclock) setting can be set by the user in config.txt, and
the VPU does some watching of thermals to decide when to throttle back
to non-overclock.

Unless we do native thermal control from Linux (which we don't have a
driver for) to get equivalent protection, then I think we should
probably go ahead with the VPU-based cpufreq control.
Stephen Warren Oct. 21, 2015, 3 a.m. UTC | #2
On 10/11/2015 01:46 PM, Lubomir Rintel wrote:
> This adds a device tree binding for Broadcom BCM2834 CPU frequency control
> driven via Raspberry Pi VideoCore 4 firmware interface.

Oh I see; that DT binding was sent as a separate patch rather than part
of the series...

DT bindings patches need to be sent to the people/lists in the following
MAINTAINERS entry:

OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
M:      Rob Herring <robh+dt@kernel.org>
M:      Pawel Moll <pawel.moll@arm.com>
M:      Mark Rutland <mark.rutland@arm.com>
M:      Ian Campbell <ijc+devicetree@hellion.org.uk>
M:      Kumar Gala <galak@codeaurora.org>
L:      devicetree@vger.kernel.org

> diff --git a/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt b/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt
> new file mode 100644
> index 0000000..eb126d3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt
> @@ -0,0 +1,13 @@
> +Raspberry Pi Broadcom BCM2835 CPU frequency control
> +
> +Required properties:
> +
> +- compatible : should be "raspberrypi,bcm2835-cpufreq"
> +- firmware : the Raspberry Pi firmware node

It'd be best practice to mention the filename of the binding that
defines the firmware. For example:

- firmware : phandle of the Raspberry Pi firmware node, as defined in
  .././arm/bcm/raspberrypi,bcm2835-firmware.txt.

That said, I'm not convinced cpufreq scaling should rely on the firmware
directly, but instead should use the clock API to manipulate the clock.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt b/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt
new file mode 100644
index 0000000..eb126d3
--- /dev/null
+++ b/Documentation/devicetree/bindings/cpufreq/raspberrypi,bcm2835-cpufreq.txt
@@ -0,0 +1,13 @@ 
+Raspberry Pi Broadcom BCM2835 CPU frequency control
+
+Required properties:
+
+- compatible : should be "raspberrypi,bcm2835-cpufreq"
+- firmware : the Raspberry Pi firmware node
+
+Example:
+
+cpufreq {
+        compatible = "raspberrypi,bcm2835-cpufreq";
+        firmware = <&firmware>;
+};