* [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF
@ 2016-03-31 13:48 Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF Heiko Stuebner
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
The GRF contains both individual settings-bits as well as somewhat more
fully blocks like different phy-controls and also the io-voltage selection.
Similar to the power-domains living under the pmu, things like said
io-voltage selection should live under the grf instead of separate
nodes higher up.
This is even more important now that socs like the rk3368 and probably
more future socs seem to contain more than one GRF-area (a second one
under the PMU power-domain) with each containing a part of the voltage
selection. So having that in the correct place also prevents confusion.
Ideally patch1 would go into 4.7 through the power or avs tree and the
devicetree-related things should wait until after the next merge window
due to the updated binding, which I can then simply apply to my dts
branches.
changes in v2:
- adapt patch1 to underlying changes in the iodomain driver
Heiko Stuebner (5):
PM / AVS: rockchip-io: make io-domains a child of the GRF
ARM: dts: rockchip: make rk3288-grf a simple-mfd
ARM: dts: rockchip: move rk3288 io-domain nodes to the grf
arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well
arm64: dts: rockchip: add rk3368 iodomains
.../bindings/power/rockchip-io-domain.txt | 4 ++-
arch/arm/boot/dts/rk3288-firefly.dtsi | 33 +++++++++++----------
arch/arm/boot/dts/rk3288-popmetal.dts | 34 ++++++++++++----------
arch/arm/boot/dts/rk3288-rock2-som.dtsi | 34 ++++++++++++----------
arch/arm/boot/dts/rk3288-veyron.dtsi | 28 +++++++++---------
arch/arm/boot/dts/rk3288.dtsi | 2 +-
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 22 ++++++++++++++
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 4 +--
drivers/power/avs/rockchip-io-domain.c | 10 ++++++-
9 files changed, 105 insertions(+), 66 deletions(-)
--
2.6.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
@ 2016-03-31 13:48 ` Heiko Stuebner
2016-04-12 2:23 ` Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd Heiko Stuebner
` (3 subsequent siblings)
4 siblings, 1 reply; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
IO-domain handling is part of the general register files, so should live
under the grf directly. This change allows the grf to be a simple-mfd and
the io-domains fetching the syscon regmap from that parent-node.
The old binding is of course preserved, though deprecated.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: David Wu <david.wu@rock-chips.com>
---
Documentation/devicetree/bindings/power/rockchip-io-domain.txt | 4 +++-
drivers/power/avs/rockchip-io-domain.c | 10 +++++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/power/rockchip-io-domain.txt b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt
index c84fb47..d23dc00 100644
--- a/Documentation/devicetree/bindings/power/rockchip-io-domain.txt
+++ b/Documentation/devicetree/bindings/power/rockchip-io-domain.txt
@@ -37,8 +37,10 @@ Required properties:
- "rockchip,rk3368-pmu-io-voltage-domain" for rk3368 pmu-domains
- "rockchip,rk3399-io-voltage-domain" for rk3399
- "rockchip,rk3399-pmu-io-voltage-domain" for rk3399 pmu-domains
-- rockchip,grf: phandle to the syscon managing the "general register files"
+Deprecated properties:
+- rockchip,grf: phandle to the syscon managing the "general register files"
+ Systems should move the io-domains to a sub-node of the grf simple-mfd.
You specify supplies using the standard regulator bindings by including
a phandle the relevant regulator. All specified supplies must be able
diff --git a/drivers/power/avs/rockchip-io-domain.c b/drivers/power/avs/rockchip-io-domain.c
index 8986382..01b6d3f 100644
--- a/drivers/power/avs/rockchip-io-domain.c
+++ b/drivers/power/avs/rockchip-io-domain.c
@@ -336,6 +336,7 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
struct device_node *np = pdev->dev.of_node;
const struct of_device_id *match;
struct rockchip_iodomain *iod;
+ struct device *parent;
int i, ret = 0;
if (!np)
@@ -351,7 +352,14 @@ static int rockchip_iodomain_probe(struct platform_device *pdev)
match = of_match_node(rockchip_iodomain_match, np);
iod->soc_data = (struct rockchip_iodomain_soc_data *)match->data;
- iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
+ parent = pdev->dev.parent;
+ if (parent && parent->of_node) {
+ iod->grf = syscon_node_to_regmap(parent->of_node);
+ } else {
+ dev_dbg(&pdev->dev, "falling back to old binding\n");
+ iod->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
+ }
+
if (IS_ERR(iod->grf)) {
dev_err(&pdev->dev, "couldn't find grf regmap\n");
return PTR_ERR(iod->grf);
--
2.6.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF Heiko Stuebner
@ 2016-03-31 13:48 ` Heiko Stuebner
2016-04-15 21:21 ` Heiko Stübner
2016-03-31 13:48 ` [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf Heiko Stuebner
` (2 subsequent siblings)
4 siblings, 1 reply; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
Similar to the pmu, the general register files contain a lot of different
setting bits grouped into general registers, but also some somewhat special
entities like the controls for some phy-blocks or the io-voltage control.
To be able to move these blocks under the grf node where they actually
belong, make it a simple-mfd.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm/boot/dts/rk3288.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 31f7e20..bc57232 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -745,7 +745,7 @@
};
grf: syscon@ff770000 {
- compatible = "rockchip,rk3288-grf", "syscon";
+ compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
reg = <0xff770000 0x1000>;
};
--
2.6.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd Heiko Stuebner
@ 2016-03-31 13:48 ` Heiko Stuebner
2016-05-21 13:40 ` Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains Heiko Stuebner
4 siblings, 1 reply; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
io-voltage control is actually part of the grf, so move the node under the
newly available grf simple-mfd.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm/boot/dts/rk3288-firefly.dtsi | 33 ++++++++++++++++----------------
arch/arm/boot/dts/rk3288-popmetal.dts | 34 +++++++++++++++++----------------
arch/arm/boot/dts/rk3288-rock2-som.dtsi | 34 +++++++++++++++++----------------
arch/arm/boot/dts/rk3288-veyron.dtsi | 28 ++++++++++++++-------------
4 files changed, 68 insertions(+), 61 deletions(-)
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index 98c586a4..6c5f510d 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -63,22 +63,6 @@
clock-output-names = "ext_gmac";
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcca_33>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&dovdd_1v8>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vcc_lan>;
- gpio30-supply = <&vcc_io>;
- gpio1830-supply = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vccio_wl>;
- };
-
ir: ir-receiver {
compatible = "gpio-ir-receiver";
pinctrl-names = "default";
@@ -237,6 +221,23 @@
status = "ok";
};
+&grf {
+ io_domains: io-domains {
+ compatible = "rockchip,rk3288-io-voltage-domain";
+
+ audio-supply = <&vcca_33>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&dovdd_1v8>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vcc_lan>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vccio_wl>;
+ };
+};
+
&hdmi {
ddc-i2c-bus = <&i2c5>;
status = "okay";
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index 2ff9689..4322eaf 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -79,22 +79,6 @@
};
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcca_33>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&vcc18_dvp>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vcc_lan>;
- gpio30-supply = <&vcc_io>;
- gpio1830-supply = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vccio_wl>;
- };
-
ir: ir-receiver {
compatible = "gpio-ir-receiver";
gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
@@ -205,6 +189,24 @@
status = "ok";
};
+&grf {
+ io_domains: io-domains {
+ compatible = "rockchip,rk3288-io-voltage-domain";
+ rockchip,grf = <&grf>;
+
+ audio-supply = <&vcca_33>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&vcc18_dvp>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vcc_lan>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vccio_wl>;
+ };
+};
+
&hdmi {
ddc-i2c-bus = <&i2c5>;
status = "okay";
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index e1ee9f9..8660b8a 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -61,22 +61,6 @@
clock-output-names = "ext_gmac";
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcc_io>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&vcc_18>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vccio_pmu>;
- gpio30-supply = <&vccio_pmu>;
- gpio1830 = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vcc_18>;
- };
-
vcc_flash: flash-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
@@ -129,6 +113,24 @@
tx_delay = <0x30>;
};
+&grf {
+ io_domains: io-domains {
+ compatible = "rockchip,rk3288-io-voltage-domain";
+ rockchip,grf = <&grf>;
+
+ audio-supply = <&vcc_io>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&vcc_18>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vccio_pmu>;
+ gpio30-supply = <&vccio_pmu>;
+ gpio1830 = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vcc_18>;
+ };
+};
+
&i2c0 {
status = "okay";
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 412809c..df44735 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -83,19 +83,6 @@
reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- bb-supply = <&vcc33_io>;
- dvp-supply = <&vcc_18>;
- flash0-supply = <&vcc18_flashio>;
- gpio1830-supply = <&vcc33_io>;
- gpio30-supply = <&vcc33_io>;
- lcdc-supply = <&vcc33_lcd>;
- wifi-supply = <&vcc18_wl>;
- };
-
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rk808 RK808_CLKOUT1>;
@@ -159,6 +146,21 @@
pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
};
+&grf {
+ io_domains: io-domains {
+ compatible = "rockchip,rk3288-io-voltage-domain";
+ rockchip,grf = <&grf>;
+
+ bb-supply = <&vcc33_io>;
+ dvp-supply = <&vcc_18>;
+ flash0-supply = <&vcc18_flashio>;
+ gpio1830-supply = <&vcc33_io>;
+ gpio30-supply = <&vcc33_io>;
+ lcdc-supply = <&vcc33_lcd>;
+ wifi-supply = <&vcc18_wl>;
+ };
+};
+
&hdmi {
ddc-i2c-bus = <&i2c5>;
status = "okay";
--
2.6.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
` (2 preceding siblings ...)
2016-03-31 13:48 ` [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf Heiko Stuebner
@ 2016-03-31 13:48 ` Heiko Stuebner
2016-05-21 13:55 ` Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains Heiko Stuebner
4 siblings, 1 reply; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
The general register files do contain a lot of separate functions and
while some really are only registers with a lot of different 1-bit
settings, there are also a lot of them containing some bigger function
blocks. To be able to define these as sub-devices, make them simple-mfds.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: David Wu <david.wu@rock-chips.com>
---
arch/arm64/boot/dts/rockchip/rk3368.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
index 49d1191..6029310 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi
@@ -556,7 +556,7 @@
};
pmugrf: syscon@ff738000 {
- compatible = "rockchip,rk3368-pmugrf", "syscon";
+ compatible = "rockchip,rk3368-pmugrf", "syscon", "simple-mfd";
reg = <0x0 0xff738000 0x0 0x1000>;
};
@@ -569,7 +569,7 @@
};
grf: syscon@ff770000 {
- compatible = "rockchip,rk3368-grf", "syscon";
+ compatible = "rockchip,rk3368-grf", "syscon", "simple-mfd";
reg = <0x0 0xff770000 0x0 0x1000>;
};
--
2.6.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
` (3 preceding siblings ...)
2016-03-31 13:48 ` [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well Heiko Stuebner
@ 2016-03-31 13:48 ` Heiko Stuebner
2016-04-03 3:45 ` kbuild test robot
2016-05-21 16:52 ` Heiko Stuebner
4 siblings, 2 replies; 15+ messages in thread
From: Heiko Stuebner @ 2016-03-31 13:48 UTC (permalink / raw)
To: rjw, khilman; +Cc: linux-pm, linux-rockchip, linux-arm-kernel, Heiko Stuebner
Add the supply-links according to the R88 schematics.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
index 1f2b642..d4dd289 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
@@ -211,6 +211,18 @@
status = "ok";
};
+&grf {
+ io-domains {
+ compatible = "rockchip,rk3368-io-voltage-domain";
+
+ audio-supply = <&vcc_io>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vccio_wl>;
+ };
+};
+
&i2c0 {
status = "okay";
@@ -331,6 +343,16 @@
};
};
+&pmugrf {
+ io-domains {
+ compatible = "rockchip,rk3368-pmu-io-voltage-domain";
+ rockchip,grf = <&pmugrf>;
+
+ pmu-supply = <&vcc_io>;
+ vop-supply = <&vcc_io>;
+ };
+};
+
&saradc {
vref-supply = <&vcc_18>;
status = "okay";
--
2.6.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains
2016-03-31 13:48 ` [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains Heiko Stuebner
@ 2016-04-03 3:45 ` kbuild test robot
2016-05-21 16:52 ` Heiko Stuebner
1 sibling, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2016-04-03 3:45 UTC (permalink / raw)
Cc: kbuild-all, rjw, khilman, linux-pm, linux-rockchip,
linux-arm-kernel, Heiko Stuebner
[-- Attachment #1: Type: text/plain, Size: 981 bytes --]
Hi Heiko,
[auto build test ERROR on rockchip/for-next]
[also build test ERROR on v4.6-rc1 next-20160401]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Heiko-Stuebner/ARM-rockchip-move-io-domains-under-GRF/20160331-215117
base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: arm64-defconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64
All errors (new ones prefixed by >>):
>> ERROR: Input tree has errors, aborting (use -f to force output)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 22476 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF
2016-03-31 13:48 ` [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF Heiko Stuebner
@ 2016-04-12 2:23 ` Heiko Stuebner
2016-04-13 4:55 ` Rafael J. Wysocki
0 siblings, 1 reply; 15+ messages in thread
From: Heiko Stuebner @ 2016-04-12 2:23 UTC (permalink / raw)
To: rjw; +Cc: khilman, linux-pm, linux-rockchip, linux-arm-kernel
Hi Rafael,
Am Donnerstag, 31. März 2016, 15:48:42 schrieb Heiko Stuebner:
> IO-domain handling is part of the general register files, so should live
> under the grf directly. This change allows the grf to be a simple-mfd and
> the io-domains fetching the syscon regmap from that parent-node.
>
> The old binding is of course preserved, though deprecated.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> Acked-by: Kevin Hilman <khilman@baylibre.com>
> Tested-by: David Wu <david.wu@rock-chips.com>
could you look into picking up this patch 1/5 please?
The others are to much interwined into other devicetree changes, so I'll
apply them for 4.8, but it would be nice if you could pick up this one for
4.7 so the code change becomes available at 4.8-rc1
Thanks
Heiko
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF
2016-04-12 2:23 ` Heiko Stuebner
@ 2016-04-13 4:55 ` Rafael J. Wysocki
2016-04-26 16:25 ` Heiko Stübner
0 siblings, 1 reply; 15+ messages in thread
From: Rafael J. Wysocki @ 2016-04-13 4:55 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rafael J. Wysocki, Kevin Hilman, linux-pm@vger.kernel.org,
linux-rockchip, linux-arm-kernel@lists.infradead.org
On Tue, Apr 12, 2016 at 4:23 AM, Heiko Stuebner <heiko@sntech.de> wrote:
> Hi Rafael,
>
> Am Donnerstag, 31. März 2016, 15:48:42 schrieb Heiko Stuebner:
>> IO-domain handling is part of the general register files, so should live
>> under the grf directly. This change allows the grf to be a simple-mfd and
>> the io-domains fetching the syscon regmap from that parent-node.
>>
>> The old binding is of course preserved, though deprecated.
>>
>> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>> Acked-by: Kevin Hilman <khilman@baylibre.com>
>> Tested-by: David Wu <david.wu@rock-chips.com>
>
> could you look into picking up this patch 1/5 please?
>
> The others are to much interwined into other devicetree changes, so I'll
> apply them for 4.8, but it would be nice if you could pick up this one for
> 4.7 so the code change becomes available at 4.8-rc1
OK, I'll pick it up, but I'm traveling this week, so that'll take a
few days more.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd
2016-03-31 13:48 ` [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd Heiko Stuebner
@ 2016-04-15 21:21 ` Heiko Stübner
0 siblings, 0 replies; 15+ messages in thread
From: Heiko Stübner @ 2016-04-15 21:21 UTC (permalink / raw)
To: rjw; +Cc: khilman, linux-pm, linux-rockchip, linux-arm-kernel
Am Donnerstag, 31. März 2016, 15:48:43 schrieb Heiko Stuebner:
> Similar to the pmu, the general register files contain a lot of different
> setting bits grouped into general registers, but also some somewhat special
> entities like the controls for some phy-blocks or the io-voltage control.
> To be able to move these blocks under the grf node where they actually
> belong, make it a simple-mfd.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
I've picked this patch into my dts32 branch for v4.7, as I need it as base for
some other change as well.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF
2016-04-13 4:55 ` Rafael J. Wysocki
@ 2016-04-26 16:25 ` Heiko Stübner
2016-04-26 17:13 ` Rafael J. Wysocki
0 siblings, 1 reply; 15+ messages in thread
From: Heiko Stübner @ 2016-04-26 16:25 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Rafael J. Wysocki, Kevin Hilman, linux-pm@vger.kernel.org,
linux-rockchip, linux-arm-kernel@lists.infradead.org
Hi Rafael,
Am Mittwoch, 13. April 2016, 06:55:03 schrieb Rafael J. Wysocki:
> On Tue, Apr 12, 2016 at 4:23 AM, Heiko Stuebner <heiko@sntech.de> wrote:
> > Am Donnerstag, 31. März 2016, 15:48:42 schrieb Heiko Stuebner:
> >> IO-domain handling is part of the general register files, so should live
> >> under the grf directly. This change allows the grf to be a simple-mfd and
> >> the io-domains fetching the syscon regmap from that parent-node.
> >>
> >> The old binding is of course preserved, though deprecated.
> >>
> >> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> >> Acked-by: Kevin Hilman <khilman@baylibre.com>
> >> Tested-by: David Wu <david.wu@rock-chips.com>
> >
> > could you look into picking up this patch 1/5 please?
> >
> > The others are to much interwined into other devicetree changes, so I'll
> > apply them for 4.8, but it would be nice if you could pick up this one for
> > 4.7 so the code change becomes available at 4.8-rc1
>
> OK, I'll pick it up, but I'm traveling this week, so that'll take a
> few days more.
I just checked kernel/git/rafael/linux-pm.git and didn't find this patch there,
so I guess it might be time for a ping ;-) .
Thanks
Heiko
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF
2016-04-26 16:25 ` Heiko Stübner
@ 2016-04-26 17:13 ` Rafael J. Wysocki
0 siblings, 0 replies; 15+ messages in thread
From: Rafael J. Wysocki @ 2016-04-26 17:13 UTC (permalink / raw)
To: Heiko Stübner
Cc: Rafael J. Wysocki, Rafael J. Wysocki, Kevin Hilman,
linux-pm@vger.kernel.org, linux-rockchip,
linux-arm-kernel@lists.infradead.org
On Tue, Apr 26, 2016 at 6:25 PM, Heiko Stübner <heiko@sntech.de> wrote:
> Hi Rafael,
>
> Am Mittwoch, 13. April 2016, 06:55:03 schrieb Rafael J. Wysocki:
>> On Tue, Apr 12, 2016 at 4:23 AM, Heiko Stuebner <heiko@sntech.de> wrote:
>> > Am Donnerstag, 31. März 2016, 15:48:42 schrieb Heiko Stuebner:
>> >> IO-domain handling is part of the general register files, so should live
>> >> under the grf directly. This change allows the grf to be a simple-mfd and
>> >> the io-domains fetching the syscon regmap from that parent-node.
>> >>
>> >> The old binding is of course preserved, though deprecated.
>> >>
>> >> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>> >> Acked-by: Kevin Hilman <khilman@baylibre.com>
>> >> Tested-by: David Wu <david.wu@rock-chips.com>
>> >
>> > could you look into picking up this patch 1/5 please?
>> >
>> > The others are to much interwined into other devicetree changes, so I'll
>> > apply them for 4.8, but it would be nice if you could pick up this one for
>> > 4.7 so the code change becomes available at 4.8-rc1
>>
>> OK, I'll pick it up, but I'm traveling this week, so that'll take a
>> few days more.
>
> I just checked kernel/git/rafael/linux-pm.git and didn't find this patch there,
> so I guess it might be time for a ping ;-) .
My bad, sorry.
Queued up for 4.7 now, will show up in linux-next in the next few days.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf
2016-03-31 13:48 ` [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf Heiko Stuebner
@ 2016-05-21 13:40 ` Heiko Stuebner
0 siblings, 0 replies; 15+ messages in thread
From: Heiko Stuebner @ 2016-05-21 13:40 UTC (permalink / raw)
To: rjw; +Cc: khilman, linux-pm, linux-rockchip, linux-arm-kernel
Am Donnerstag, 31. März 2016, 15:48:44 schrieb Heiko Stuebner:
> io-voltage control is actually part of the grf, so move the node under the
> newly available grf simple-mfd.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
applied for 4.8, but adapted slightly to have the core io-domain nodes centrally in the rk3288.dtsi:
----- 8< -----
From: Heiko Stuebner <heiko@sntech.de>
Date: Sat, 21 May 2016 01:36:17 +0200
Subject: [PATCH v2.1 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf
io-voltage control is actually part of the grf, so move the node under the
newly available grf simple-mfd.
To minimize duplicate code, the core node and compatible property
gets placed in the core rk3288.dtsi while the individual boards
now only need to enable it and add the necessary supply properties.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
arch/arm/boot/dts/rk3288-firefly.dtsi | 31 +++++++++++++++----------------
arch/arm/boot/dts/rk3288-miqi.dts | 26 +++++++++++++-------------
arch/arm/boot/dts/rk3288-popmetal.dts | 31 +++++++++++++++----------------
arch/arm/boot/dts/rk3288-rock2-som.dtsi | 31 +++++++++++++++----------------
arch/arm/boot/dts/rk3288-veyron.dtsi | 25 ++++++++++++-------------
arch/arm/boot/dts/rk3288.dtsi | 5 +++++
6 files changed, 75 insertions(+), 74 deletions(-)
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index d6cf9ad..114c90fb 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -64,22 +64,6 @@
clock-output-names = "ext_gmac";
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcca_33>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&dovdd_1v8>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vcc_lan>;
- gpio30-supply = <&vcc_io>;
- gpio1830-supply = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vccio_wl>;
- };
-
ir: ir-receiver {
compatible = "gpio-ir-receiver";
pinctrl-names = "default";
@@ -397,6 +381,21 @@
status = "okay";
};
+&io_domains {
+ status = "okay";
+
+ audio-supply = <&vcca_33>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&dovdd_1v8>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vcc_lan>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vccio_wl>;
+};
+
&pinctrl {
pcfg_output_high: pcfg-output-high {
output-high;
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 8643103..2448842 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -64,19 +64,6 @@
clock-output-names = "ext_gmac";
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
-
- audio-supply = <&vcca_33>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vcc_lan>;
- gpio30-supply = <&vcc_io>;
- gpio1830-supply = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vcc_18>;
- };
-
leds {
compatible = "gpio-leds";
@@ -321,6 +308,19 @@
status = "okay";
};
+&io_domains {
+ status = "okay";
+
+ audio-supply = <&vcca_33>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vcc_lan>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vcc_18>;
+};
+
&pinctrl {
pcfg_output_high: pcfg-output-high {
output-high;
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index 720717b..dda8d25 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -77,22 +77,6 @@
};
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcca_33>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&vcc18_dvp>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vcc_lan>;
- gpio30-supply = <&vcc_io>;
- gpio1830-supply = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vccio_wl>;
- };
-
ir: ir-receiver {
compatible = "gpio-ir-receiver";
gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
@@ -437,6 +421,21 @@
status = "okay";
};
+&io_domains {
+ status = "okay";
+
+ audio-supply = <&vcca_33>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&vcc18_dvp>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vcc_lan>;
+ gpio30-supply = <&vcc_io>;
+ gpio1830-supply = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vccio_wl>;
+};
+
&pinctrl {
ak8963 {
comp_int: comp-int {
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index e1ee9f9..bb1f01e 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -61,22 +61,6 @@
clock-output-names = "ext_gmac";
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- audio-supply = <&vcc_io>;
- bb-supply = <&vcc_io>;
- dvp-supply = <&vcc_18>;
- flash0-supply = <&vcc_flash>;
- flash1-supply = <&vccio_pmu>;
- gpio30-supply = <&vccio_pmu>;
- gpio1830 = <&vcc_io>;
- lcdc-supply = <&vcc_io>;
- sdcard-supply = <&vccio_sd>;
- wifi-supply = <&vcc_18>;
- };
-
vcc_flash: flash-regulator {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
@@ -259,6 +243,21 @@
};
};
+&io_domains {
+ status = "okay";
+
+ audio-supply = <&vcc_io>;
+ bb-supply = <&vcc_io>;
+ dvp-supply = <&vcc_18>;
+ flash0-supply = <&vcc_flash>;
+ flash1-supply = <&vccio_pmu>;
+ gpio30-supply = <&vccio_pmu>;
+ gpio1830 = <&vcc_io>;
+ lcdc-supply = <&vcc_io>;
+ sdcard-supply = <&vccio_sd>;
+ wifi-supply = <&vcc_18>;
+};
+
&pinctrl {
pcfg_output_high: pcfg-output-high {
output-high;
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index 5e4c690..3dd2cca 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -83,19 +83,6 @@
reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
};
- io_domains: io-domains {
- compatible = "rockchip,rk3288-io-voltage-domain";
- rockchip,grf = <&grf>;
-
- bb-supply = <&vcc33_io>;
- dvp-supply = <&vcc_18>;
- flash0-supply = <&vcc18_flashio>;
- gpio1830-supply = <&vcc33_io>;
- gpio30-supply = <&vcc33_io>;
- lcdc-supply = <&vcc33_lcd>;
- wifi-supply = <&vcc18_wl>;
- };
-
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clocks = <&rk808 RK808_CLKOUT1>;
@@ -355,6 +342,18 @@
i2c-scl-rising-time-ns = <1000>;
};
+&io_domains {
+ status = "okay";
+
+ bb-supply = <&vcc33_io>;
+ dvp-supply = <&vcc_18>;
+ flash0-supply = <&vcc18_flashio>;
+ gpio1830-supply = <&vcc33_io>;
+ gpio30-supply = <&vcc33_io>;
+ lcdc-supply = <&vcc33_lcd>;
+ wifi-supply = <&vcc18_wl>;
+};
+
&pwm1 {
status = "okay";
};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 3b44ef3..7fa932f 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -826,6 +826,11 @@
#phy-cells = <0>;
status = "disabled";
};
+
+ io_domains: io-domains {
+ compatible = "rockchip,rk3288-io-voltage-domain";
+ status = "disabled";
+ };
};
wdt: watchdog@ff800000 {
--
2.6.4
----- 8< -----
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well
2016-03-31 13:48 ` [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well Heiko Stuebner
@ 2016-05-21 13:55 ` Heiko Stuebner
0 siblings, 0 replies; 15+ messages in thread
From: Heiko Stuebner @ 2016-05-21 13:55 UTC (permalink / raw)
To: rjw; +Cc: khilman, linux-pm, linux-rockchip, linux-arm-kernel
Am Donnerstag, 31. März 2016, 15:48:45 schrieb Heiko Stuebner:
> The general register files do contain a lot of separate functions and
> while some really are only registers with a lot of different 1-bit
> settings, there are also a lot of them containing some bigger function
> blocks. To be able to define these as sub-devices, make them simple-mfds.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> Tested-by: David Wu <david.wu@rock-chips.com>
applied for 4.8
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains
2016-03-31 13:48 ` [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains Heiko Stuebner
2016-04-03 3:45 ` kbuild test robot
@ 2016-05-21 16:52 ` Heiko Stuebner
1 sibling, 0 replies; 15+ messages in thread
From: Heiko Stuebner @ 2016-05-21 16:52 UTC (permalink / raw)
To: rjw; +Cc: khilman, linux-pm, linux-rockchip, linux-arm-kernel
Am Donnerstag, 31. März 2016, 15:48:46 schrieb Heiko Stuebner:
> Add the supply-links according to the R88 schematics.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
going to rework this one a bit and make it part of a new series.
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2016-05-21 16:52 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-31 13:48 [PATCH v2 0/5] ARM: rockchip: move io-domains under GRF Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 1/5] PM / AVS: rockchip-io: make io-domains a child of the GRF Heiko Stuebner
2016-04-12 2:23 ` Heiko Stuebner
2016-04-13 4:55 ` Rafael J. Wysocki
2016-04-26 16:25 ` Heiko Stübner
2016-04-26 17:13 ` Rafael J. Wysocki
2016-03-31 13:48 ` [PATCH v2 2/5] ARM: dts: rockchip: make rk3288-grf a simple-mfd Heiko Stuebner
2016-04-15 21:21 ` Heiko Stübner
2016-03-31 13:48 ` [PATCH v2 3/5] ARM: dts: rockchip: move rk3288 io-domain nodes to the grf Heiko Stuebner
2016-05-21 13:40 ` Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 4/5] arm64: dts: rockchip: make rk3368 grf syscons simple-mfds as well Heiko Stuebner
2016-05-21 13:55 ` Heiko Stuebner
2016-03-31 13:48 ` [PATCH v2 5/5] arm64: dts: rockchip: add rk3368-r88 iodomains Heiko Stuebner
2016-04-03 3:45 ` kbuild test robot
2016-05-21 16:52 ` Heiko Stuebner
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).