All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
To: stefan.wahren@i2se.com, linux-kernel@vger.kernel.org
Cc: mbrugger@suse.de, viresh.kumar@linaro.org, rjw@rjwysocki.net,
	sboyd@kernel.org, eric@anholt.net, f.fainelli@gmail.com,
	bcm-kernel-feedback-list@broadcom.com, ptesarik@suse.com,
	linux-rpi-kernel@lists.infradead.org, ssuloev@orpaltech.com,
	linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	mturquette@baylibre.com, linux-pm@vger.kernel.org,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Subject: [PATCH v4 0/7] cpufreq support for Raspberry Pi
Date: Wed, 12 Jun 2019 20:24:52 +0200	[thread overview]
Message-ID: <20190612182500.4097-1-nsaenzjulienne@suse.de> (raw)

Hi all,
this aims at adding cpufreq support to the Raspberry Pi family of
boards.

The series first factors out 'pllb' from clk-bcm2385 and creates a new
clk driver that operates it over RPi's firmware interface[1]. We are
forced to do so as the firmware 'owns' the pll and we're not allowed to
change through the register interface directly as we might race with the
over-temperature and under-voltage protections provided by the firmware.

Next it creates a minimal cpufreq driver that populates the CPU's opp
table, and registers cpufreq-dt. Which is needed as the firmware
controls the max and min frequencies available.

This was tested on a RPi3b+ and RPI2b, both using multi_v7_defconfig and
arm64's defconfig.

That's all,
kind regards,
Nicolas

[1] https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface

---

Changes since v3:
  - Fix sparse warnings in clk-raspberrypi.c
  - Minor cleanups

Changes since v2:
  - Fixed configs to match Stefan's comments
  - Round OPP frequencies
  - Rebase onto linux-next
  - Minor cleanups & checkpatch.pl

Changes since v1:
  - Enabled by default on the whole family of devices
  - Added/Fixed module support
  - clk device now registered by firmware driver
  - raspberrypi-cpufreq device now registered by clk driver
  - Reimplemented clk rounding unsing determine_rate()
  - Enabled in configs for arm and arm64

Changes since RFC:
  - Move firmware clk device into own driver

Nicolas Saenz Julienne (7):
  clk: bcm2835: remove pllb
  clk: bcm283x: add driver interfacing with Raspberry Pi's firmware
  firmware: raspberrypi: register clk device
  cpufreq: add driver for Raspberry Pi
  clk: raspberrypi: register platform device for raspberrypi-cpufreq
  ARM: defconfig: enable cpufreq driver for RPi
  arm64: defconfig: enable cpufreq support for RPi3

 arch/arm/configs/bcm2835_defconfig    |   9 +
 arch/arm/configs/multi_v7_defconfig   |   2 +
 arch/arm64/configs/defconfig          |   2 +
 drivers/clk/bcm/Kconfig               |   7 +
 drivers/clk/bcm/Makefile              |   1 +
 drivers/clk/bcm/clk-bcm2835.c         |  28 +--
 drivers/clk/bcm/clk-raspberrypi.c     | 315 ++++++++++++++++++++++++++
 drivers/cpufreq/Kconfig.arm           |   8 +
 drivers/cpufreq/Makefile              |   1 +
 drivers/cpufreq/raspberrypi-cpufreq.c |  97 ++++++++
 drivers/firmware/raspberrypi.c        |  10 +
 11 files changed, 456 insertions(+), 24 deletions(-)
 create mode 100644 drivers/clk/bcm/clk-raspberrypi.c
 create mode 100644 drivers/cpufreq/raspberrypi-cpufreq.c

-- 
2.21.0


WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
To: stefan.wahren@i2se.com, linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org, f.fainelli@gmail.com,
	ptesarik@suse.com, sboyd@kernel.org, viresh.kumar@linaro.org,
	mturquette@baylibre.com, linux-pm@vger.kernel.org,
	rjw@rjwysocki.net, eric@anholt.net,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
	linux-clk@vger.kernel.org, mbrugger@suse.de,
	ssuloev@orpaltech.com
Subject: [PATCH v4 0/7] cpufreq support for Raspberry Pi
Date: Wed, 12 Jun 2019 20:24:52 +0200	[thread overview]
Message-ID: <20190612182500.4097-1-nsaenzjulienne@suse.de> (raw)

Hi all,
this aims at adding cpufreq support to the Raspberry Pi family of
boards.

The series first factors out 'pllb' from clk-bcm2385 and creates a new
clk driver that operates it over RPi's firmware interface[1]. We are
forced to do so as the firmware 'owns' the pll and we're not allowed to
change through the register interface directly as we might race with the
over-temperature and under-voltage protections provided by the firmware.

Next it creates a minimal cpufreq driver that populates the CPU's opp
table, and registers cpufreq-dt. Which is needed as the firmware
controls the max and min frequencies available.

This was tested on a RPi3b+ and RPI2b, both using multi_v7_defconfig and
arm64's defconfig.

That's all,
kind regards,
Nicolas

[1] https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface

---

Changes since v3:
  - Fix sparse warnings in clk-raspberrypi.c
  - Minor cleanups

Changes since v2:
  - Fixed configs to match Stefan's comments
  - Round OPP frequencies
  - Rebase onto linux-next
  - Minor cleanups & checkpatch.pl

Changes since v1:
  - Enabled by default on the whole family of devices
  - Added/Fixed module support
  - clk device now registered by firmware driver
  - raspberrypi-cpufreq device now registered by clk driver
  - Reimplemented clk rounding unsing determine_rate()
  - Enabled in configs for arm and arm64

Changes since RFC:
  - Move firmware clk device into own driver

Nicolas Saenz Julienne (7):
  clk: bcm2835: remove pllb
  clk: bcm283x: add driver interfacing with Raspberry Pi's firmware
  firmware: raspberrypi: register clk device
  cpufreq: add driver for Raspberry Pi
  clk: raspberrypi: register platform device for raspberrypi-cpufreq
  ARM: defconfig: enable cpufreq driver for RPi
  arm64: defconfig: enable cpufreq support for RPi3

 arch/arm/configs/bcm2835_defconfig    |   9 +
 arch/arm/configs/multi_v7_defconfig   |   2 +
 arch/arm64/configs/defconfig          |   2 +
 drivers/clk/bcm/Kconfig               |   7 +
 drivers/clk/bcm/Makefile              |   1 +
 drivers/clk/bcm/clk-bcm2835.c         |  28 +--
 drivers/clk/bcm/clk-raspberrypi.c     | 315 ++++++++++++++++++++++++++
 drivers/cpufreq/Kconfig.arm           |   8 +
 drivers/cpufreq/Makefile              |   1 +
 drivers/cpufreq/raspberrypi-cpufreq.c |  97 ++++++++
 drivers/firmware/raspberrypi.c        |  10 +
 11 files changed, 456 insertions(+), 24 deletions(-)
 create mode 100644 drivers/clk/bcm/clk-raspberrypi.c
 create mode 100644 drivers/cpufreq/raspberrypi-cpufreq.c

-- 
2.21.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2019-06-12 18:25 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-12 18:24 Nicolas Saenz Julienne [this message]
2019-06-12 18:24 ` [PATCH v4 0/7] cpufreq support for Raspberry Pi Nicolas Saenz Julienne
2019-06-12 18:24 ` [PATCH v4 1/7] clk: bcm2835: remove pllb Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-06-25 23:04   ` Stephen Boyd
2019-06-25 23:04     ` Stephen Boyd
2019-06-12 18:24 ` [PATCH v4 2/7] clk: bcm283x: add driver interfacing with Raspberry Pi's firmware Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-06-25 23:04   ` Stephen Boyd
2019-06-25 23:04     ` Stephen Boyd
2019-06-12 18:24 ` [PATCH v4 3/7] firmware: raspberrypi: register clk device Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-06-25 23:04   ` Stephen Boyd
2019-06-25 23:04     ` Stephen Boyd
2019-06-12 18:24 ` [PATCH v4 4/7] cpufreq: add driver for Raspberry Pi Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-06-13  3:28   ` Viresh Kumar
2019-06-13  3:28     ` Viresh Kumar
2019-06-12 18:24 ` [PATCH v4 5/7] clk: raspberrypi: register platform device for raspberrypi-cpufreq Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-06-25 23:05   ` Stephen Boyd
2019-06-25 23:05     ` Stephen Boyd
2019-06-12 18:24 ` [PATCH v4 6/7] ARM: defconfig: enable cpufreq driver for RPi Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-07-23 21:33   ` Stefan Wahren
2019-07-23 21:33     ` Stefan Wahren
2019-06-12 18:24 ` [PATCH v4 7/7] arm64: defconfig: enable cpufreq support for RPi3 Nicolas Saenz Julienne
2019-06-12 18:24   ` Nicolas Saenz Julienne
2019-07-23 21:34   ` Stefan Wahren
2019-07-23 21:34     ` Stefan Wahren
2019-06-12 20:17 ` [PATCH v4 0/7] cpufreq support for Raspberry Pi Stefan Wahren
2019-06-12 20:17   ` Stefan Wahren
2019-06-13  3:31 ` Florian Fainelli
2019-06-13  3:31   ` Florian Fainelli
2019-06-13  4:31   ` Stefan Wahren
2019-06-13  4:31     ` Stefan Wahren
2019-06-22  9:54     ` Stefan Wahren
2019-06-22  9:54       ` Stefan Wahren
2019-06-25 23:02       ` Stephen Boyd
2019-06-25 23:02         ` Stephen Boyd

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=20190612182500.4097-1-nsaenzjulienne@suse.de \
    --to=nsaenzjulienne@suse.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=eric@anholt.net \
    --cc=f.fainelli@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=mbrugger@suse.de \
    --cc=mturquette@baylibre.com \
    --cc=ptesarik@suse.com \
    --cc=rjw@rjwysocki.net \
    --cc=sboyd@kernel.org \
    --cc=ssuloev@orpaltech.com \
    --cc=stefan.wahren@i2se.com \
    --cc=viresh.kumar@linaro.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.