cpufreq: brcmstb-cpufreq: CPUfreq driver for older Broadcom STB SoCs
Subsystems (5)
v6 cover cpufreq: brcmstb-cpufreq: CPUfreq driver for older Broadcom STB SoCs
From: Markus Mayer <[email protected]>
This CPUfreq driver provides basic frequency scaling for older Broadcom STB SoCs that do not use AVS firmware with DVFS support. There is no support for voltage scaling.
v5 of this patch can be found at: https://lkml.org/lkml/2017/1/18/1093
Changes since v5:
- Removed DT properties div-table and div-shift-width (Stephen Boyd)
- Renamed node from cpu-clk-div at ... to clock-controller at ... (Rob Herring)
- No code changes
v4 of this patch can be found at: https://lkml.org/lkml/2016/12/20/670
Changes since v4:
- Simplified (and hopefully clarified) binding document
- No code changes
v3 of this patch can be found at: https://lkml.org/lkml/2016/11/22/747
Changes since v3:
- added binding document
- got rid of calls to __clk_lookup(), using devm_clk_get() instead
- re-worked clock lookup code a bit, along with switching to devm_clk_get()
- get_frequencies() became a void function, removing the need for some error checking
- fixed CONFIG_ARM_BRCM_AVS_CPUFREQ typo
- fixed MODULE_DEVICE_TABLE declaration
Markus Mayer (2):
dt-bindings: brcm: clocks: add binding for brcmstb-cpu-clk-div
cpufreq: brcmstb-cpufreq: CPUfreq driver for older Broadcom STB SoCs
.../bindings/clock/brcm,brcmstb-cpu-clk-div.txt | 22 ++ MAINTAINERS | 1 + drivers/cpufreq/Kconfig.arm | 12 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/brcmstb-cpufreq.c | 377 +++++++++++++++++++++ 5 files changed, 413 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txt create mode 100644 drivers/cpufreq/brcmstb-cpufreq.c
Signature · 1 line
2.7.4
PATCH v6 1/2 dt-bindings: brcm: clocks: add binding for brcmstb-cpu-clk-div
From: Markus Mayer <[email protected]>
Add binding document for brcm,brcmstb-cpu-clk-div.
--- .../bindings/clock/brcm,brcmstb-cpu-clk-div.txt | 22 ++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 23 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txt
Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txt new file +22 -0
@@ -0,0 +1,22 @@ +The CPU divider node serves as the sole clock for the CPU complex. It supports +power-of-2 clock division, with a divider of "1" as the default highest-speed +setting. + +Required properties: +- compatible: shall be "brcm,brcmstb-cpu-clk-div" +- reg: address and width of the divider configuration register +- #clock-cells: shall be set to 0 +- clocks: phandle of clock provider which provides the source clock + (this would typically be a "fixed-clock" type PLL) + +Optional properties: +- clock-names: the clock may be named + +Example: + cpuclkdiv: clock-controller at f03e257c { + compatible = "brcm,brcmstb-cpu-clk-div"; + reg = <0xf03e257c 0x4>; + #clock-cells = <0>; + clocks = <&cpupll>; + clock-names = "cpupll"; + };
MAINTAINERS +1 -0
@@ -2786,6 +2786,7 @@ M: bcm-kernel-feedback-list at broadcom.com L: linux-pm at vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/cpufreq/brcm,stb-avs-cpu-freq.txt +F: Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txt F: drivers/cpufreq/brcmstb* BROADCOM SPECIFIC AMBA DRIVER (BCMA)
Signature · 1 line
2.7.4
Re: [PATCH v6 1/2] dt-bindings: brcm: clocks: add binding for brcmstb-cpu-clk-div
Quoted 10 lines · Markus Mayer
From: Markus Mayer <[email protected]>
Add binding document for brcm,brcmstb-cpu-clk-div.
Signed-off-by Markus Mayer <[email protected]>--- .../bindings/clock/brcm,brcmstb-cpu-clk-div.txt | 22 ++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 23 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txt
Re: [PATCH v6 1/2] dt-bindings: brcm: clocks: add binding for brcmstb-cpu-clk-div
Quoted 5 lines · Rob Herring
Quoted 4 lines · Markus Mayer
From: Markus Mayer <[email protected]>
Add binding document for brcm,brcmstb-cpu-clk-div.
Quoted 8 lines
Quoted 6 lines
Signed-off-by Markus Mayer <[email protected]>--- .../bindings/clock/brcm,brcmstb-cpu-clk-div.txt | 22 ++++++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 23 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/brcm,brcmstb-cpu-clk-div.txtAcked-by Rob Herring <[email protected]>
Actually, Stephen wasn't liking this too much.
See [1] for the conclusion of the ensuing discussion.
Regards,
-Markus
PATCH v6 2/2 cpufreq: brcmstb-cpufreq: CPUfreq driver for older Broadcom STB SoCs
In reply to Markus MayerFrom: Markus Mayer <[email protected]>
This CPUfreq driver provides basic frequency scaling for older Broadcom STB SoCs that do not use AVS firmware with DVFS support. There is no support for voltage scaling.
--- drivers/cpufreq/Kconfig.arm | 12 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/brcmstb-cpufreq.c | 377 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 390 insertions(+) create mode 100644 drivers/cpufreq/brcmstb-cpufreq.c
drivers/cpufreq/Kconfig.arm +12 -0
@@ -33,6 +33,18 @@ config ARM_BRCMSTB_AVS_CPUFREQ_DEBUG If in doubt, say N. +config ARM_BRCMSTB_CPUFREQ + tristate "Broadcom STB CPUfreq driver" + depends on ARCH_BRCMSTB || COMPILE_TEST + default y + help + Some Broadcom SoCs offer multiple operating frequencies that CPUfreq + can take advantage of to improve energy efficiency. + + Say Y, if you have a supported Broadcom SoC. If your Broadcom SoC + has AVS firmware with support for frequency and voltage scaling, + say N here and enable ARM_BRCMSTB_AVS_CPUFREQ instead. + config ARM_DT_BL_CPUFREQ tristate "Generic probing via DT for ARM big LITTLE CPUfreq driver" depends on ARM_BIG_LITTLE_CPUFREQ && OF
drivers/cpufreq/Makefile +1 -0
@@ -52,6 +52,7 @@ obj-$(CONFIG_ARM_BIG_LITTLE_CPUFREQ) += arm_big_little.o obj-$(CONFIG_ARM_DT_BL_CPUFREQ) += arm_big_little_dt.o obj-$(CONFIG_ARM_BRCMSTB_AVS_CPUFREQ) += brcmstb-avs-cpufreq.o +obj-$(CONFIG_ARM_BRCMSTB_CPUFREQ) += brcmstb-cpufreq.o obj-$(CONFIG_ARCH_DAVINCI) += davinci-cpufreq.o obj-$(CONFIG_UX500_SOC_DB8500) += dbx500-cpufreq.o obj-$(CONFIG_ARM_EXYNOS5440_CPUFREQ) += exynos5440-cpufreq.o
drivers/cpufreq/brcmstb-cpufreq.c new file +377 -0
377 lines not on this page · raw message
Signature · 1 line
2.7.4