From: Leonard Crestez <leonard.crestez@nxp.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
Lucas Stach <l.stach@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>
Cc: Aisheng Dong <aisheng.dong@nxp.com>, Jacky Bai <ping.bai@nxp.com>,
Anson Huang <anson.huang@nxp.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
dl-linux-imx <linux-imx@nxp.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
Fabio Estevam <fabio.estevam@nxp.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Abel Vesa <abel.vesa@nxp.com>
Subject: [PATCH v2 0/3] cpufreq: Add imx-cpufreq-dt driver
Date: Thu, 2 May 2019 22:44:12 +0000 [thread overview]
Message-ID: <cover.1556836868.git.leonard.crestez@nxp.com> (raw)
Right now in upstream imx8m cpufreq support just lists a common subset
of OPPs because the higher ones should only be attempted after checking
speed grading in fuses.
Add a small driver which checks speed grading from nvmem cells before
registering cpufreq-dt.
---
By default kconfig builds it as a module even though it's very small.
Couldn't find a way for MODULE_DEVICE_TABLE to match on root node compat
string and there was no other appropriate node so register the
imx-cpufreq-dt platfrom device directly from imx8 soc driver instead. I
checked module is probed by default and rmmod/modprobe again works.
It seems that cpufreq-dt insists on adding the opp and regulator itself
so can't actually call dev_pm_opp_of_add_table and then
dev_pm_opp_disable so implementation was switched to opp-supported-hw.
Maybe I'm confused by API quirks?
The market segment logic was dropped because I couldn't find any good
references in datasheets for why lower or intermediary OPPs should be
disabled on certain market segments. Using opp-supported-hw means that
adding this in the future would require changing flags inside DT instead
of code, that seems undesirable for DT compat reasons.
This could also be extended to mach-imx7d speed grading.
I never noticed anything wrong with going above the fused speed grading
however it's technically unsafe so the cpufreq parts should go in before
DT changes.
Other changes since v1:
* Turn into a proper module
* Support imx8mq
Link to v1 (RFC): https://patchwork.kernel.org/patch/10916769/
Leonard Crestez (3):
cpufreq: Add imx-cpufreq-dt driver
arm64: dts: imx8mm: Add cpu speed grading and all OPPs
arm64: dts: imx8mq: Add cpu speed grading and all OPPs
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 23 +++++-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 23 +++++-
drivers/cpufreq/Kconfig.arm | 10 +++
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/imx-cpufreq-dt.c | 99 +++++++++++++++++++++++
drivers/soc/imx/soc-imx8.c | 3 +
7 files changed, 160 insertions(+), 2 deletions(-)
create mode 100644 drivers/cpufreq/imx-cpufreq-dt.c
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Leonard Crestez <leonard.crestez@nxp.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
Lucas Stach <l.stach@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Anson Huang <anson.huang@nxp.com>, Jacky Bai <ping.bai@nxp.com>,
Abel Vesa <abel.vesa@nxp.com>,
Aisheng Dong <aisheng.dong@nxp.com>,
Fabio Estevam <fabio.estevam@nxp.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
dl-linux-imx <linux-imx@nxp.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: [PATCH v2 0/3] cpufreq: Add imx-cpufreq-dt driver
Date: Thu, 2 May 2019 22:44:12 +0000 [thread overview]
Message-ID: <cover.1556836868.git.leonard.crestez@nxp.com> (raw)
Message-ID: <20190502224412.CdITwndRVDXL-EWGgiZAg9qKJzvpNlDI2Mltuo2BArU@z> (raw)
Right now in upstream imx8m cpufreq support just lists a common subset
of OPPs because the higher ones should only be attempted after checking
speed grading in fuses.
Add a small driver which checks speed grading from nvmem cells before
registering cpufreq-dt.
---
By default kconfig builds it as a module even though it's very small.
Couldn't find a way for MODULE_DEVICE_TABLE to match on root node compat
string and there was no other appropriate node so register the
imx-cpufreq-dt platfrom device directly from imx8 soc driver instead. I
checked module is probed by default and rmmod/modprobe again works.
It seems that cpufreq-dt insists on adding the opp and regulator itself
so can't actually call dev_pm_opp_of_add_table and then
dev_pm_opp_disable so implementation was switched to opp-supported-hw.
Maybe I'm confused by API quirks?
The market segment logic was dropped because I couldn't find any good
references in datasheets for why lower or intermediary OPPs should be
disabled on certain market segments. Using opp-supported-hw means that
adding this in the future would require changing flags inside DT instead
of code, that seems undesirable for DT compat reasons.
This could also be extended to mach-imx7d speed grading.
I never noticed anything wrong with going above the fused speed grading
however it's technically unsafe so the cpufreq parts should go in before
DT changes.
Other changes since v1:
* Turn into a proper module
* Support imx8mq
Link to v1 (RFC): https://patchwork.kernel.org/patch/10916769/
Leonard Crestez (3):
cpufreq: Add imx-cpufreq-dt driver
arm64: dts: imx8mm: Add cpu speed grading and all OPPs
arm64: dts: imx8mq: Add cpu speed grading and all OPPs
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 23 +++++-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 23 +++++-
drivers/cpufreq/Kconfig.arm | 10 +++
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/imx-cpufreq-dt.c | 99 +++++++++++++++++++++++
drivers/soc/imx/soc-imx8.c | 3 +
7 files changed, 160 insertions(+), 2 deletions(-)
create mode 100644 drivers/cpufreq/imx-cpufreq-dt.c
--
2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Leonard Crestez <leonard.crestez@nxp.com>
To: Viresh Kumar <viresh.kumar@linaro.org>,
Lucas Stach <l.stach@pengutronix.de>,
Shawn Guo <shawnguo@kernel.org>
Cc: Aisheng Dong <aisheng.dong@nxp.com>, Jacky Bai <ping.bai@nxp.com>,
Anson Huang <anson.huang@nxp.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
dl-linux-imx <linux-imx@nxp.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
Fabio Estevam <fabio.estevam@nxp.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Abel Vesa <abel.vesa@nxp.com>
Subject: [PATCH v2 0/3] cpufreq: Add imx-cpufreq-dt driver
Date: Thu, 2 May 2019 22:44:12 +0000 [thread overview]
Message-ID: <cover.1556836868.git.leonard.crestez@nxp.com> (raw)
Right now in upstream imx8m cpufreq support just lists a common subset
of OPPs because the higher ones should only be attempted after checking
speed grading in fuses.
Add a small driver which checks speed grading from nvmem cells before
registering cpufreq-dt.
---
By default kconfig builds it as a module even though it's very small.
Couldn't find a way for MODULE_DEVICE_TABLE to match on root node compat
string and there was no other appropriate node so register the
imx-cpufreq-dt platfrom device directly from imx8 soc driver instead. I
checked module is probed by default and rmmod/modprobe again works.
It seems that cpufreq-dt insists on adding the opp and regulator itself
so can't actually call dev_pm_opp_of_add_table and then
dev_pm_opp_disable so implementation was switched to opp-supported-hw.
Maybe I'm confused by API quirks?
The market segment logic was dropped because I couldn't find any good
references in datasheets for why lower or intermediary OPPs should be
disabled on certain market segments. Using opp-supported-hw means that
adding this in the future would require changing flags inside DT instead
of code, that seems undesirable for DT compat reasons.
This could also be extended to mach-imx7d speed grading.
I never noticed anything wrong with going above the fused speed grading
however it's technically unsafe so the cpufreq parts should go in before
DT changes.
Other changes since v1:
* Turn into a proper module
* Support imx8mq
Link to v1 (RFC): https://patchwork.kernel.org/patch/10916769/
Leonard Crestez (3):
cpufreq: Add imx-cpufreq-dt driver
arm64: dts: imx8mm: Add cpu speed grading and all OPPs
arm64: dts: imx8mq: Add cpu speed grading and all OPPs
arch/arm64/boot/dts/freescale/imx8mm.dtsi | 23 +++++-
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 23 +++++-
drivers/cpufreq/Kconfig.arm | 10 +++
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/cpufreq-dt-platdev.c | 3 +
drivers/cpufreq/imx-cpufreq-dt.c | 99 +++++++++++++++++++++++
drivers/soc/imx/soc-imx8.c | 3 +
7 files changed, 160 insertions(+), 2 deletions(-)
create mode 100644 drivers/cpufreq/imx-cpufreq-dt.c
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2019-05-02 22:44 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-02 22:44 Leonard Crestez [this message]
2019-05-02 22:44 ` [PATCH v2 0/3] cpufreq: Add imx-cpufreq-dt driver Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-02 22:44 ` [PATCH v2 1/3] " Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-03 6:52 ` Viresh Kumar
2019-05-03 6:52 ` Viresh Kumar
2019-05-03 6:52 ` Viresh Kumar
2019-05-03 9:44 ` Leonard Crestez
2019-05-03 9:44 ` Leonard Crestez
2019-05-03 9:44 ` Leonard Crestez
2019-05-03 9:53 ` Viresh Kumar
2019-05-03 9:53 ` Viresh Kumar
2019-05-03 9:53 ` Viresh Kumar
2019-05-02 22:44 ` [PATCH v2 2/3] arm64: dts: imx8mm: Add cpu speed grading and all OPPs Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-03 6:52 ` Viresh Kumar
2019-05-03 6:52 ` Viresh Kumar
2019-05-03 6:52 ` Viresh Kumar
2019-05-02 22:44 ` [PATCH v2 3/3] arm64: dts: imx8mq: " Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-02 22:44 ` Leonard Crestez
2019-05-03 6:53 ` Viresh Kumar
2019-05-03 6:53 ` Viresh Kumar
2019-05-03 6:53 ` Viresh Kumar
2019-05-03 6:50 ` [PATCH v2 0/3] cpufreq: Add imx-cpufreq-dt driver Viresh Kumar
2019-05-03 6:50 ` Viresh Kumar
2019-05-03 6:50 ` Viresh Kumar
2019-05-03 11:51 ` Leonard Crestez
2019-05-03 11:51 ` Leonard Crestez
2019-05-03 11:51 ` Leonard Crestez
2019-05-07 5:35 ` Viresh Kumar
2019-05-07 5:35 ` Viresh Kumar
2019-05-07 5:35 ` Viresh Kumar
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=cover.1556836868.git.leonard.crestez@nxp.com \
--to=leonard.crestez@nxp.com \
--cc=abel.vesa@nxp.com \
--cc=aisheng.dong@nxp.com \
--cc=anson.huang@nxp.com \
--cc=fabio.estevam@nxp.com \
--cc=kernel@pengutronix.de \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-pm@vger.kernel.org \
--cc=ping.bai@nxp.com \
--cc=rjw@rjwysocki.net \
--cc=shawnguo@kernel.org \
--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.