2020-12-10 10:14:33

by Martin Kepplinger

[permalink] [raw]
Subject: [PATCH v3 0/6] imx8mq: updates for the interconnect fabric

revision history:
v3: (thanks Krysztof and Georgi)
* drop the defconfig cycling patch and fix the interconnect enable config
* add the noc node to imx8mq only and use correct properties
* add missing signed-off-by

v2: (thanks Lucas)
* reorder and clean up defconfig changes
* use "dram" for the interconnect path name and document it
* https://lore.kernel.org/linux-arm-kernel/[email protected]/T/#t

v1:
* link: https://lore.kernel.org/linux-arm-kernel/[email protected]/T/

thanks,
martin

Leonard Crestez (1):
arm64: dts: imx8mq: Add NOC node

Martin Kepplinger (5):
arm64: dts: imx8mq: Add interconnect provider property
arm64: dts: imx8mq: Add interconnect for lcdif
dt-bindings: mxsfb: Add interconnect bindings for LCDIF path
interconnect: imx8mq: Use icc_sync_state
arm64: defconfig: Enable interconnect for imx8mq

.../devicetree/bindings/display/mxsfb.txt | 6 +++++
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 26 +++++++++++++++++++
arch/arm64/configs/defconfig | 2 ++
drivers/interconnect/imx/imx8mq.c | 2 ++
4 files changed, 36 insertions(+)

--
2.20.1


2020-12-10 10:15:16

by Martin Kepplinger

[permalink] [raw]
Subject: [PATCH v3 4/6] dt-bindings: mxsfb: Add interconnect bindings for LCDIF path

Add optional interconnect properties for the dram path requests.

Signed-off-by: Martin Kepplinger <[email protected]>
---
Documentation/devicetree/bindings/display/mxsfb.txt | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/mxsfb.txt b/Documentation/devicetree/bindings/display/mxsfb.txt
index c985871c46b3..d494a2674290 100644
--- a/Documentation/devicetree/bindings/display/mxsfb.txt
+++ b/Documentation/devicetree/bindings/display/mxsfb.txt
@@ -15,6 +15,12 @@ Required properties:
- "pix" for the LCDIF block clock
- (MX6SX-only) "axi", "disp_axi" for the bus interface clock

+Optional properties:
+- interconnects : interconnect path specifier for LCDIF according to
+ Documentation/devicetree/bindings/interconnect/interconnect.txt.
+- interconnect-names: the name describing the interconnect path.
+ Should be "dram" for i.MX8MQ.
+
Required sub-nodes:
- port: The connection to an encoder chip.

--
2.20.1

2020-12-10 10:15:47

by Martin Kepplinger

[permalink] [raw]
Subject: [PATCH v3 5/6] interconnect: imx8mq: Use icc_sync_state

Add the icc_sync_state callback to notify the framework when consumers
are probed and the bandwidth doesn't have to be kept at maximum anymore.

Signed-off-by: Martin Kepplinger <[email protected]>
Suggested-by: Georgi Djakov <[email protected]>
---
drivers/interconnect/imx/imx8mq.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/interconnect/imx/imx8mq.c b/drivers/interconnect/imx/imx8mq.c
index ba43a15aefec..d7768d3c6d8a 100644
--- a/drivers/interconnect/imx/imx8mq.c
+++ b/drivers/interconnect/imx/imx8mq.c
@@ -7,6 +7,7 @@

#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/interconnect-provider.h>
#include <dt-bindings/interconnect/imx8mq.h>

#include "imx.h"
@@ -94,6 +95,7 @@ static struct platform_driver imx8mq_icc_driver = {
.remove = imx8mq_icc_remove,
.driver = {
.name = "imx8mq-interconnect",
+ .sync_state = icc_sync_state,
},
};

--
2.20.1

2020-12-10 10:16:09

by Martin Kepplinger

[permalink] [raw]
Subject: [PATCH v3 6/6] arm64: defconfig: Enable interconnect for imx8mq

Enable INTERCONNECT_IMX8MQ in order to make interconnect more widely
available.

Signed-off-by: Martin Kepplinger <[email protected]>
---
arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index c8ca76751a34..f25748b0fa95 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1074,6 +1074,8 @@ CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIM_QCOM_NGD_CTRL=m
CONFIG_MUX_MMIO=y
CONFIG_INTERCONNECT=y
+CONFIG_INTERCONNECT_IMX=m
+CONFIG_INTERCONNECT_IMX8MQ=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT_QCOM_MSM8916=m
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
--
2.20.1

2020-12-10 10:16:26

by Martin Kepplinger

[permalink] [raw]
Subject: [PATCH v3 3/6] arm64: dts: imx8mq: Add interconnect for lcdif

Add interconnect ports for lcdif to set bus capabilities.

Signed-off-by: Martin Kepplinger <[email protected]>
---
arch/arm64/boot/dts/freescale/imx8mq.dtsi | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 3617b7238952..7c4b68bda6fa 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -11,6 +11,7 @@
#include "dt-bindings/input/input.h"
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/interconnect/imx8mq.h>
#include "imx8mq-pinfunc.h"

/ {
@@ -522,6 +523,8 @@
<&clk IMX8MQ_VIDEO_PLL1>,
<&clk IMX8MQ_VIDEO_PLL1_OUT>;
assigned-clock-rates = <0>, <0>, <0>, <594000000>;
+ interconnects = <&noc IMX8MQ_ICM_LCDIF &noc IMX8MQ_ICS_DRAM>;
+ interconnect-names = "dram";
status = "disabled";

port@0 {
--
2.20.1

2021-01-04 14:58:41

by Georgi Djakov

[permalink] [raw]
Subject: Re: [PATCH v3 3/6] arm64: dts: imx8mq: Add interconnect for lcdif

On 12/10/20 12:09, Martin Kepplinger wrote:
> Add interconnect ports for lcdif to set bus capabilities.
>
> Signed-off-by: Martin Kepplinger <[email protected]>
> ---
> arch/arm64/boot/dts/freescale/imx8mq.dtsi | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> index 3617b7238952..7c4b68bda6fa 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
> @@ -11,6 +11,7 @@
> #include "dt-bindings/input/input.h"
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> #include <dt-bindings/thermal/thermal.h>
> +#include <dt-bindings/interconnect/imx8mq.h>
> #include "imx8mq-pinfunc.h"
>
> / {
> @@ -522,6 +523,8 @@
> <&clk IMX8MQ_VIDEO_PLL1>,
> <&clk IMX8MQ_VIDEO_PLL1_OUT>;
> assigned-clock-rates = <0>, <0>, <0>, <594000000>;
> + interconnects = <&noc IMX8MQ_ICM_LCDIF &noc IMX8MQ_ICS_DRAM>;
> + interconnect-names = "dram";
> status = "disabled";
>
> port@0 {
>

Nit: IMO, the dt-bindings patch (4/6) should come before this one - first
document the DT properties and then use them. Otherwise looks good to me.

Thanks,
Georgi

2021-01-04 15:00:25

by Georgi Djakov

[permalink] [raw]
Subject: Re: [PATCH v3 6/6] arm64: defconfig: Enable interconnect for imx8mq

On 12/10/20 12:09, Martin Kepplinger wrote:
> Enable INTERCONNECT_IMX8MQ in order to make interconnect more widely
> available.
>
> Signed-off-by: Martin Kepplinger <[email protected]>

Acked-by: Georgi Djakov <[email protected]>

> ---
> arch/arm64/configs/defconfig | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index c8ca76751a34..f25748b0fa95 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -1074,6 +1074,8 @@ CONFIG_SLIM_QCOM_CTRL=m
> CONFIG_SLIM_QCOM_NGD_CTRL=m
> CONFIG_MUX_MMIO=y
> CONFIG_INTERCONNECT=y
> +CONFIG_INTERCONNECT_IMX=m
> +CONFIG_INTERCONNECT_IMX8MQ=m
> CONFIG_INTERCONNECT_QCOM=y
> CONFIG_INTERCONNECT_QCOM_MSM8916=m
> CONFIG_INTERCONNECT_QCOM_OSM_L3=m
>