linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/2] Add imx8m power domain driver
@ 2021-04-02 16:45 Adrien Grassein
  2021-04-02 16:45 ` [PATCH v1 1/2] dt-bindings: power: Add documentation for " Adrien Grassein
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 16:45 UTC (permalink / raw)
  Cc: robh+dt, shawnguo, s.hauer, kernel, festevam, linux-imx,
	lgirdwood, broonie, arnd, peng.fan, Anson.Huang, devicetree,
	linux-arm-kernel, linux-kernel, Adrien Grassein

Hi,

this patch et aims to add the support of the i.MX 8 Power Domain driver.
Some devices (like usbotg2) can't work without this patch as their
attached power domain are down.

The original drivr was taken from le imx kernel and aapted to fit with
the actual mainline (minor fixes).

Thanks,

Adrien Grassein (2):
  dt-bindings: power: Add documentation for imx8m power domain driver
  soc: imx: add Power Domain driver for i.MX8M(M|N|P)

 .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
 MAINTAINERS                                   |  10 +
 drivers/soc/imx/Kconfig                       |   7 +
 drivers/soc/imx/Makefile                      |   1 +
 drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
 include/dt-bindings/power/imx8mm-power.h      |  21 ++
 include/dt-bindings/power/imx8mn-power.h      |  15 ++
 include/dt-bindings/power/imx8mp-power.h      |  28 +++
 include/soc/imx/imx_sip.h                     |  12 +
 9 files changed, 416 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
 create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
 create mode 100644 include/dt-bindings/power/imx8mm-power.h
 create mode 100644 include/dt-bindings/power/imx8mn-power.h
 create mode 100644 include/dt-bindings/power/imx8mp-power.h
 create mode 100644 include/soc/imx/imx_sip.h

-- 
2.25.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v1 1/2] dt-bindings: power: Add documentation for imx8m power domain driver
  2021-04-02 16:45 [PATCH v1 0/2] Add imx8m power domain driver Adrien Grassein
@ 2021-04-02 16:45 ` Adrien Grassein
  2021-04-02 16:45 ` [PATCH v1 2/2] soc: imx: add Power Domain driver for i.MX8M(M|N|P) Adrien Grassein
  2021-04-02 17:42 ` [PATCH v1 0/2] Add imx8m power domain driver Abel Vesa
  2 siblings, 0 replies; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 16:45 UTC (permalink / raw)
  Cc: robh+dt, shawnguo, s.hauer, kernel, festevam, linux-imx,
	lgirdwood, broonie, arnd, peng.fan, Anson.Huang, devicetree,
	linux-arm-kernel, linux-kernel, Adrien Grassein

Add documentation for the imx8m(m|n|p) power domain driver.

Signed-off-by: Adrien Grassein <adrien.grassein@gmail.com>
---
 .../bindings/power/fsl,imx-power-domain.yaml  | 89 +++++++++++++++++++
 MAINTAINERS                                   |  8 ++
 include/dt-bindings/power/imx8mm-power.h      | 21 +++++
 include/dt-bindings/power/imx8mn-power.h      | 15 ++++
 include/dt-bindings/power/imx8mp-power.h      | 28 ++++++
 5 files changed, 161 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
 create mode 100644 include/dt-bindings/power/imx8mm-power.h
 create mode 100644 include/dt-bindings/power/imx8mn-power.h
 create mode 100644 include/dt-bindings/power/imx8mp-power.h

diff --git a/Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml b/Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
new file mode 100644
index 000000000000..8b4811aa80eb
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/fsl,imx-power-domain.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX 8mm, 8mn and 8mp Power Domain
+
+maintainers:
+  - Adrien Grassein <adrien.grassein@gmail.com>
+
+description: |+
+  i.MX processors include support for multiple power domains which are used
+  to gate power to one or more peripherals on the processor.
+
+allOf:
+  - $ref: power-domain.yaml#
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx8mm-pm-domain
+      - fsl,imx8mn-pm-domain
+      - fsl,imx8mp-pm-domain
+
+  domain-name:
+    $ref: /schemas/types.yaml#/definitions/string
+    description: |
+      Human readable string with domain name. Will be visible in userspace
+      to let user to distinguish between multiple domains in SoC.
+
+  domain-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Power domain index. Valid values are defined in
+      include/dt-bindings/power/imx8mm-power.h for i.MX 8mm
+      include/dt-bindings/power/imx8mn-power.h for i.MX 8mn
+      include/dt-bindings/power/imx8mp-power.h for i.MX 8mp
+
+    maxItems: 1
+
+  clocks:
+    description: |
+      A number of phandles to clocks that need to be enabled during domain
+      power-up sequencing to ensure reset propagation into devices located
+      inside this power domain.
+    minItems: 1
+    maxItems: 6
+
+  power-supply:
+    description:
+      A phandle to a supply to enable when powering on the domain.
+
+  fsl,active-wakeup:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Instructs genpd to keep the PM domain powered on.
+
+  fsl,rpm-always-on:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Instructs genpd to always keep the PM domain powered on except
+      for system suspend.
+
+  "#power-domain-cells":
+    const: 0
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - compatible
+  - domain-name
+  - domain-index
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/power/imx8mm-power.h>
+    #include <dt-bindings/clock/imx8mm-clock.h>
+
+    hsiomix_pd: power-domain-hsio {
+        compatible = "fsl,imx8mm-pm-domain";
+        domain-index = <IMX8MM_POWER_DOMAIN_HSIOMIX>;
+        #power-domain-cells = <0>;
+        domain-name = "hsiomix";
+        clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 38d823d72e52..97536afca0e1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13010,6 +13010,14 @@ L:	linux-imx@nxp.com
 S:	Maintained
 F:	drivers/clk/imx/
 
+NXP i.MX 8M(M|N|P) POWER DOMAIN DRIVER
+M:	Adrien Grassein <adrien.grassein@gmail.com>
+S:	Maintained
+F:	Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
+F:	include/dt-bindings/power/imx8mm-power.h
+F:	include/dt-bindings/power/imx8mn-power.h
+F:	include/dt-bindings/power/imx8mp-power.h
+
 NXP i.MX 8MQ DCSS DRIVER
 M:	Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
 R:	Lucas Stach <l.stach@pengutronix.de>
diff --git a/include/dt-bindings/power/imx8mm-power.h b/include/dt-bindings/power/imx8mm-power.h
new file mode 100644
index 000000000000..bec25fd32394
--- /dev/null
+++ b/include/dt-bindings/power/imx8mm-power.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ *  Copyright (C) 2021 Adrien Grassein <adrien.grassein@gmail.com>
+ */
+
+#ifndef __DT_BINDINGS_IMX8MM_POWER_H__
+#define __DT_BINDINGS_IMX8MM_POWER_H__
+
+#define IMX8MM_POWER_DOMAIN_HSIOMIX	0
+#define IMX8MM_POWER_DOMAIN_PCIE1	1
+#define IMX8MM_POWER_DOMAIN_USB_OTG1	2
+#define IMX8MM_POWER_DOMAIN_USB_OTG2	3
+#define IMX8MM_POWER_DOMAIN_GPU		4
+#define IMX8MM_POWER_DOMAIN_VPU		5
+#define IMX8MM_POWER_DOMAIN_VPU_G1	6
+#define IMX8MM_POWER_DOMAIN_VPU_G2	7
+#define IMX8MM_POWER_DOMAIN_VPU_H1	8
+#define IMX8MM_POWER_DOMAIN_DISPLAY	9
+#define IMX8MM_POWER_DOMAIN_MIPI	10
+
+#endif
diff --git a/include/dt-bindings/power/imx8mn-power.h b/include/dt-bindings/power/imx8mn-power.h
new file mode 100644
index 000000000000..dfa0711171cd
--- /dev/null
+++ b/include/dt-bindings/power/imx8mn-power.h
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ *  Copyright (C) 2021 Adrien Grassein <adrien.grassein@gmail.com>
+ */
+
+#ifndef __DT_BINDINGS_IMX8MN_POWER_H__
+#define __DT_BINDINGS_IMX8MN_POWER_H__
+
+#define IMX8MN_POWER_DOMAIN_HSIOMIX	0
+#define IMX8MN_POWER_DOMAIN_USB_OTG1	2
+#define IMX8MN_POWER_DOMAIN_GPU		4
+#define IMX8MN_POWER_DOMAIN_DISPLAY	9
+#define IMX8MN_POWER_DOMAIN_MIPI	10
+
+#endif
diff --git a/include/dt-bindings/power/imx8mp-power.h b/include/dt-bindings/power/imx8mp-power.h
new file mode 100644
index 000000000000..660e6b7d6c69
--- /dev/null
+++ b/include/dt-bindings/power/imx8mp-power.h
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
+/*
+ *  Copyright (C) 2021 Adrien Grassein <adrien.grassein@gmail.com>
+ */
+
+#ifndef __DT_BINDINGS_IMX8MP_POWER_H__
+#define __DT_BINDINGS_IMX8MP_POWER_H__
+
+#define IMX8MP_POWER_DOMAIN_HSIOMIX	0
+#define IMX8MP_POWER_DOMAIN_PCIE1	1
+#define IMX8MP_POWER_DOMAIN_USB_OTG1	2
+#define IMX8MP_POWER_DOMAIN_USB_OTG2	3
+#define IMX8MP_POWER_DOMAIN_MLMIX	4
+#define IMX8MP_POWER_DOMAIN_AUDIOMIX	5
+#define IMX8MP_POWER_DOMAIN_GPU_MIX	6
+#define IMX8MP_POWER_DOMAIN_GPU_2D	7
+#define IMX8MP_POWER_DOMAIN_GPU_3D	8
+#define IMX8MP_POWER_DOMAIN_VPUMIX	9
+#define IMX8MP_POWER_DOMAIN_G1		10
+#define IMX8MP_POWER_DOMAIN_G2		11
+#define IMX8MP_POWER_DOMAIN_H1		12
+#define IMX8MP_POWER_MEDIAMIX		13
+#define IMX8MP_ISP_DWP			14
+#define IMX8MP_MIPI_PHY1		15
+#define IMX8MP_MIPI_PHY2		16
+#define IMX8MP_HDMI_MIX			17
+#define IMX8MP_HDMI_PHY			18
+#endif
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 2/2] soc: imx: add Power Domain driver for i.MX8M(M|N|P)
  2021-04-02 16:45 [PATCH v1 0/2] Add imx8m power domain driver Adrien Grassein
  2021-04-02 16:45 ` [PATCH v1 1/2] dt-bindings: power: Add documentation for " Adrien Grassein
@ 2021-04-02 16:45 ` Adrien Grassein
  2021-04-02 17:42 ` [PATCH v1 0/2] Add imx8m power domain driver Abel Vesa
  2 siblings, 0 replies; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 16:45 UTC (permalink / raw)
  Cc: robh+dt, shawnguo, s.hauer, kernel, festevam, linux-imx,
	lgirdwood, broonie, arnd, peng.fan, Anson.Huang, devicetree,
	linux-arm-kernel, linux-kernel, Adrien Grassein

Add code allowing to control the power domain of some
i.MX8 socs.

Signed-off-by: Adrien Grassein <adrien.grassein@gmail.com>
---
 MAINTAINERS                        |   2 +
 drivers/soc/imx/Kconfig            |   7 +
 drivers/soc/imx/Makefile           |   1 +
 drivers/soc/imx/imx8m_pm_domains.c | 233 +++++++++++++++++++++++++++++
 include/soc/imx/imx_sip.h          |  12 ++
 5 files changed, 255 insertions(+)
 create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
 create mode 100644 include/soc/imx/imx_sip.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 97536afca0e1..06e1568d003b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13014,9 +13014,11 @@ NXP i.MX 8M(M|N|P) POWER DOMAIN DRIVER
 M:	Adrien Grassein <adrien.grassein@gmail.com>
 S:	Maintained
 F:	Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
+F:	drivers/soc/imx/imx8m_pm_domains.c
 F:	include/dt-bindings/power/imx8mm-power.h
 F:	include/dt-bindings/power/imx8mn-power.h
 F:	include/dt-bindings/power/imx8mp-power.h
+F:	include/soc/imx/imx_sip.h
 
 NXP i.MX 8MQ DCSS DRIVER
 M:	Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
index 05812f8ae734..02d93346fd4b 100644
--- a/drivers/soc/imx/Kconfig
+++ b/drivers/soc/imx/Kconfig
@@ -8,6 +8,13 @@ config IMX_GPCV2_PM_DOMAINS
 	select PM_GENERIC_DOMAINS
 	default y if SOC_IMX7D
 
+config IMX8M_PM_DOMAINS
+	bool "i.MX8M PM domains"
+	depends on ARCH_MXC || (COMPILE_TEST && OF)
+	depends on PM
+	select PM_GENERIC_DOMAINS
+	default y if SOC_IMX8M
+
 config SOC_IMX8M
 	bool "i.MX8M SoC family support"
 	depends on ARCH_MXC || COMPILE_TEST
diff --git a/drivers/soc/imx/Makefile b/drivers/soc/imx/Makefile
index 078dc918f4f3..7387239aecec 100644
--- a/drivers/soc/imx/Makefile
+++ b/drivers/soc/imx/Makefile
@@ -4,4 +4,5 @@ obj-$(CONFIG_ARCH_MXC) += soc-imx.o
 endif
 obj-$(CONFIG_HAVE_IMX_GPC) += gpc.o
 obj-$(CONFIG_IMX_GPCV2_PM_DOMAINS) += gpcv2.o
+obj-$(CONFIG_IMX8M_PM_DOMAINS) += imx8m_pm_domains.o
 obj-$(CONFIG_SOC_IMX8M) += soc-imx8m.o
diff --git a/drivers/soc/imx/imx8m_pm_domains.c b/drivers/soc/imx/imx8m_pm_domains.c
new file mode 100644
index 000000000000..3a039572b734
--- /dev/null
+++ b/drivers/soc/imx/imx8m_pm_domains.c
@@ -0,0 +1,233 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2019 NXP.
+ */
+
+#include <linux/arm-smccc.h>
+#include <linux/clk.h>
+#include <linux/delay.h>
+#include <linux/io.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/pm_domain.h>
+#include <linux/regulator/consumer.h>
+
+#include <soc/imx/imx_sip.h>
+
+#define MAX_CLK_NUM	6
+#define to_imx8m_pm_domain(_genpd) container_of(_genpd, struct imx8m_pm_domain, pd)
+
+struct imx8m_pm_domain {
+	struct device *dev;
+	struct generic_pm_domain pd;
+	u32 domain_index;
+	struct clk *clk[MAX_CLK_NUM];
+	unsigned int num_clks;
+	struct regulator *reg;
+};
+
+enum imx8m_pm_domain_state {
+	PD_STATE_OFF,
+	PD_STATE_ON,
+};
+
+static DEFINE_MUTEX(gpc_pd_mutex);
+
+static int imx8m_pd_power_on(struct generic_pm_domain *genpd)
+{
+	struct imx8m_pm_domain *domain = to_imx8m_pm_domain(genpd);
+	struct arm_smccc_res res;
+	int index, ret = 0;
+
+	/* power on the external supply */
+	if (!IS_ERR(domain->reg)) {
+		ret = regulator_enable(domain->reg);
+		if (ret) {
+			dev_warn(domain->dev, "failed to power up the reg%d\n", ret);
+			return ret;
+		}
+	}
+
+	/* enable the necessary clks needed by the power domain */
+	if (domain->num_clks) {
+		for (index = 0; index < domain->num_clks; index++)
+			clk_prepare_enable(domain->clk[index]);
+	}
+
+	mutex_lock(&gpc_pd_mutex);
+	arm_smccc_smc(IMX_SIP_GPC, IMX_SIP_CONFIG_GPC_PM_DOMAIN, domain->domain_index,
+		      PD_STATE_ON, 0, 0, 0, 0, &res);
+	mutex_unlock(&gpc_pd_mutex);
+
+	return 0;
+}
+
+static int imx8m_pd_power_off(struct generic_pm_domain *genpd)
+{
+	struct imx8m_pm_domain *domain = to_imx8m_pm_domain(genpd);
+	struct arm_smccc_res res;
+	int index, ret = 0;
+
+	mutex_lock(&gpc_pd_mutex);
+	arm_smccc_smc(IMX_SIP_GPC, IMX_SIP_CONFIG_GPC_PM_DOMAIN, domain->domain_index,
+		      PD_STATE_OFF, 0, 0, 0, 0, &res);
+	mutex_unlock(&gpc_pd_mutex);
+
+	/* power off the external supply */
+	if (!IS_ERR(domain->reg)) {
+		ret = regulator_disable(domain->reg);
+		if (ret) {
+			dev_warn(domain->dev, "failed to power off the reg%d\n", ret);
+			return ret;
+		}
+	}
+
+	/* disable clks when power domain is off */
+	if (domain->num_clks) {
+		for (index = 0; index < domain->num_clks; index++)
+			clk_disable_unprepare(domain->clk[index]);
+	}
+
+	return ret;
+};
+
+static int imx8m_pd_get_clocks(struct imx8m_pm_domain *domain)
+{
+	int i, ret;
+
+	for (i = 0; ; i++) {
+		struct clk *clk = of_clk_get(domain->dev->of_node, i);
+
+		if (IS_ERR(clk))
+			break;
+		if (i >= MAX_CLK_NUM) {
+			dev_err(domain->dev, "more than %d clocks\n",
+				MAX_CLK_NUM);
+			ret = -EINVAL;
+			goto clk_err;
+		}
+		domain->clk[i] = clk;
+	}
+	domain->num_clks = i;
+
+	return 0;
+
+clk_err:
+	while (i--)
+		clk_put(domain->clk[i]);
+
+	return ret;
+}
+
+static void imx8m_pd_put_clocks(struct imx8m_pm_domain *domain)
+{
+	int i;
+
+	for (i = domain->num_clks - 1; i >= 0; i--)
+		clk_put(domain->clk[i]);
+}
+
+static const struct of_device_id imx8m_pm_domain_ids[] = {
+	{.compatible = "fsl,imx8mm-pm-domain"},
+	{.compatible = "fsl,imx8mn-pm-domain"},
+	{.compatible = "fsl,imx8mn-pm-domain"},
+	{},
+};
+
+static int imx8m_pm_domain_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
+	struct imx8m_pm_domain *domain;
+	struct of_phandle_args parent, child;
+	int ret;
+
+	domain = devm_kzalloc(dev, sizeof(*domain), GFP_KERNEL);
+	if (!domain)
+		return -ENOMEM;
+
+	child.np = np;
+	domain->dev = dev;
+
+	ret = of_property_read_string(np, "domain-name", &domain->pd.name);
+	if (ret) {
+		dev_err(dev, "failed to get the domain name\n");
+		return -EINVAL;
+	}
+
+	ret = of_property_read_u32(np, "domain-index", &domain->domain_index);
+	if (ret) {
+		dev_err(dev, "failed to get the domain index\n");
+		return -EINVAL;
+	}
+
+	domain->reg = devm_regulator_get_optional(dev, "power");
+	if (IS_ERR(domain->reg)) {
+		if (PTR_ERR(domain->reg) != -ENODEV) {
+			if (PTR_ERR(domain->reg) != -EPROBE_DEFER)
+				dev_err(dev, "failed to get domain's regulator\n");
+			return PTR_ERR(domain->reg);
+		}
+	}
+
+	ret = imx8m_pd_get_clocks(domain);
+	if (ret) {
+		if (ret != -EPROBE_DEFER)
+			dev_err(dev, "failed to get domain's clocks\n");
+		return ret;
+	}
+
+	domain->pd.power_off = imx8m_pd_power_off;
+	domain->pd.power_on = imx8m_pd_power_on;
+	if (of_property_read_bool(np, "fsl,active-wakeup"))
+		domain->pd.flags |= GENPD_FLAG_ACTIVE_WAKEUP;
+	if (of_property_read_bool(np, "fsl,rpm-always-on"))
+		domain->pd.flags |= GENPD_FLAG_RPM_ALWAYS_ON;
+
+	pm_genpd_init(&domain->pd, NULL, !(domain->pd.flags & GENPD_FLAG_RPM_ALWAYS_ON));
+
+	ret = of_genpd_add_provider_simple(np, &domain->pd);
+	if (ret) {
+		dev_err(dev, "failed to add the domain provider\n");
+		pm_genpd_remove(&domain->pd);
+		imx8m_pd_put_clocks(domain);
+		return ret;
+	}
+
+	/* add it as subdomain if necessary */
+	if (!of_parse_phandle_with_args(np, "power-domains",
+					"#power-domain-cells",
+					0, &parent)) {
+		ret = of_genpd_add_subdomain(&parent, &child);
+		of_node_put(parent.np);
+
+		if (ret < 0) {
+			dev_dbg(dev, "failed to add the subdomain: %s: %d",
+				domain->pd.name, ret);
+			of_genpd_del_provider(np);
+			pm_genpd_remove(&domain->pd);
+			imx8m_pd_put_clocks(domain);
+			return driver_deferred_probe_check_state(dev);
+		}
+	}
+
+	return 0;
+}
+
+static struct platform_driver imx8m_pm_domain_driver = {
+	.driver = {
+		.name	= "imx8m_pm_domain",
+		.owner	= THIS_MODULE,
+		.of_match_table = imx8m_pm_domain_ids,
+	},
+	.probe = imx8m_pm_domain_probe,
+};
+module_platform_driver(imx8m_pm_domain_driver);
+
+MODULE_AUTHOR("NXP");
+/* Just for mainstreaming */
+MODULE_AUTHOR("Adrien Grassein <adrien.grassein@gmail.com>");
+MODULE_DESCRIPTION("NXP i.MX8M power domain driver");
+MODULE_LICENSE("GPL v2");
diff --git a/include/soc/imx/imx_sip.h b/include/soc/imx/imx_sip.h
new file mode 100644
index 000000000000..6b96b33c870e
--- /dev/null
+++ b/include/soc/imx/imx_sip.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __IMX_SIP_H__
+#define __IMX_SIP_H__
+
+#define IMX_SIP_GPC			0xC2000000
+#define IMX_SIP_CONFIG_GPC_PM_DOMAIN	0x03
+
+#endif /* __IMX_SIP_H__ */
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 16:45 [PATCH v1 0/2] Add imx8m power domain driver Adrien Grassein
  2021-04-02 16:45 ` [PATCH v1 1/2] dt-bindings: power: Add documentation for " Adrien Grassein
  2021-04-02 16:45 ` [PATCH v1 2/2] soc: imx: add Power Domain driver for i.MX8M(M|N|P) Adrien Grassein
@ 2021-04-02 17:42 ` Abel Vesa
  2021-04-02 17:48   ` Adrien Grassein
  2 siblings, 1 reply; 9+ messages in thread
From: Abel Vesa @ 2021-04-02 17:42 UTC (permalink / raw)
  To: Adrien Grassein
  Cc: robh+dt, shawnguo, s.hauer, kernel, festevam, linux-imx,
	lgirdwood, broonie, arnd, peng.fan, Anson.Huang, devicetree,
	linux-arm-kernel, linux-kernel

On 21-04-02 18:45:04, Adrien Grassein wrote:
> Hi,
> 
> this patch et aims to add the support of the i.MX 8 Power Domain driver.
> Some devices (like usbotg2) can't work without this patch as their
> attached power domain are down.
> 
> The original drivr was taken from le imx kernel and aapted to fit with
> the actual mainline (minor fixes).
> 
> Thanks,
> 

Big NACK for the whole series.

This approach has already been rejected upstream.

Plus, you changed the original author, this work was originally done by Jacky Bai.

> Adrien Grassein (2):
>   dt-bindings: power: Add documentation for imx8m power domain driver
>   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> 
>  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
>  MAINTAINERS                                   |  10 +
>  drivers/soc/imx/Kconfig                       |   7 +
>  drivers/soc/imx/Makefile                      |   1 +
>  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
>  include/dt-bindings/power/imx8mm-power.h      |  21 ++
>  include/dt-bindings/power/imx8mn-power.h      |  15 ++
>  include/dt-bindings/power/imx8mp-power.h      |  28 +++
>  include/soc/imx/imx_sip.h                     |  12 +
>  9 files changed, 416 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
>  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
>  create mode 100644 include/dt-bindings/power/imx8mm-power.h
>  create mode 100644 include/dt-bindings/power/imx8mn-power.h
>  create mode 100644 include/dt-bindings/power/imx8mp-power.h
>  create mode 100644 include/soc/imx/imx_sip.h
> 
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 17:42 ` [PATCH v1 0/2] Add imx8m power domain driver Abel Vesa
@ 2021-04-02 17:48   ` Adrien Grassein
  2021-04-02 17:58     ` Abel Vesa
  0 siblings, 1 reply; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 17:48 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
	Fabio Estevam, dl-linux-imx, Liam Girdwood, Mark Brown, arnd,
	peng.fan, Anson.Huang, DTML, linux-arm-kernel, linux-kernel

Hi,

Le ven. 2 avr. 2021 à 19:42, Abel Vesa <abel.vesa@nxp.com> a écrit :
>
> On 21-04-02 18:45:04, Adrien Grassein wrote:
> > Hi,
> >
> > this patch et aims to add the support of the i.MX 8 Power Domain driver.
> > Some devices (like usbotg2) can't work without this patch as their
> > attached power domain are down.
> >
> > The original drivr was taken from le imx kernel and aapted to fit with
> > the actual mainline (minor fixes).
> >
> > Thanks,
> >
>
> Big NACK for the whole series.
>
> This approach has already been rejected upstream.

So what is the correct approach?
At this point otg2 node of imx8mm is not working at all (and blocks the whole
boot of the kernel)

>
> Plus, you changed the original author, this work was originally done by Jacky Bai.

I have not changed this, the original author is not mentioned on the
original patch.
(Taken from https://github.com/Freescale/linux-fslc branch 5.4-2.2.x-imx)

>
> > Adrien Grassein (2):
> >   dt-bindings: power: Add documentation for imx8m power domain driver
> >   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> >
> >  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
> >  MAINTAINERS                                   |  10 +
> >  drivers/soc/imx/Kconfig                       |   7 +
> >  drivers/soc/imx/Makefile                      |   1 +
> >  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
> >  include/dt-bindings/power/imx8mm-power.h      |  21 ++
> >  include/dt-bindings/power/imx8mn-power.h      |  15 ++
> >  include/dt-bindings/power/imx8mp-power.h      |  28 +++
> >  include/soc/imx/imx_sip.h                     |  12 +
> >  9 files changed, 416 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
> >  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
> >  create mode 100644 include/dt-bindings/power/imx8mm-power.h
> >  create mode 100644 include/dt-bindings/power/imx8mn-power.h
> >  create mode 100644 include/dt-bindings/power/imx8mp-power.h
> >  create mode 100644 include/soc/imx/imx_sip.h
> >
> > --
> > 2.25.1
> >

Thanks,

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 17:48   ` Adrien Grassein
@ 2021-04-02 17:58     ` Abel Vesa
  2021-04-02 18:11       ` Adrien Grassein
  0 siblings, 1 reply; 9+ messages in thread
From: Abel Vesa @ 2021-04-02 17:58 UTC (permalink / raw)
  To: Adrien Grassein
  Cc: Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
	Fabio Estevam, dl-linux-imx, Liam Girdwood, Mark Brown, arnd,
	peng.fan, Anson.Huang, DTML, linux-arm-kernel, linux-kernel

On 21-04-02 19:48:41, Adrien Grassein wrote:
> Hi,
> 
> Le ven. 2 avr. 2021 à 19:42, Abel Vesa <abel.vesa@nxp.com> a écrit :
> >
> > On 21-04-02 18:45:04, Adrien Grassein wrote:
> > > Hi,
> > >
> > > this patch et aims to add the support of the i.MX 8 Power Domain driver.
> > > Some devices (like usbotg2) can't work without this patch as their
> > > attached power domain are down.
> > >
> > > The original drivr was taken from le imx kernel and aapted to fit with
> > > the actual mainline (minor fixes).
> > >
> > > Thanks,
> > >
> >
> > Big NACK for the whole series.
> >
> > This approach has already been rejected upstream.
> 
> So what is the correct approach?
> At this point otg2 node of imx8mm is not working at all (and blocks the whole
> boot of the kernel)
> 

Have a look at this thread:

https://lkml.org/lkml/2020/4/27/706

> >
> > Plus, you changed the original author, this work was originally done by Jacky Bai.
> 
> I have not changed this, the original author is not mentioned on the
> original patch.

Here is the original commit:

https://github.com/Freescale/linux-fslc/commit/7ebcf5ccf423afe4ccd9c53ef204018b0b653ce0


> 
> >
> > > Adrien Grassein (2):
> > >   dt-bindings: power: Add documentation for imx8m power domain driver
> > >   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> > >
> > >  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
> > >  MAINTAINERS                                   |  10 +
> > >  drivers/soc/imx/Kconfig                       |   7 +
> > >  drivers/soc/imx/Makefile                      |   1 +
> > >  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
> > >  include/dt-bindings/power/imx8mm-power.h      |  21 ++
> > >  include/dt-bindings/power/imx8mn-power.h      |  15 ++
> > >  include/dt-bindings/power/imx8mp-power.h      |  28 +++
> > >  include/soc/imx/imx_sip.h                     |  12 +
> > >  9 files changed, 416 insertions(+)
> > >  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
> > >  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
> > >  create mode 100644 include/dt-bindings/power/imx8mm-power.h
> > >  create mode 100644 include/dt-bindings/power/imx8mn-power.h
> > >  create mode 100644 include/dt-bindings/power/imx8mp-power.h
> > >  create mode 100644 include/soc/imx/imx_sip.h
> > >
> > > --
> > > 2.25.1
> > >
> 
> Thanks,

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 17:58     ` Abel Vesa
@ 2021-04-02 18:11       ` Adrien Grassein
  2021-04-02 22:09         ` Adam Ford
  0 siblings, 1 reply; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 18:11 UTC (permalink / raw)
  To: Abel Vesa
  Cc: Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
	Fabio Estevam, dl-linux-imx, Liam Girdwood, Mark Brown, arnd,
	peng.fan, Anson.Huang, DTML, linux-arm-kernel, linux-kernel

Le ven. 2 avr. 2021 à 19:58, Abel Vesa <abel.vesa@nxp.com> a écrit :
>
> On 21-04-02 19:48:41, Adrien Grassein wrote:
> > Hi,
> >
> > Le ven. 2 avr. 2021 à 19:42, Abel Vesa <abel.vesa@nxp.com> a écrit :
> > >
> > > On 21-04-02 18:45:04, Adrien Grassein wrote:
> > > > Hi,
> > > >
> > > > this patch et aims to add the support of the i.MX 8 Power Domain driver.
> > > > Some devices (like usbotg2) can't work without this patch as their
> > > > attached power domain are down.
> > > >
> > > > The original drivr was taken from le imx kernel and aapted to fit with
> > > > the actual mainline (minor fixes).
> > > >
> > > > Thanks,
> > > >
> > >
> > > Big NACK for the whole series.
> > >
> > > This approach has already been rejected upstream.
> >
> > So what is the correct approach?
> > At this point otg2 node of imx8mm is not working at all (and blocks the whole
> > boot of the kernel)
> >
>
> Have a look at this thread:
>
> https://lkml.org/lkml/2020/4/27/706
>
Understood, so I will try to update the gpc driver (at least for otg).

> > >
> > > Plus, you changed the original author, this work was originally done by Jacky Bai.
> >
> > I have not changed this, the original author is not mentioned on the
> > original patch.
>
> Here is the original commit:
>
> https://github.com/Freescale/linux-fslc/commit/7ebcf5ccf423afe4ccd9c53ef204018b0b653ce0
>
>
> >
> > >
> > > > Adrien Grassein (2):
> > > >   dt-bindings: power: Add documentation for imx8m power domain driver
> > > >   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> > > >
> > > >  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
> > > >  MAINTAINERS                                   |  10 +
> > > >  drivers/soc/imx/Kconfig                       |   7 +
> > > >  drivers/soc/imx/Makefile                      |   1 +
> > > >  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
> > > >  include/dt-bindings/power/imx8mm-power.h      |  21 ++
> > > >  include/dt-bindings/power/imx8mn-power.h      |  15 ++
> > > >  include/dt-bindings/power/imx8mp-power.h      |  28 +++
> > > >  include/soc/imx/imx_sip.h                     |  12 +
> > > >  9 files changed, 416 insertions(+)
> > > >  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
> > > >  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
> > > >  create mode 100644 include/dt-bindings/power/imx8mm-power.h
> > > >  create mode 100644 include/dt-bindings/power/imx8mn-power.h
> > > >  create mode 100644 include/dt-bindings/power/imx8mp-power.h
> > > >  create mode 100644 include/soc/imx/imx_sip.h
> > > >
> > > > --
> > > > 2.25.1
> > > >
> >
> > Thanks,

Thanks,

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 18:11       ` Adrien Grassein
@ 2021-04-02 22:09         ` Adam Ford
  2021-04-02 22:26           ` Adrien Grassein
  0 siblings, 1 reply; 9+ messages in thread
From: Adam Ford @ 2021-04-02 22:09 UTC (permalink / raw)
  To: Adrien Grassein
  Cc: Abel Vesa, Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
	Fabio Estevam, dl-linux-imx, Liam Girdwood, Mark Brown,
	Arnd Bergmann, Peng Fan, Anson Huang, DTML, arm-soc,
	linux-kernel

On Fri, Apr 2, 2021 at 1:16 PM Adrien Grassein
<adrien.grassein@gmail.com> wrote:
>
> Le ven. 2 avr. 2021 à 19:58, Abel Vesa <abel.vesa@nxp.com> a écrit :
> >
> > On 21-04-02 19:48:41, Adrien Grassein wrote:
> > > Hi,
> > >
> > > Le ven. 2 avr. 2021 à 19:42, Abel Vesa <abel.vesa@nxp.com> a écrit :
> > > >
> > > > On 21-04-02 18:45:04, Adrien Grassein wrote:
> > > > > Hi,
> > > > >
> > > > > this patch et aims to add the support of the i.MX 8 Power Domain driver.
> > > > > Some devices (like usbotg2) can't work without this patch as their
> > > > > attached power domain are down.
> > > > >
> > > > > The original drivr was taken from le imx kernel and aapted to fit with
> > > > > the actual mainline (minor fixes).
> > > > >
> > > > > Thanks,
> > > > >
> > > >
> > > > Big NACK for the whole series.
> > > >
> > > > This approach has already been rejected upstream.
> > >
> > > So what is the correct approach?
> > > At this point otg2 node of imx8mm is not working at all (and blocks the whole
> > > boot of the kernel)
> > >
> >
> > Have a look at this thread:
> >
> > https://lkml.org/lkml/2020/4/27/706
> >
> Understood, so I will try to update the gpc driver (at least for otg).

Thanks for doing that. I know Lucas tried a few times to get something
going.  I'm willing to adapt whatever work you do on the Mini toward
the Nano if you don't have time.

adam
>
> > > >
> > > > Plus, you changed the original author, this work was originally done by Jacky Bai.
> > >
> > > I have not changed this, the original author is not mentioned on the
> > > original patch.
> >
> > Here is the original commit:
> >
> > https://github.com/Freescale/linux-fslc/commit/7ebcf5ccf423afe4ccd9c53ef204018b0b653ce0
> >
> >
> > >
> > > >
> > > > > Adrien Grassein (2):
> > > > >   dt-bindings: power: Add documentation for imx8m power domain driver
> > > > >   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> > > > >
> > > > >  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
> > > > >  MAINTAINERS                                   |  10 +
> > > > >  drivers/soc/imx/Kconfig                       |   7 +
> > > > >  drivers/soc/imx/Makefile                      |   1 +
> > > > >  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
> > > > >  include/dt-bindings/power/imx8mm-power.h      |  21 ++
> > > > >  include/dt-bindings/power/imx8mn-power.h      |  15 ++
> > > > >  include/dt-bindings/power/imx8mp-power.h      |  28 +++
> > > > >  include/soc/imx/imx_sip.h                     |  12 +
> > > > >  9 files changed, 416 insertions(+)
> > > > >  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
> > > > >  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
> > > > >  create mode 100644 include/dt-bindings/power/imx8mm-power.h
> > > > >  create mode 100644 include/dt-bindings/power/imx8mn-power.h
> > > > >  create mode 100644 include/dt-bindings/power/imx8mp-power.h
> > > > >  create mode 100644 include/soc/imx/imx_sip.h
> > > > >
> > > > > --
> > > > > 2.25.1
> > > > >
> > >
> > > Thanks,
>
> Thanks,
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 0/2] Add imx8m power domain driver
  2021-04-02 22:09         ` Adam Ford
@ 2021-04-02 22:26           ` Adrien Grassein
  0 siblings, 0 replies; 9+ messages in thread
From: Adrien Grassein @ 2021-04-02 22:26 UTC (permalink / raw)
  To: Adam Ford
  Cc: Abel Vesa, Rob Herring, Shawn Guo, Sascha Hauer, Sascha Hauer,
	Fabio Estevam, dl-linux-imx, Liam Girdwood, Mark Brown,
	Arnd Bergmann, Peng Fan, Anson Huang, DTML, arm-soc,
	linux-kernel

Hi,

Le sam. 3 avr. 2021 à 00:10, Adam Ford <aford173@gmail.com> a écrit :
>
> On Fri, Apr 2, 2021 at 1:16 PM Adrien Grassein
> <adrien.grassein@gmail.com> wrote:
> >
> > Le ven. 2 avr. 2021 à 19:58, Abel Vesa <abel.vesa@nxp.com> a écrit :
> > >
> > > On 21-04-02 19:48:41, Adrien Grassein wrote:
> > > > Hi,
> > > >
> > > > Le ven. 2 avr. 2021 à 19:42, Abel Vesa <abel.vesa@nxp.com> a écrit :
> > > > >
> > > > > On 21-04-02 18:45:04, Adrien Grassein wrote:
> > > > > > Hi,
> > > > > >
> > > > > > this patch et aims to add the support of the i.MX 8 Power Domain driver.
> > > > > > Some devices (like usbotg2) can't work without this patch as their
> > > > > > attached power domain are down.
> > > > > >
> > > > > > The original drivr was taken from le imx kernel and aapted to fit with
> > > > > > the actual mainline (minor fixes).
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > >
> > > > > Big NACK for the whole series.
> > > > >
> > > > > This approach has already been rejected upstream.
> > > >
> > > > So what is the correct approach?
> > > > At this point otg2 node of imx8mm is not working at all (and blocks the whole
> > > > boot of the kernel)
> > > >
> > >
> > > Have a look at this thread:
> > >
> > > https://lkml.org/lkml/2020/4/27/706
> > >
> > Understood, so I will try to update the gpc driver (at least for otg).
>
> Thanks for doing that. I know Lucas tried a few times to get something
> going.  I'm willing to adapt whatever work you do on the Mini toward
> the Nano if you don't have time.
>

NP, the problem here is that I don't have an Nano to test.

> adam
> >
> > > > >
> > > > > Plus, you changed the original author, this work was originally done by Jacky Bai.
> > > >
> > > > I have not changed this, the original author is not mentioned on the
> > > > original patch.
> > >
> > > Here is the original commit:
> > >
> > > https://github.com/Freescale/linux-fslc/commit/7ebcf5ccf423afe4ccd9c53ef204018b0b653ce0
> > >
> > >
> > > >
> > > > >
> > > > > > Adrien Grassein (2):
> > > > > >   dt-bindings: power: Add documentation for imx8m power domain driver
> > > > > >   soc: imx: add Power Domain driver for i.MX8M(M|N|P)
> > > > > >
> > > > > >  .../bindings/power/fsl,imx-power-domain.yaml  |  89 +++++++
> > > > > >  MAINTAINERS                                   |  10 +
> > > > > >  drivers/soc/imx/Kconfig                       |   7 +
> > > > > >  drivers/soc/imx/Makefile                      |   1 +
> > > > > >  drivers/soc/imx/imx8m_pm_domains.c            | 233 ++++++++++++++++++
> > > > > >  include/dt-bindings/power/imx8mm-power.h      |  21 ++
> > > > > >  include/dt-bindings/power/imx8mn-power.h      |  15 ++
> > > > > >  include/dt-bindings/power/imx8mp-power.h      |  28 +++
> > > > > >  include/soc/imx/imx_sip.h                     |  12 +
> > > > > >  9 files changed, 416 insertions(+)
> > > > > >  create mode 100644 Documentation/devicetree/bindings/power/fsl,imx-power-domain.yaml
> > > > > >  create mode 100644 drivers/soc/imx/imx8m_pm_domains.c
> > > > > >  create mode 100644 include/dt-bindings/power/imx8mm-power.h
> > > > > >  create mode 100644 include/dt-bindings/power/imx8mn-power.h
> > > > > >  create mode 100644 include/dt-bindings/power/imx8mp-power.h
> > > > > >  create mode 100644 include/soc/imx/imx_sip.h
> > > > > >
> > > > > > --
> > > > > > 2.25.1
> > > > > >
> > > >
> > > > Thanks,
> >
> > Thanks,
> >
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Thanks,

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-04-02 22:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-02 16:45 [PATCH v1 0/2] Add imx8m power domain driver Adrien Grassein
2021-04-02 16:45 ` [PATCH v1 1/2] dt-bindings: power: Add documentation for " Adrien Grassein
2021-04-02 16:45 ` [PATCH v1 2/2] soc: imx: add Power Domain driver for i.MX8M(M|N|P) Adrien Grassein
2021-04-02 17:42 ` [PATCH v1 0/2] Add imx8m power domain driver Abel Vesa
2021-04-02 17:48   ` Adrien Grassein
2021-04-02 17:58     ` Abel Vesa
2021-04-02 18:11       ` Adrien Grassein
2021-04-02 22:09         ` Adam Ford
2021-04-02 22:26           ` Adrien Grassein

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).