* [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes Sebastian Hesselbarth
` (14 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
The chip and system controller nodes handle sub-devices, such as the
clock, pinctrl or reset controllers. The drivers handling them need a
regmap provided by syscon. Select it by default when using a Berlin SoC.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
arch/arm/mach-berlin/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig
index 3e40a947f3ea..742d53a5f7f9 100644
--- a/arch/arm/mach-berlin/Kconfig
+++ b/arch/arm/mach-berlin/Kconfig
@@ -6,6 +6,7 @@ menuconfig ARCH_BERLIN
select DW_APB_ICTL
select DW_APB_TIMER_OF
select GENERIC_IRQ_CHIP
+ select MFD_SYSCON
select PINCTRL
if ARCH_BERLIN
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 03/14] reset: berlin: convert to a platform driver Sebastian Hesselbarth
` (13 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
The chip and system controller nodes will be handled by simple-mfd based
driver probing. Prepare the conversion by adding "simple-mfd" and "syscon"
compatibles to the corresponding nodes.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
arch/arm/boot/dts/berlin2.dtsi | 4 ++--
arch/arm/boot/dts/berlin2cd.dtsi | 4 ++--
arch/arm/boot/dts/berlin2q.dtsi | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 63d00a63cfa6..245527abb77c 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -351,7 +351,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2-chip-ctrl";
+ compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
#reset-cells = <2>;
reg = <0xea0000 0x400>;
@@ -442,7 +442,7 @@
};
sysctrl: system-controller at d000 {
- compatible = "marvell,berlin2-system-ctrl";
+ compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
uart0_pmux: uart0-pmux {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 81b670ac494a..cccc23b45a26 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -295,7 +295,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2cd-chip-ctrl";
+ compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
#reset-cells = <2>;
reg = <0xea0000 0x400>;
@@ -389,7 +389,7 @@
};
sysctrl: system-controller at d000 {
- compatible = "marvell,berlin2cd-system-ctrl";
+ compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
};
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index be5397288d24..a515b54bb3e5 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -360,7 +360,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2q-chip-ctrl";
+ compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
#reset-cells = <2>;
reg = <0xea0000 0x400>, <0xdd0170 0x10>;
@@ -526,7 +526,7 @@
};
sysctrl: pin-controller at d000 {
- compatible = "marvell,berlin2q-system-ctrl";
+ compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
uart0_pmux: uart0-pmux {
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 03/14] reset: berlin: convert to a platform driver
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 01/14] ARM: berlin: select MFD_SYSCON by default Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 02/14] ARM: berlin: prepare simple-mfd/syscon conversion of sys/chip ctrl nodes Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes Sebastian Hesselbarth
` (12 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
The Berlin reset controller was introduced without being a platform
driver because of a needed DT rework: the node describing the reset
controller also describes the pinctrl and clk controllers...
Prepare conversion by adding a platform driver probe to a new
compatible "marvell,berlin2-reset" with syscon regmap.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
drivers/reset/reset-berlin.c | 53 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/drivers/reset/reset-berlin.c b/drivers/reset/reset-berlin.c
index f8b48a13cf0b..d43bc163dd02 100644
--- a/drivers/reset/reset-berlin.c
+++ b/drivers/reset/reset-berlin.c
@@ -11,10 +11,12 @@
#include <linux/delay.h>
#include <linux/io.h>
+#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/platform_device.h>
+#include <linux/regmap.h>
#include <linux/reset-controller.h>
#include <linux/slab.h>
#include <linux/types.h>
@@ -27,6 +29,7 @@
struct berlin_reset_priv {
void __iomem *base;
unsigned int size;
+ struct regmap *regmap;
struct reset_controller_dev rcdev;
};
@@ -37,7 +40,10 @@ static int berlin_reset_reset(struct reset_controller_dev *rcdev,
int offset = id >> 8;
int mask = BIT(id & 0x1f);
- writel(mask, priv->base + offset);
+ if (priv->regmap)
+ regmap_write(priv->regmap, offset, mask);
+ else
+ writel(mask, priv->base + offset);
/* let the reset be effective */
udelay(10);
@@ -70,6 +76,51 @@ static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
return (offset << 8) | bit;
}
+static int berlin2_reset_probe(struct platform_device *pdev)
+{
+ struct device_node *parent_np = of_get_parent(pdev->dev.of_node);
+ struct berlin_reset_priv *priv;
+
+ priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
+
+ priv->regmap = syscon_node_to_regmap(parent_np);
+ of_node_put(parent_np);
+ if (IS_ERR(priv->regmap))
+ return PTR_ERR(priv->regmap);
+
+ priv->rcdev.owner = THIS_MODULE;
+ priv->rcdev.ops = &berlin_reset_ops;
+ priv->rcdev.of_node = pdev->dev.of_node;
+ priv->rcdev.of_reset_n_cells = 2;
+ priv->rcdev.of_xlate = berlin_reset_xlate;
+
+ reset_controller_register(&priv->rcdev);
+
+ return 0;
+}
+
+static const struct of_device_id berlin_reset_dt_match[] = {
+ { .compatible = "marvell,berlin2-reset" },
+ { },
+};
+MODULE_DEVICE_TABLE(of, berlin_reset_dt_match);
+
+static struct platform_driver berlin_reset_driver = {
+ .probe = berlin2_reset_probe,
+ .driver = {
+ .name = "berlin2-reset",
+ .of_match_table = berlin_reset_dt_match,
+ },
+};
+module_platform_driver(berlin_reset_driver);
+
+MODULE_AUTHOR("Antoine Tenart <antoine.tenart@free-electrons.com>");
+MODULE_AUTHOR("Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>");
+MODULE_DESCRIPTION("Marvell Berlin reset driver");
+MODULE_LICENSE("GPL");
+
static int __berlin_reset_init(struct device_node *np)
{
struct berlin_reset_priv *priv;
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (2 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 03/14] reset: berlin: convert to a platform driver Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 05/14] reset: berlin: drop arch_initcall initialization Sebastian Hesselbarth
` (11 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
Now with a proper platform driver for reset and simple-mfd, move to
the new marvell,berlin-reset node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
arch/arm/boot/dts/berlin2.dtsi | 6 +++++-
arch/arm/boot/dts/berlin2cd.dtsi | 10 +++++++---
arch/arm/boot/dts/berlin2q.dtsi | 12 ++++++++----
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 245527abb77c..1e92511f8582 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -353,7 +353,6 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
- #reset-cells = <2>;
reg = <0xea0000 0x400>;
clocks = <&refclk>;
clock-names = "refclk";
@@ -362,6 +361,11 @@
groups = "G26";
function = "emmc";
};
+
+ chip_rst: reset {
+ compatible = "marvell,berlin2-reset";
+ #reset-cells = <2>;
+ };
};
apb at fc0000 {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index cccc23b45a26..5f8bfcdedceb 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -84,7 +84,7 @@
compatible = "marvell,berlin2cd-usb-phy";
reg = <0xb74000 0x128>;
#phy-cells = <0>;
- resets = <&chip 0x178 23>;
+ resets = <&chip_rst 0x178 23>;
status = "disabled";
};
@@ -92,7 +92,7 @@
compatible = "marvell,berlin2cd-usb-phy";
reg = <0xb78000 0x128>;
#phy-cells = <0>;
- resets = <&chip 0x178 24>;
+ resets = <&chip_rst 0x178 24>;
status = "disabled";
};
@@ -297,7 +297,6 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
- #reset-cells = <2>;
reg = <0xea0000 0x400>;
clocks = <&refclk>;
clock-names = "refclk";
@@ -306,6 +305,11 @@
groups = "G6";
function = "uart0";
};
+
+ chip_rst: reset {
+ compatible = "marvell,berlin2-reset";
+ #reset-cells = <2>;
+ };
};
usb0: usb at ed0000 {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index a515b54bb3e5..a27d03a2b5fa 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -127,7 +127,7 @@
compatible = "marvell,berlin2-usb-phy";
reg = <0xa2f400 0x128>;
#phy-cells = <0>;
- resets = <&chip 0x104 14>;
+ resets = <&chip_rst 0x104 14>;
status = "disabled";
};
@@ -145,7 +145,7 @@
compatible = "marvell,berlin2-usb-phy";
reg = <0xb74000 0x128>;
#phy-cells = <0>;
- resets = <&chip 0x104 12>;
+ resets = <&chip_rst 0x104 12>;
status = "disabled";
};
@@ -153,7 +153,7 @@
compatible = "marvell,berlin2-usb-phy";
reg = <0xb78000 0x128>;
#phy-cells = <0>;
- resets = <&chip 0x104 13>;
+ resets = <&chip_rst 0x104 13>;
status = "disabled";
};
@@ -362,7 +362,6 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
#clock-cells = <1>;
- #reset-cells = <2>;
reg = <0xea0000 0x400>, <0xdd0170 0x10>;
clocks = <&refclk>;
clock-names = "refclk";
@@ -376,6 +375,11 @@
groups = "G7";
function = "twsi1";
};
+
+ chip_rst: reset {
+ compatible = "marvell,berlin2-reset";
+ #reset-cells = <2>;
+ };
};
ahci: sata at e90000 {
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 05/14] reset: berlin: drop arch_initcall initialization
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (3 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 04/14] ARM: berlin: move reset to simple-mfd nodes Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon Sebastian Hesselbarth
` (10 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
With proper platform driver probing for berlin reset driver, drop the
arch_initcall workaround.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
drivers/reset/reset-berlin.c | 71 +-------------------------------------------
1 file changed, 1 insertion(+), 70 deletions(-)
diff --git a/drivers/reset/reset-berlin.c b/drivers/reset/reset-berlin.c
index d43bc163dd02..3c922d37255c 100644
--- a/drivers/reset/reset-berlin.c
+++ b/drivers/reset/reset-berlin.c
@@ -27,8 +27,6 @@
container_of((p), struct berlin_reset_priv, rcdev)
struct berlin_reset_priv {
- void __iomem *base;
- unsigned int size;
struct regmap *regmap;
struct reset_controller_dev rcdev;
};
@@ -40,10 +38,7 @@ static int berlin_reset_reset(struct reset_controller_dev *rcdev,
int offset = id >> 8;
int mask = BIT(id & 0x1f);
- if (priv->regmap)
- regmap_write(priv->regmap, offset, mask);
- else
- writel(mask, priv->base + offset);
+ regmap_write(priv->regmap, offset, mask);
/* let the reset be effective */
udelay(10);
@@ -58,7 +53,6 @@ static struct reset_control_ops berlin_reset_ops = {
static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
const struct of_phandle_args *reset_spec)
{
- struct berlin_reset_priv *priv = to_berlin_reset_priv(rcdev);
unsigned offset, bit;
if (WARN_ON(reset_spec->args_count != rcdev->of_reset_n_cells))
@@ -67,9 +61,6 @@ static int berlin_reset_xlate(struct reset_controller_dev *rcdev,
offset = reset_spec->args[0];
bit = reset_spec->args[1];
- if (offset >= priv->size)
- return -EINVAL;
-
if (bit >= BERLIN_MAX_RESETS)
return -EINVAL;
@@ -120,63 +111,3 @@ MODULE_AUTHOR("Antoine Tenart <antoine.tenart@free-electrons.com>");
MODULE_AUTHOR("Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>");
MODULE_DESCRIPTION("Marvell Berlin reset driver");
MODULE_LICENSE("GPL");
-
-static int __berlin_reset_init(struct device_node *np)
-{
- struct berlin_reset_priv *priv;
- struct resource res;
- resource_size_t size;
- int ret;
-
- priv = kzalloc(sizeof(*priv), GFP_KERNEL);
- if (!priv)
- return -ENOMEM;
-
- ret = of_address_to_resource(np, 0, &res);
- if (ret)
- goto err;
-
- size = resource_size(&res);
- priv->base = ioremap(res.start, size);
- if (!priv->base) {
- ret = -ENOMEM;
- goto err;
- }
- priv->size = size;
-
- priv->rcdev.owner = THIS_MODULE;
- priv->rcdev.ops = &berlin_reset_ops;
- priv->rcdev.of_node = np;
- priv->rcdev.of_reset_n_cells = 2;
- priv->rcdev.of_xlate = berlin_reset_xlate;
-
- reset_controller_register(&priv->rcdev);
-
- return 0;
-
-err:
- kfree(priv);
- return ret;
-}
-
-static const struct of_device_id berlin_reset_of_match[] __initconst = {
- { .compatible = "marvell,berlin2-chip-ctrl" },
- { .compatible = "marvell,berlin2cd-chip-ctrl" },
- { .compatible = "marvell,berlin2q-chip-ctrl" },
- { },
-};
-
-static int __init berlin_reset_init(void)
-{
- struct device_node *np;
- int ret;
-
- for_each_matching_node(np, berlin_reset_of_match) {
- ret = __berlin_reset_init(np);
- if (ret)
- return ret;
- }
-
- return 0;
-}
-arch_initcall(berlin_reset_init);
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (4 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 05/14] reset: berlin: drop arch_initcall initialization Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes Sebastian Hesselbarth
` (9 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
The Berlin pin controller nodes will be simple-mfd probed sub-nodes of
soc-controller and system-controller nodes. The register bank is managed
by syscon, which provides a regmap.
Prepare to get the regmap from syscon parent node instead of SoC stub
provided regmap.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
drivers/pinctrl/berlin/berlin-bg2.c | 8 ++++++++
drivers/pinctrl/berlin/berlin-bg2cd.c | 8 ++++++++
drivers/pinctrl/berlin/berlin-bg2q.c | 8 ++++++++
drivers/pinctrl/berlin/berlin.c | 7 ++++++-
4 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c
index b71a6fffef1b..6931ce4b1e12 100644
--- a/drivers/pinctrl/berlin/berlin-bg2.c
+++ b/drivers/pinctrl/berlin/berlin-bg2.c
@@ -225,6 +225,14 @@ static const struct of_device_id berlin2_pinctrl_match[] = {
.compatible = "marvell,berlin2-system-ctrl",
.data = &berlin2_sysmgr_pinctrl_data
},
+ {
+ .compatible = "marvell,berlin2-soc-pinctrl",
+ .data = &berlin2_soc_pinctrl_data
+ },
+ {
+ .compatible = "marvell,berlin2-system-pinctrl",
+ .data = &berlin2_sysmgr_pinctrl_data
+ },
{}
};
MODULE_DEVICE_TABLE(of, berlin2_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c
index 19ac5a22c947..18e1af0e6b8c 100644
--- a/drivers/pinctrl/berlin/berlin-bg2cd.c
+++ b/drivers/pinctrl/berlin/berlin-bg2cd.c
@@ -168,6 +168,14 @@ static const struct of_device_id berlin2cd_pinctrl_match[] = {
.compatible = "marvell,berlin2cd-system-ctrl",
.data = &berlin2cd_sysmgr_pinctrl_data
},
+ {
+ .compatible = "marvell,berlin2cd-soc-pinctrl",
+ .data = &berlin2cd_soc_pinctrl_data
+ },
+ {
+ .compatible = "marvell,berlin2cd-system-pinctrl",
+ .data = &berlin2cd_sysmgr_pinctrl_data
+ },
{}
};
MODULE_DEVICE_TABLE(of, berlin2cd_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c
index bd9662e57ad3..24e4cbb4d044 100644
--- a/drivers/pinctrl/berlin/berlin-bg2q.c
+++ b/drivers/pinctrl/berlin/berlin-bg2q.c
@@ -387,6 +387,14 @@ static const struct of_device_id berlin2q_pinctrl_match[] = {
.compatible = "marvell,berlin2q-system-ctrl",
.data = &berlin2q_sysmgr_pinctrl_data,
},
+ {
+ .compatible = "marvell,berlin2q-soc-pinctrl",
+ .data = &berlin2q_soc_pinctrl_data,
+ },
+ {
+ .compatible = "marvell,berlin2q-system-pinctrl",
+ .data = &berlin2q_sysmgr_pinctrl_data,
+ },
{}
};
MODULE_DEVICE_TABLE(of, berlin2q_pinctrl_match);
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 7f0b0f93242b..28551123d04f 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -11,6 +11,7 @@
*/
#include <linux/io.h>
+#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
@@ -295,13 +296,17 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
const struct berlin_pinctrl_desc *desc)
{
struct device *dev = &pdev->dev;
+ struct device_node *parent_np = of_get_parent(dev->of_node);
struct berlin_pinctrl *pctrl;
struct regmap *regmap;
int ret;
regmap = dev_get_regmap(&pdev->dev, NULL);
if (!regmap)
- return -ENODEV;
+ regmap = syscon_node_to_regmap(parent_np);
+ of_node_put(parent_np);
+ if (IS_ERR(regmap))
+ return PTR_ERR(regmap);
pctrl = devm_kzalloc(dev, sizeof(*pctrl), GFP_KERNEL);
if (!pctrl)
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (5 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 06/14] pinctrl: berlin: prepare to use regmap provided by syscon Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap Sebastian Hesselbarth
` (8 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
Now with proper support for simple-mfd probed pinctrl driver, move
to the new soc-pinctrl and system-pinctrl nodes.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/boot/dts/berlin2.dtsi | 38 ++++++++++++++++------------
arch/arm/boot/dts/berlin2cd.dtsi | 14 ++++++++---
arch/arm/boot/dts/berlin2q.dtsi | 53 +++++++++++++++++++++++-----------------
3 files changed, 63 insertions(+), 42 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 1e92511f8582..94d9182e4dfe 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -357,9 +357,13 @@
clocks = <&refclk>;
clock-names = "refclk";
- emmc_pmux: emmc-pmux {
- groups = "G26";
- function = "emmc";
+ soc_pinctrl: pin-controller {
+ compatible = "marvell,berlin2-soc-pinctrl";
+
+ emmc_pmux: emmc-pmux {
+ groups = "G26";
+ function = "emmc";
+ };
};
chip_rst: reset {
@@ -449,19 +453,21 @@
compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
- uart0_pmux: uart0-pmux {
- groups = "GSM4";
- function = "uart0";
- };
-
- uart1_pmux: uart1-pmux {
- groups = "GSM5";
- function = "uart1";
- };
-
- uart2_pmux: uart2-pmux {
- groups = "GSM3";
- function = "uart2";
+ sys_pinctrl: pin-controller {
+ compatible = "marvell,berlin2-system-pinctrl";
+ uart0_pmux: uart0-pmux {
+ groups = "GSM4";
+ function = "uart0";
+ };
+
+ uart1_pmux: uart1-pmux {
+ groups = "GSM5";
+ function = "uart1";
+ };
+ uart2_pmux: uart2-pmux {
+ groups = "GSM3";
+ function = "uart2";
+ };
};
};
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 5f8bfcdedceb..7544fea43e3a 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -301,9 +301,13 @@
clocks = <&refclk>;
clock-names = "refclk";
- uart0_pmux: uart0-pmux {
- groups = "G6";
- function = "uart0";
+ soc_pinctrl: pin-controller {
+ compatible = "marvell,berlin2cd-soc-pinctrl";
+
+ uart0_pmux: uart0-pmux {
+ groups = "G6";
+ function = "uart0";
+ };
};
chip_rst: reset {
@@ -395,6 +399,10 @@
sysctrl: system-controller at d000 {
compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
+
+ sys_pinctrl: pin-controller {
+ compatible = "marvell,berlin2cd-system-pinctrl";
+ };
};
sic: interrupt-controller at e000 {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index a27d03a2b5fa..8715d11c8f76 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -366,16 +366,19 @@
clocks = <&refclk>;
clock-names = "refclk";
- twsi0_pmux: twsi0-pmux {
- groups = "G6";
- function = "twsi0";
- };
+ soc_pinctrl: pin-controller {
+ compatible = "marvell,berlin2q-soc-pinctrl";
- twsi1_pmux: twsi1-pmux {
- groups = "G7";
- function = "twsi1";
- };
+ twsi0_pmux: twsi0-pmux {
+ groups = "G6";
+ function = "twsi0";
+ };
+ twsi1_pmux: twsi1-pmux {
+ groups = "G7";
+ function = "twsi1";
+ };
+ };
chip_rst: reset {
compatible = "marvell,berlin2-reset";
#reset-cells = <2>;
@@ -533,24 +536,28 @@
compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
reg = <0xd000 0x100>;
- uart0_pmux: uart0-pmux {
- groups = "GSM12";
- function = "uart0";
- };
+ sys_pinctrl: pin-controller {
+ compatible = "marvell,berlin2q-system-pinctrl";
- uart1_pmux: uart1-pmux {
- groups = "GSM14";
- function = "uart1";
- };
+ uart0_pmux: uart0-pmux {
+ groups = "GSM12";
+ function = "uart0";
+ };
- twsi2_pmux: twsi2-pmux {
- groups = "GSM13";
- function = "twsi2";
- };
+ uart1_pmux: uart1-pmux {
+ groups = "GSM14";
+ function = "uart1";
+ };
+
+ twsi2_pmux: twsi2-pmux {
+ groups = "GSM13";
+ function = "twsi2";
+ };
- twsi3_pmux: twsi3-pmux {
- groups = "GSM14";
- function = "twsi3";
+ twsi3_pmux: twsi3-pmux {
+ groups = "GSM14";
+ function = "twsi3";
+ };
};
};
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (6 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 07/14] ARM: berlin: move pinctrl to simple-mfd nodes Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 09/14] clk: berlin: prepare simple-mfd conversion Sebastian Hesselbarth
` (7 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
With convertsion to simple-mfd sub-nodes, drop the regmap registration
by SoC stubs.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Linus Walleij <linus.walleij@linaro.org>
---
drivers/pinctrl/berlin/berlin-bg2.c | 30 ------------------------------
drivers/pinctrl/berlin/berlin-bg2cd.c | 30 ------------------------------
drivers/pinctrl/berlin/berlin-bg2q.c | 30 ------------------------------
drivers/pinctrl/berlin/berlin.c | 4 +---
4 files changed, 1 insertion(+), 93 deletions(-)
diff --git a/drivers/pinctrl/berlin/berlin-bg2.c b/drivers/pinctrl/berlin/berlin-bg2.c
index 6931ce4b1e12..3769eaedf519 100644
--- a/drivers/pinctrl/berlin/berlin-bg2.c
+++ b/drivers/pinctrl/berlin/berlin-bg2.c
@@ -218,14 +218,6 @@ static const struct berlin_pinctrl_desc berlin2_sysmgr_pinctrl_data = {
static const struct of_device_id berlin2_pinctrl_match[] = {
{
- .compatible = "marvell,berlin2-chip-ctrl",
- .data = &berlin2_soc_pinctrl_data
- },
- {
- .compatible = "marvell,berlin2-system-ctrl",
- .data = &berlin2_sysmgr_pinctrl_data
- },
- {
.compatible = "marvell,berlin2-soc-pinctrl",
.data = &berlin2_soc_pinctrl_data
},
@@ -241,28 +233,6 @@ static int berlin2_pinctrl_probe(struct platform_device *pdev)
{
const struct of_device_id *match =
of_match_device(berlin2_pinctrl_match, &pdev->dev);
- struct regmap_config *rmconfig;
- struct regmap *regmap;
- struct resource *res;
- void __iomem *base;
-
- rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
- if (!rmconfig)
- return -ENOMEM;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- base = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(base))
- return PTR_ERR(base);
-
- rmconfig->reg_bits = 32,
- rmconfig->val_bits = 32,
- rmconfig->reg_stride = 4,
- rmconfig->max_register = resource_size(res);
-
- regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
- if (IS_ERR(regmap))
- return PTR_ERR(regmap);
return berlin_pinctrl_probe(pdev, match->data);
}
diff --git a/drivers/pinctrl/berlin/berlin-bg2cd.c b/drivers/pinctrl/berlin/berlin-bg2cd.c
index 18e1af0e6b8c..9e11f191d643 100644
--- a/drivers/pinctrl/berlin/berlin-bg2cd.c
+++ b/drivers/pinctrl/berlin/berlin-bg2cd.c
@@ -161,14 +161,6 @@ static const struct berlin_pinctrl_desc berlin2cd_sysmgr_pinctrl_data = {
static const struct of_device_id berlin2cd_pinctrl_match[] = {
{
- .compatible = "marvell,berlin2cd-chip-ctrl",
- .data = &berlin2cd_soc_pinctrl_data
- },
- {
- .compatible = "marvell,berlin2cd-system-ctrl",
- .data = &berlin2cd_sysmgr_pinctrl_data
- },
- {
.compatible = "marvell,berlin2cd-soc-pinctrl",
.data = &berlin2cd_soc_pinctrl_data
},
@@ -184,28 +176,6 @@ static int berlin2cd_pinctrl_probe(struct platform_device *pdev)
{
const struct of_device_id *match =
of_match_device(berlin2cd_pinctrl_match, &pdev->dev);
- struct regmap_config *rmconfig;
- struct regmap *regmap;
- struct resource *res;
- void __iomem *base;
-
- rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
- if (!rmconfig)
- return -ENOMEM;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- base = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(base))
- return PTR_ERR(base);
-
- rmconfig->reg_bits = 32,
- rmconfig->val_bits = 32,
- rmconfig->reg_stride = 4,
- rmconfig->max_register = resource_size(res);
-
- regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
- if (IS_ERR(regmap))
- return PTR_ERR(regmap);
return berlin_pinctrl_probe(pdev, match->data);
}
diff --git a/drivers/pinctrl/berlin/berlin-bg2q.c b/drivers/pinctrl/berlin/berlin-bg2q.c
index 24e4cbb4d044..ba7a8a8ad010 100644
--- a/drivers/pinctrl/berlin/berlin-bg2q.c
+++ b/drivers/pinctrl/berlin/berlin-bg2q.c
@@ -380,14 +380,6 @@ static const struct berlin_pinctrl_desc berlin2q_sysmgr_pinctrl_data = {
static const struct of_device_id berlin2q_pinctrl_match[] = {
{
- .compatible = "marvell,berlin2q-chip-ctrl",
- .data = &berlin2q_soc_pinctrl_data,
- },
- {
- .compatible = "marvell,berlin2q-system-ctrl",
- .data = &berlin2q_sysmgr_pinctrl_data,
- },
- {
.compatible = "marvell,berlin2q-soc-pinctrl",
.data = &berlin2q_soc_pinctrl_data,
},
@@ -403,28 +395,6 @@ static int berlin2q_pinctrl_probe(struct platform_device *pdev)
{
const struct of_device_id *match =
of_match_device(berlin2q_pinctrl_match, &pdev->dev);
- struct regmap_config *rmconfig;
- struct regmap *regmap;
- struct resource *res;
- void __iomem *base;
-
- rmconfig = devm_kzalloc(&pdev->dev, sizeof(*rmconfig), GFP_KERNEL);
- if (!rmconfig)
- return -ENOMEM;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- base = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(base))
- return PTR_ERR(base);
-
- rmconfig->reg_bits = 32,
- rmconfig->val_bits = 32,
- rmconfig->reg_stride = 4,
- rmconfig->max_register = resource_size(res);
-
- regmap = devm_regmap_init_mmio(&pdev->dev, base, rmconfig);
- if (IS_ERR(regmap))
- return PTR_ERR(regmap);
return berlin_pinctrl_probe(pdev, match->data);
}
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 28551123d04f..65b0e211b89e 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -301,9 +301,7 @@ int berlin_pinctrl_probe(struct platform_device *pdev,
struct regmap *regmap;
int ret;
- regmap = dev_get_regmap(&pdev->dev, NULL);
- if (!regmap)
- regmap = syscon_node_to_regmap(parent_np);
+ regmap = syscon_node_to_regmap(parent_np);
of_node_put(parent_np);
if (IS_ERR(regmap))
return PTR_ERR(regmap);
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 09/14] clk: berlin: prepare simple-mfd conversion
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (7 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 08/14] pinctrl: berlin: drop SoC stub provided regmap Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
` (6 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
Prepare conversion of berlin clk drivers to a simple-mfd sub-node by
checking for parent node compatible. If parent node is "syscon" compatible
use it for of_iomap instead of the own node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
drivers/clk/berlin/bg2.c | 6 ++++++
drivers/clk/berlin/bg2q.c | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index 515fb133495c..d8e57097518b 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -502,11 +502,15 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = {
static void __init berlin2_clock_setup(struct device_node *np)
{
+ struct device_node *parent_np = of_get_parent(np);
const char *parent_names[9];
struct clk *clk;
u8 avpll_flags = 0;
int n;
+ if (of_device_is_compatible(parent_np, "syscon"))
+ np = parent_np;
+
gbase = of_iomap(np, 0);
if (!gbase)
return;
@@ -689,3 +693,5 @@ CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
berlin2_clock_setup);
CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
berlin2_clock_setup);
+CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
+ berlin2_clock_setup);
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index 440ef81ab15c..638a649ebed7 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -290,10 +290,14 @@ static const struct berlin2_gate_data bg2q_gates[] __initconst = {
static void __init berlin2q_clock_setup(struct device_node *np)
{
+ struct device_node *parent_np = of_get_parent(np);
const char *parent_names[9];
struct clk *clk;
int n;
+ if (of_device_is_compatible(parent_np, "syscon"))
+ np = parent_np;
+
gbase = of_iomap(np, 0);
if (!gbase) {
pr_err("%s: Unable to map global base\n", np->full_name);
@@ -386,3 +390,5 @@ bg2q_fail:
}
CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
berlin2q_clock_setup);
+CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
+ berlin2q_clock_setup);
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 10/14] ARM: berlin: move BG2 clock node
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (8 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 09/14] clk: berlin: prepare simple-mfd conversion Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-06-04 18:56 ` Stephen Boyd
2015-05-16 0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
` (5 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/boot/dts/berlin2.dtsi | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index 94d9182e4dfe..b2ffaf42c815 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -56,7 +56,7 @@
sdhci0: sdhci at ab0000 {
compatible = "mrvl,pxav3-mmc";
reg = <0xab0000 0x200>;
- clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+ clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
clock-names = "io", "core";
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
@@ -65,7 +65,7 @@
sdhci1: sdhci at ab0800 {
compatible = "mrvl,pxav3-mmc";
reg = <0xab0800 0x200>;
- clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
+ clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
clock-names = "io", "core";
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
@@ -75,7 +75,7 @@
compatible = "mrvl,pxav3-mmc";
reg = <0xab1000 0x200>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
+ clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
clock-names = "io", "core";
pinctrl-0 = <&emmc_pmux>;
pinctrl-names = "default";
@@ -105,13 +105,13 @@
compatible = "arm,cortex-a9-twd-timer";
reg = <0xad0600 0x20>;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
- clocks = <&chip CLKID_TWD>;
+ clocks = <&chip_clk CLKID_TWD>;
};
eth1: ethernet at b90000 {
compatible = "marvell,pxa168-eth";
reg = <0xb90000 0x10000>;
- clocks = <&chip CLKID_GETH1>;
+ clocks = <&chip_clk CLKID_GETH1>;
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
/* set by bootloader */
local-mac-address = [00 00 00 00 00 00];
@@ -134,7 +134,7 @@
eth0: ethernet at e50000 {
compatible = "marvell,pxa168-eth";
reg = <0xe50000 0x10000>;
- clocks = <&chip CLKID_GETH0>;
+ clocks = <&chip_clk CLKID_GETH0>;
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
/* set by bootloader */
local-mac-address = [00 00 00 00 00 00];
@@ -233,7 +233,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c00 0x14>;
interrupts = <8>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "okay";
};
@@ -242,7 +242,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c14 0x14>;
interrupts = <9>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "okay";
};
@@ -251,7 +251,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c28 0x14>;
interrupts = <10>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -260,7 +260,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c3c 0x14>;
interrupts = <11>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -269,7 +269,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c50 0x14>;
interrupts = <12>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -278,7 +278,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c64 0x14>;
interrupts = <13>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -287,7 +287,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c78 0x14>;
interrupts = <14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -296,7 +296,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c8c 0x14>;
interrupts = <15>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -315,7 +315,7 @@
compatible = "marvell,berlin2-ahci", "generic-ahci";
reg = <0xe90000 0x1000>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_SATA>;
+ clocks = <&chip_clk CLKID_SATA>;
#address-cells = <1>;
#size-cells = <0>;
@@ -335,7 +335,7 @@
sata_phy: phy at e900a0 {
compatible = "marvell,berlin2-sata-phy";
reg = <0xe900a0 0x200>;
- clocks = <&chip CLKID_SATA>;
+ clocks = <&chip_clk CLKID_SATA>;
#address-cells = <1>;
#size-cells = <0>;
#phy-cells = <1>;
@@ -352,10 +352,14 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
- #clock-cells = <1>;
reg = <0xea0000 0x400>;
- clocks = <&refclk>;
- clock-names = "refclk";
+
+ chip_clk: clock {
+ compatible = "marvell,berlin2-clk";
+ #clock-cells = <1>;
+ clocks = <&refclk>;
+ clock-names = "refclk";
+ };
soc_pinctrl: pin-controller {
compatible = "marvell,berlin2-soc-pinctrl";
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 10/14] ARM: berlin: move BG2 clock node
2015-05-16 0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
@ 2015-06-04 18:56 ` Stephen Boyd
0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
To: linux-arm-kernel
On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
>
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
>
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 11/14] ARM: berlin: move BG2CD clock node
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (9 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 10/14] ARM: berlin: move BG2 clock node Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-06-04 18:56 ` Stephen Boyd
2015-05-16 0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
` (4 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/boot/dts/berlin2cd.dtsi | 38 +++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 7544fea43e3a..6ff0194cf77d 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -53,7 +53,7 @@
sdhci0: sdhci at ab0000 {
compatible = "mrvl,pxav3-mmc";
reg = <0xab0000 0x200>;
- clocks = <&chip CLKID_SDIO0XIN>, <&chip CLKID_SDIO0>;
+ clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
clock-names = "io", "core";
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
@@ -77,7 +77,7 @@
compatible = "arm,cortex-a9-twd-timer";
reg = <0xad0600 0x20>;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
- clocks = <&chip CLKID_TWD>;
+ clocks = <&chip_clk CLKID_TWD>;
};
usb_phy0: usb-phy at b74000 {
@@ -99,7 +99,7 @@
eth1: ethernet at b90000 {
compatible = "marvell,pxa168-eth";
reg = <0xb90000 0x10000>;
- clocks = <&chip CLKID_GETH1>;
+ clocks = <&chip_clk CLKID_GETH1>;
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
/* set by bootloader */
local-mac-address = [00 00 00 00 00 00];
@@ -117,7 +117,7 @@
eth0: ethernet at e50000 {
compatible = "marvell,pxa168-eth";
reg = <0xe50000 0x10000>;
- clocks = <&chip CLKID_GETH0>;
+ clocks = <&chip_clk CLKID_GETH0>;
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
/* set by bootloader */
local-mac-address = [00 00 00 00 00 00];
@@ -216,7 +216,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c00 0x14>;
interrupts = <8>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "okay";
};
@@ -225,7 +225,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c14 0x14>;
interrupts = <9>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "okay";
};
@@ -234,7 +234,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c28 0x14>;
interrupts = <10>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -243,7 +243,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c3c 0x14>;
interrupts = <11>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -252,7 +252,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c50 0x14>;
interrupts = <12>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -261,7 +261,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c64 0x14>;
interrupts = <13>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -270,7 +270,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c78 0x14>;
interrupts = <14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -279,7 +279,7 @@
compatible = "snps,dw-apb-timer";
reg = <0x2c8c 0x14>;
interrupts = <15>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -296,10 +296,14 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
- #clock-cells = <1>;
reg = <0xea0000 0x400>;
- clocks = <&refclk>;
- clock-names = "refclk";
+
+ chip_clk: clock {
+ compatible = "marvell,berlin2-clk";
+ #clock-cells = <1>;
+ clocks = <&refclk>;
+ clock-names = "refclk";
+ };
soc_pinctrl: pin-controller {
compatible = "marvell,berlin2cd-soc-pinctrl";
@@ -320,7 +324,7 @@
compatible = "chipidea,usb2";
reg = <0xed0000 0x200>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_USB0>;
+ clocks = <&chip_clk CLKID_USB0>;
phys = <&usb_phy0>;
phy-names = "usb-phy";
status = "disabled";
@@ -330,7 +334,7 @@
compatible = "chipidea,usb2";
reg = <0xee0000 0x200>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_USB1>;
+ clocks = <&chip_clk CLKID_USB1>;
phys = <&usb_phy1>;
phy-names = "usb-phy";
status = "disabled";
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 11/14] ARM: berlin: move BG2CD clock node
2015-05-16 0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
@ 2015-06-04 18:56 ` Stephen Boyd
0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
To: linux-arm-kernel
On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
>
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
>
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 12/14] ARM: berlin: move BG2Q clock node
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (10 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 11/14] ARM: berlin: move BG2CD " Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-06-04 18:56 ` Stephen Boyd
2015-05-16 0:23 ` [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property Sebastian Hesselbarth
` (3 subsequent siblings)
15 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
With the introduction of the Berlin simple-mfd controller driver, all
drivers previously sharing the chip and system controller nodes now
have their own sub-node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
arch/arm/boot/dts/berlin2q.dtsi | 50 ++++++++++++++++++++++-------------------
1 file changed, 27 insertions(+), 23 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 8715d11c8f76..4a21ba386230 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -74,7 +74,7 @@
sdhci0: sdhci at ab0000 {
compatible = "mrvl,pxav3-mmc";
reg = <0xab0000 0x200>;
- clocks = <&chip CLKID_SDIO1XIN>;
+ clocks = <&chip_clk CLKID_SDIO1XIN>;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
@@ -82,7 +82,7 @@
sdhci1: sdhci at ab0800 {
compatible = "mrvl,pxav3-mmc";
reg = <0xab0800 0x200>;
- clocks = <&chip CLKID_SDIO1XIN>;
+ clocks = <&chip_clk CLKID_SDIO1XIN>;
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
@@ -91,7 +91,7 @@
compatible = "mrvl,pxav3-mmc";
reg = <0xab1000 0x200>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
+ clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
clock-names = "io", "core";
status = "disabled";
};
@@ -112,7 +112,7 @@
local-timer at ad0600 {
compatible = "arm,cortex-a9-twd-timer";
reg = <0xad0600 0x20>;
- clocks = <&chip CLKID_TWD>;
+ clocks = <&chip_clk CLKID_TWD>;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
@@ -135,7 +135,7 @@
compatible = "chipidea,usb2";
reg = <0xa30000 0x10000>;
interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_USB2>;
+ clocks = <&chip_clk CLKID_USB2>;
phys = <&usb_phy2>;
phy-names = "usb-phy";
status = "disabled";
@@ -160,7 +160,7 @@
eth0: ethernet at b90000 {
compatible = "marvell,pxa168-eth";
reg = <0xb90000 0x10000>;
- clocks = <&chip CLKID_GETH0>;
+ clocks = <&chip_clk CLKID_GETH0>;
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
/* set by bootloader */
local-mac-address = [00 00 00 00 00 00];
@@ -267,7 +267,7 @@
reg = <0x1400 0x100>;
interrupt-parent = <&aic>;
interrupts = <4>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
pinctrl-0 = <&twsi0_pmux>;
pinctrl-names = "default";
status = "disabled";
@@ -280,7 +280,7 @@
reg = <0x1800 0x100>;
interrupt-parent = <&aic>;
interrupts = <5>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
pinctrl-0 = <&twsi1_pmux>;
pinctrl-names = "default";
status = "disabled";
@@ -289,7 +289,7 @@
timer0: timer at 2c00 {
compatible = "snps,dw-apb-timer";
reg = <0x2c00 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
interrupts = <8>;
};
@@ -297,14 +297,14 @@
timer1: timer at 2c14 {
compatible = "snps,dw-apb-timer";
reg = <0x2c14 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
};
timer2: timer at 2c28 {
compatible = "snps,dw-apb-timer";
reg = <0x2c28 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -312,7 +312,7 @@
timer3: timer at 2c3c {
compatible = "snps,dw-apb-timer";
reg = <0x2c3c 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -320,7 +320,7 @@
timer4: timer at 2c50 {
compatible = "snps,dw-apb-timer";
reg = <0x2c50 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -328,7 +328,7 @@
timer5: timer at 2c64 {
compatible = "snps,dw-apb-timer";
reg = <0x2c64 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -336,7 +336,7 @@
timer6: timer at 2c78 {
compatible = "snps,dw-apb-timer";
reg = <0x2c78 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -344,7 +344,7 @@
timer7: timer at 2c8c {
compatible = "snps,dw-apb-timer";
reg = <0x2c8c 0x14>;
- clocks = <&chip CLKID_CFG>;
+ clocks = <&chip_clk CLKID_CFG>;
clock-names = "timer";
status = "disabled";
};
@@ -361,10 +361,14 @@
chip: chip-control at ea0000 {
compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
- #clock-cells = <1>;
reg = <0xea0000 0x400>, <0xdd0170 0x10>;
- clocks = <&refclk>;
- clock-names = "refclk";
+
+ chip_clk: clock {
+ compatible = "marvell,berlin2q-clk";
+ #clock-cells = <1>;
+ clocks = <&refclk>;
+ clock-names = "refclk";
+ };
soc_pinctrl: pin-controller {
compatible = "marvell,berlin2q-soc-pinctrl";
@@ -389,7 +393,7 @@
compatible = "marvell,berlin2q-ahci", "generic-ahci";
reg = <0xe90000 0x1000>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_SATA>;
+ clocks = <&chip_clk CLKID_SATA>;
#address-cells = <1>;
#size-cells = <0>;
@@ -409,7 +413,7 @@
sata_phy: phy at e900a0 {
compatible = "marvell,berlin2q-sata-phy";
reg = <0xe900a0 0x200>;
- clocks = <&chip CLKID_SATA>;
+ clocks = <&chip_clk CLKID_SATA>;
#address-cells = <1>;
#size-cells = <0>;
#phy-cells = <1>;
@@ -428,7 +432,7 @@
compatible = "chipidea,usb2";
reg = <0xed0000 0x10000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_USB0>;
+ clocks = <&chip_clk CLKID_USB0>;
phys = <&usb_phy0>;
phy-names = "usb-phy";
status = "disabled";
@@ -438,7 +442,7 @@
compatible = "chipidea,usb2";
reg = <0xee0000 0x10000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&chip CLKID_USB1>;
+ clocks = <&chip_clk CLKID_USB1>;
phys = <&usb_phy1>;
phy-names = "usb-phy";
status = "disabled";
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 12/14] ARM: berlin: move BG2Q clock node
2015-05-16 0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
@ 2015-06-04 18:56 ` Stephen Boyd
0 siblings, 0 replies; 22+ messages in thread
From: Stephen Boyd @ 2015-06-04 18:56 UTC (permalink / raw)
To: linux-arm-kernel
On 05/16, Sebastian Hesselbarth wrote:
> From: Antoine Tenart <antoine.tenart@free-electrons.com>
>
> With the introduction of the Berlin simple-mfd controller driver, all
> drivers previously sharing the chip and system controller nodes now
> have their own sub-node.
>
> Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
> ---
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (11 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 12/14] ARM: berlin: move BG2Q " Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 0:23 ` [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles Sebastian Hesselbarth
` (2 subsequent siblings)
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
The Berlin clock driver was sharing a DT node with the pin controller
and the reset driver. All these devices are now sub-nodes of the chip
controller. This patch rework the Berlin clock driver to allow moving
the Berlin clock DT bindings into their own sub-node of the chip
controller node.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Cc: Stephen Boyd <sboyd@codeaurora.org>
---
drivers/clk/berlin/bg2.c | 9 +--------
drivers/clk/berlin/bg2q.c | 9 ++-------
2 files changed, 3 insertions(+), 15 deletions(-)
diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index d8e57097518b..73153fc45ee9 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -508,10 +508,7 @@ static void __init berlin2_clock_setup(struct device_node *np)
u8 avpll_flags = 0;
int n;
- if (of_device_is_compatible(parent_np, "syscon"))
- np = parent_np;
-
- gbase = of_iomap(np, 0);
+ gbase = of_iomap(parent_np, 0);
if (!gbase)
return;
@@ -689,9 +686,5 @@ static void __init berlin2_clock_setup(struct device_node *np)
bg2_fail:
iounmap(gbase);
}
-CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
- berlin2_clock_setup);
-CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
- berlin2_clock_setup);
CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
berlin2_clock_setup);
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index 638a649ebed7..221f40c2b850 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -295,17 +295,14 @@ static void __init berlin2q_clock_setup(struct device_node *np)
struct clk *clk;
int n;
- if (of_device_is_compatible(parent_np, "syscon"))
- np = parent_np;
-
- gbase = of_iomap(np, 0);
+ gbase = of_iomap(parent_np, 0);
if (!gbase) {
pr_err("%s: Unable to map global base\n", np->full_name);
return;
}
/* BG2Q CPU PLL is not part of global registers */
- cpupll_base = of_iomap(np, 1);
+ cpupll_base = of_iomap(parent_np, 1);
if (!cpupll_base) {
pr_err("%s: Unable to map cpupll base\n", np->full_name);
iounmap(gbase);
@@ -388,7 +385,5 @@ bg2q_fail:
iounmap(cpupll_base);
iounmap(gbase);
}
-CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
- berlin2q_clock_setup);
CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
berlin2q_clock_setup);
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (12 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 13/14] clk: berlin: drop direct of_iomap of nodes reg property Sebastian Hesselbarth
@ 2015-05-16 0:23 ` Sebastian Hesselbarth
2015-05-16 7:39 ` [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Arnd Bergmann
2015-05-20 15:25 ` Arnd Bergmann
15 siblings, 0 replies; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-16 0:23 UTC (permalink / raw)
To: linux-arm-kernel
From: Antoine Tenart <antoine.tenart@free-electrons.com>
Now that the rework to have one sub-node per device in the chip and
system controllers is done, their dedicated compatible can be removed.
Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
arch/arm/boot/dts/berlin2.dtsi | 4 ++--
arch/arm/boot/dts/berlin2cd.dtsi | 4 ++--
arch/arm/boot/dts/berlin2q.dtsi | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/berlin2.dtsi b/arch/arm/boot/dts/berlin2.dtsi
index b2ffaf42c815..4d2f52759b07 100644
--- a/arch/arm/boot/dts/berlin2.dtsi
+++ b/arch/arm/boot/dts/berlin2.dtsi
@@ -351,7 +351,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2-chip-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xea0000 0x400>;
chip_clk: clock {
@@ -454,7 +454,7 @@
};
sysctrl: system-controller at d000 {
- compatible = "marvell,berlin2-system-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xd000 0x100>;
sys_pinctrl: pin-controller {
diff --git a/arch/arm/boot/dts/berlin2cd.dtsi b/arch/arm/boot/dts/berlin2cd.dtsi
index 6ff0194cf77d..0a70d47663b2 100644
--- a/arch/arm/boot/dts/berlin2cd.dtsi
+++ b/arch/arm/boot/dts/berlin2cd.dtsi
@@ -295,7 +295,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2cd-chip-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xea0000 0x400>;
chip_clk: clock {
@@ -401,7 +401,7 @@
};
sysctrl: system-controller at d000 {
- compatible = "marvell,berlin2cd-system-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xd000 0x100>;
sys_pinctrl: pin-controller {
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 4a21ba386230..0c6c88a861cd 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -360,7 +360,7 @@
};
chip: chip-control at ea0000 {
- compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xea0000 0x400>, <0xdd0170 0x10>;
chip_clk: clock {
@@ -537,7 +537,7 @@
};
sysctrl: pin-controller at d000 {
- compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
+ compatible = "simple-mfd", "syscon";
reg = <0xd000 0x100>;
sys_pinctrl: pin-controller {
--
2.1.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (13 preceding siblings ...)
2015-05-16 0:23 ` [PATCH 14/14] ARM: berlin: remove useless chip and system ctrl compatibles Sebastian Hesselbarth
@ 2015-05-16 7:39 ` Arnd Bergmann
2015-05-20 15:25 ` Arnd Bergmann
15 siblings, 0 replies; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-16 7:39 UTC (permalink / raw)
To: linux-arm-kernel
On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
> This is a patch set reworking Antoine's patches to move Berlin's system and
> chip controller nodes to simple-mfd registered sub-nodes in a bisect compatible
> way.
>
> Compared to Antoine's patches, I basically first converted the drivers to
> deal with both single node and simple-mfd sub-node registration, then move the
> DT nodes over to simple-mfd, and finally drop the old way of registration.
>
> I decided to squash the BG2/BG2CD/BG2Q DT changes into a single patch where
> applicable instead of the clock node rework patches. I also left the Acked-by
> from Phillip Zabel (reset), Linus Walleij (pinctrl), and Stephen Boyd (clk)
> in place for the driver changes as the outcome is the same at the end.
>
> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> now happy with the dependency of the patches and none of the maintainers is
> against it, I'll prepare a PR next week.
>
> @Arnd: This is still based on v4.1-rc1 as I cannot see a stable branch for
> simple-mfd support. Anything specific you want me to remind you that this
> depends on simple-mfd?
>
You should be able to see a drivers/simple-mfd branch in arm-soc.git.
You can base on top of that.
I think it's fine to merge the entire series into our next/drivers branch,
which already has the simple-mfd bits, but you'll still need to rebase
on simple-mfd to make bisection work.
Thanks,
ARnd
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
2015-05-16 0:23 [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Sebastian Hesselbarth
` (14 preceding siblings ...)
2015-05-16 7:39 ` [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion Arnd Bergmann
@ 2015-05-20 15:25 ` Arnd Bergmann
2015-05-20 15:37 ` Sebastian Hesselbarth
15 siblings, 1 reply; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-20 15:25 UTC (permalink / raw)
To: linux-arm-kernel
On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
>
> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> now happy with the dependency of the patches and none of the maintainers is
> against it, I'll prepare a PR next week.
I haven't see the pull request yet, are you still working on it?
Arnd
^ permalink raw reply [flat|nested] 22+ messages in thread* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
2015-05-20 15:25 ` Arnd Bergmann
@ 2015-05-20 15:37 ` Sebastian Hesselbarth
2015-05-20 15:51 ` Arnd Bergmann
0 siblings, 1 reply; 22+ messages in thread
From: Sebastian Hesselbarth @ 2015-05-20 15:37 UTC (permalink / raw)
To: linux-arm-kernel
On 20.05.2015 17:25, Arnd Bergmann wrote:
> On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
>>
>> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
>> now happy with the dependency of the patches and none of the maintainers is
>> against it, I'll prepare a PR next week.
>
> I haven't see the pull request yet, are you still working on it?
I was hoping to find some time to actually test bisectability.
How much time do I have left for getting into v4.2 cycle?
Sebastian
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 00/14] ARM: berlin: bisect compatible simple-mfd conversion
2015-05-20 15:37 ` Sebastian Hesselbarth
@ 2015-05-20 15:51 ` Arnd Bergmann
0 siblings, 0 replies; 22+ messages in thread
From: Arnd Bergmann @ 2015-05-20 15:51 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday 20 May 2015 17:37:26 Sebastian Hesselbarth wrote:
> On 20.05.2015 17:25, Arnd Bergmann wrote:
> > On Saturday 16 May 2015 02:23:29 Sebastian Hesselbarth wrote:
> >>
> >> I am still planing to get this into v4.2 as soon as possible, so if Arnd is
> >> now happy with the dependency of the patches and none of the maintainers is
> >> against it, I'll prepare a PR next week.
> >
> > I haven't see the pull request yet, are you still working on it?
>
> I was hoping to find some time to actually test bisectability.
> How much time do I have left for getting into v4.2 cycle?
I've reviewed your patches for possible bisection problems now, and
they seem to all be good in this regard. I think it's best if you
send a pull request now. It's not urgent yet, but I'd rather have
more stuff merged earlier than later.
Arnd
^ permalink raw reply [flat|nested] 22+ messages in thread