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