* [PATCH v3 1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries
@ 2023-05-19 11:29 Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register Fabio Estevam
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Fabio Estevam @ 2023-05-19 11:29 UTC (permalink / raw)
To: shawnguo
Cc: marex, robh+dt, krzysztof.kozlowski+dt, devicetree,
linux-arm-kernel, conor+dt, Fabio Estevam
From: Fabio Estevam <festevam@denx.de>
On the i.MX6SX there is a single entry for 'reg' and 'reg-names', so add
some logic to reflect that.
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
Changes since v2:
- Newly introduced.
.../bindings/display/bridge/fsl,ldb.yaml | 28 +++++++++++++++++--
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
index 07388bf2b90d..cd63f9ef9484 100644
--- a/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml
@@ -28,12 +28,12 @@ properties:
const: ldb
reg:
+ minItems: 1
maxItems: 2
reg-names:
- items:
- - const: ldb
- - const: lvds
+ minItems: 1
+ maxItems: 2
ports:
$ref: /schemas/graph.yaml#/properties/ports
@@ -74,6 +74,28 @@ allOf:
properties:
port@2: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx6sx-ldb
+ then:
+ properties:
+ reg:
+ maxItems: 1
+ reg-names:
+ items:
+ - const: ldb
+ else:
+ properties:
+ reg:
+ minItems: 2
+ reg-names:
+ items:
+ - const: ldb
+ - const: lvds
+
additionalProperties: false
examples:
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register
2023-05-19 11:29 [PATCH v3 1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries Fabio Estevam
@ 2023-05-19 11:29 ` Fabio Estevam
2023-05-19 12:24 ` Rob Herring
2023-05-19 11:29 ` [PATCH v3 3/4] ARM: dts: imx6sx: Add LDB support Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 4/4] soc: imx: imx6sx-gpr: Introduce a GPR driver Fabio Estevam
2 siblings, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2023-05-19 11:29 UTC (permalink / raw)
To: shawnguo
Cc: marex, robh+dt, krzysztof.kozlowski+dt, devicetree,
linux-arm-kernel, conor+dt, Fabio Estevam
From: Fabio Estevam <festevam@denx.de>
The i.MX6SX General Purpose Registers is a set of register that serves
various different purposes and in particular, IOMUXC_GPR_GPR6, at
offset 0x18, can be used to configure the LDB block.
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
Changes since v2:
- Newly introduced.
.../bindings/soc/imx/fsl,imx6sx-gpr.yaml | 83 +++++++++++++++++++
1 file changed, 83 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
new file mode 100644
index 000000000000..9336e87cc976
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/imx/fsl,imx6sx-gpr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX6SX General Purpose Register
+
+maintainers:
+ - Fabio Estevam <festevam@denx.de>
+
+description:
+ The i.MX6SX General Purpose Registers is a set of register that serves
+ for various purposes and in particular, IOMUXC_GPR_GPR6, at offset 0x18,
+ can be used to configure the LDB block.
+
+properties:
+ compatible:
+ items:
+ - const: fsl,imx6sx-gpr
+ - const: syscon
+
+ reg:
+ maxItems: 1
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 1
+
+ bridge@18:
+ type: object
+ $ref: /schemas/display/bridge/fsl,ldb.yaml#
+ unevaluatedProperties: false
+
+required:
+ - compatible
+ - reg
+ - '#address-cells'
+ - '#size-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/imx6sx-clock.h>
+
+ iomuxc-gpr@20e4000 {
+ compatible = "fsl,imx6sx-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon";
+ reg = <0x020e4000 0x4000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ bridge@18 {
+ compatible = "fsl,imx6sx-ldb";
+ reg = <0x18 0x4>;
+ reg-names = "ldb";
+ clocks = <&clks IMX6SX_CLK_LDB_DI0>;
+ clock-names = "ldb";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ ldb_from_lcdif1: endpoint {
+ remote-endpoint = <&lcdif1_to_ldb>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ };
+ };
+ };
+ };
+ };
+...
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 3/4] ARM: dts: imx6sx: Add LDB support
2023-05-19 11:29 [PATCH v3 1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register Fabio Estevam
@ 2023-05-19 11:29 ` Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 4/4] soc: imx: imx6sx-gpr: Introduce a GPR driver Fabio Estevam
2 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2023-05-19 11:29 UTC (permalink / raw)
To: shawnguo
Cc: marex, robh+dt, krzysztof.kozlowski+dt, devicetree,
linux-arm-kernel, conor+dt, Fabio Estevam
From: Fabio Estevam <festevam@denx.de>
i.MX6SX has an LVDS controller that is connected to the eLCDIF.
Add support for it.
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
Changes since v2:
- None.
arch/arm/boot/dts/imx6sx.dtsi | 39 +++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 4233943a1cca..442106565025 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -844,7 +844,38 @@ iomuxc: pinctrl@20e0000 {
gpr: iomuxc-gpr@20e4000 {
compatible = "fsl,imx6sx-iomuxc-gpr",
"fsl,imx6q-iomuxc-gpr", "syscon";
+ #address-cells = <1>;
+ #size-cells = <1>;
reg = <0x020e4000 0x4000>;
+
+ lvds_bridge: bridge@18 {
+ compatible = "fsl,imx6sx-ldb";
+ reg = <0x18 0x4>;
+ reg-names = "ldb";
+ clocks = <&clks IMX6SX_CLK_LDB_DI0>;
+ clock-names = "ldb";
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ ldb_from_lcdif1: endpoint {
+ remote-endpoint = <&lcdif1_to_ldb>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds_ch0: endpoint {
+ };
+ };
+ };
+ };
};
sdma: dma-controller@20ec000 {
@@ -1278,6 +1309,14 @@ lcdif1: lcdif@2220000 {
clock-names = "pix", "axi", "disp_axi";
power-domains = <&pd_disp>;
status = "disabled";
+
+ ports {
+ port {
+ lcdif1_to_ldb: endpoint {
+ remote-endpoint = <&ldb_from_lcdif1>;
+ };
+ };
+ };
};
lcdif2: lcdif@2224000 {
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 4/4] soc: imx: imx6sx-gpr: Introduce a GPR driver
2023-05-19 11:29 [PATCH v3 1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 3/4] ARM: dts: imx6sx: Add LDB support Fabio Estevam
@ 2023-05-19 11:29 ` Fabio Estevam
2 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2023-05-19 11:29 UTC (permalink / raw)
To: shawnguo
Cc: marex, robh+dt, krzysztof.kozlowski+dt, devicetree,
linux-arm-kernel, conor+dt, Fabio Estevam
From: Fabio Estevam <festevam@denx.de>
The motivation for this imx6sx-gpr driver is to allow describing
the LVDS LDB bridge as a GPR subnode.
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
Changes since v2:
- None.
drivers/soc/imx/Makefile | 1 +
drivers/soc/imx/imx6sx-gpr.c | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+)
create mode 100644 drivers/soc/imx/imx6sx-gpr.c
diff --git a/drivers/soc/imx/Makefile b/drivers/soc/imx/Makefile
index a28c44a1f16a..9840d4c41015 100644
--- a/drivers/soc/imx/Makefile
+++ b/drivers/soc/imx/Makefile
@@ -4,6 +4,7 @@ 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_SOC_IMX6SX) += imx6sx-gpr.o
obj-$(CONFIG_SOC_IMX8M) += soc-imx8m.o
obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8m-blk-ctrl.o
obj-$(CONFIG_IMX8M_BLK_CTRL) += imx8mp-blk-ctrl.o
diff --git a/drivers/soc/imx/imx6sx-gpr.c b/drivers/soc/imx/imx6sx-gpr.c
new file mode 100644
index 000000000000..7684acbe43ff
--- /dev/null
+++ b/drivers/soc/imx/imx6sx-gpr.c
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+
+static int imx6sx_gpr_probe(struct platform_device *pdev)
+{
+ return devm_of_platform_populate(&pdev->dev);
+}
+
+static const struct of_device_id imx6sx_gpr_ids[] = {
+ { .compatible = "fsl,imx6sx-iomuxc-gpr" },
+ { }
+};
+MODULE_DEVICE_TABLE(of, imx6sx_gpr_ids);
+
+static struct platform_driver imx6sx_gpr_driver = {
+ .driver = {
+ .name = "imx6sx_gpr",
+ .of_match_table = imx6sx_gpr_ids,
+ },
+ .probe = imx6sx_gpr_probe,
+};
+module_platform_driver(imx6sx_gpr_driver);
+
+MODULE_AUTHOR("Fabio Estevam <festevam@denx.de>");
+MODULE_DESCRIPTION("NXP i.MX6SX GPR driver");
+MODULE_LICENSE("GPL");
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register
2023-05-19 11:29 ` [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register Fabio Estevam
@ 2023-05-19 12:24 ` Rob Herring
0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2023-05-19 12:24 UTC (permalink / raw)
To: Fabio Estevam
Cc: marex, conor+dt, shawnguo, devicetree, robh+dt, Fabio Estevam,
linux-arm-kernel, krzysztof.kozlowski+dt
On Fri, 19 May 2023 08:29:12 -0300, Fabio Estevam wrote:
> From: Fabio Estevam <festevam@denx.de>
>
> The i.MX6SX General Purpose Registers is a set of register that serves
> various different purposes and in particular, IOMUXC_GPR_GPR6, at
> offset 0x18, can be used to configure the LDB block.
>
> Signed-off-by: Fabio Estevam <festevam@denx.de>
> ---
> Changes since v2:
> - Newly introduced.
>
> .../bindings/soc/imx/fsl,imx6sx-gpr.yaml | 83 +++++++++++++++++++
> 1 file changed, 83 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.example.dtb: /example-0/iomuxc-gpr@20e4000: failed to match any schema with compatible: ['fsl,imx6sx-iomuxc-gpr', 'fsl,imx6q-iomuxc-gpr', 'syscon']
Documentation/devicetree/bindings/soc/imx/fsl,imx6sx-gpr.example.dtb: /example-0/iomuxc-gpr@20e4000: failed to match any schema with compatible: ['fsl,imx6sx-iomuxc-gpr', 'fsl,imx6q-iomuxc-gpr', 'syscon']
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230519112914.309669-2-festevam@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-05-19 12:24 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-19 11:29 [PATCH v3 1/4] dt-bindings: display: bridge: ldb: Adjust imx6sx entries Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 2/4] dt-bindings: soc: Add i.MX6SX General Purpose Register Fabio Estevam
2023-05-19 12:24 ` Rob Herring
2023-05-19 11:29 ` [PATCH v3 3/4] ARM: dts: imx6sx: Add LDB support Fabio Estevam
2023-05-19 11:29 ` [PATCH v3 4/4] soc: imx: imx6sx-gpr: Introduce a GPR driver Fabio Estevam
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).