All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] Support for the NPU in Vim3
@ 2022-11-25 11:19 ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Christian Gmeiner, Daniel Vetter, David Airlie,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:DRM DRIVERS FOR VIVANTE GPU IP,
	moderated list:DRM DRIVERS FOR VIVANTE GPU IP, Jerome Brunet,
	Kevin Hilman, Krzysztof Kozlowski,
	open list:ARM/Amlogic Meson SoC support,
	moderated list:ARM/Amlogic Meson SoC support, open list,
	Lucas Stach, Martin Blumenstingl, Neil Armstrong, Philipp Zabel,
	Rob Herring, Russell King

Hi,

This series adds support for the Verisilicon VIPNano-QI NPU in the A311D
as in the VIM3 board.

The IP is very closeley based on previous Vivante GPUs, so the etnaviv
driver works basically unchanged.

Regards,

Tomeu

Tomeu Vizoso (6):
  dt-bindings: reset: meson-g12a: Add missing NNA reset
  dt-bindings: power: Add NNA power domain
  soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  arm64: dts: Add DT node for the VIPNano-QI on the A311D
  drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055

 .../boot/dts/amlogic/meson-g12-common.dtsi    | 15 +++++++--
 .../amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 +++
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c        | 31 +++++++++++++++++++
 drivers/soc/amlogic/meson-ee-pwrc.c           | 17 ++++++++++
 include/dt-bindings/power/meson-g12a-power.h  |  1 +
 .../reset/amlogic,meson-g12a-reset.h          |  4 ++-
 6 files changed, 69 insertions(+), 3 deletions(-)

-- 
2.38.1


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

* [PATCH 0/6] Support for the NPU in Vim3
@ 2022-11-25 11:19 ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Krzysztof Kozlowski, Tomeu Vizoso, Neil Armstrong,
	Martin Blumenstingl, Kevin Hilman,
	moderated list:DRM DRIVERS FOR VIVANTE GPU IP,
	open list:DRM DRIVERS FOR VIVANTE GPU IP, open list, Rob Herring,
	Russell King, open list:ARM/Amlogic Meson SoC support,
	moderated list:ARM/Amlogic Meson SoC support, Jerome Brunet

Hi,

This series adds support for the Verisilicon VIPNano-QI NPU in the A311D
as in the VIM3 board.

The IP is very closeley based on previous Vivante GPUs, so the etnaviv
driver works basically unchanged.

Regards,

Tomeu

Tomeu Vizoso (6):
  dt-bindings: reset: meson-g12a: Add missing NNA reset
  dt-bindings: power: Add NNA power domain
  soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  arm64: dts: Add DT node for the VIPNano-QI on the A311D
  drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055

 .../boot/dts/amlogic/meson-g12-common.dtsi    | 15 +++++++--
 .../amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 +++
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c        | 31 +++++++++++++++++++
 drivers/soc/amlogic/meson-ee-pwrc.c           | 17 ++++++++++
 include/dt-bindings/power/meson-g12a-power.h  |  1 +
 .../reset/amlogic,meson-g12a-reset.h          |  4 ++-
 6 files changed, 69 insertions(+), 3 deletions(-)

-- 
2.38.1


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

* [PATCH 0/6] Support for the NPU in Vim3
@ 2022-11-25 11:19 ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Christian Gmeiner, Daniel Vetter, David Airlie,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:DRM DRIVERS FOR VIVANTE GPU IP,
	moderated list:DRM DRIVERS FOR VIVANTE GPU IP, Jerome Brunet,
	Kevin Hilman, Krzysztof Kozlowski,
	open list:ARM/Amlogic Meson SoC support,
	moderated list:ARM/Amlogic Meson SoC support, open list,
	Lucas Stach, Martin Blumenstingl, Neil Armstrong, Philipp Zabel,
	Rob Herring, Russell King

Hi,

This series adds support for the Verisilicon VIPNano-QI NPU in the A311D
as in the VIM3 board.

The IP is very closeley based on previous Vivante GPUs, so the etnaviv
driver works basically unchanged.

Regards,

Tomeu

Tomeu Vizoso (6):
  dt-bindings: reset: meson-g12a: Add missing NNA reset
  dt-bindings: power: Add NNA power domain
  soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  arm64: dts: Add DT node for the VIPNano-QI on the A311D
  drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055

 .../boot/dts/amlogic/meson-g12-common.dtsi    | 15 +++++++--
 .../amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 +++
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c        | 31 +++++++++++++++++++
 drivers/soc/amlogic/meson-ee-pwrc.c           | 17 ++++++++++
 include/dt-bindings/power/meson-g12a-power.h  |  1 +
 .../reset/amlogic,meson-g12a-reset.h          |  4 ++-
 6 files changed, 69 insertions(+), 3 deletions(-)

-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 0/6] Support for the NPU in Vim3
@ 2022-11-25 11:19 ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Christian Gmeiner, Daniel Vetter, David Airlie,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	open list:DRM DRIVERS FOR VIVANTE GPU IP,
	moderated list:DRM DRIVERS FOR VIVANTE GPU IP, Jerome Brunet,
	Kevin Hilman, Krzysztof Kozlowski,
	open list:ARM/Amlogic Meson SoC support,
	moderated list:ARM/Amlogic Meson SoC support, open list,
	Lucas Stach, Martin Blumenstingl, Neil Armstrong, Philipp Zabel,
	Rob Herring, Russell King

Hi,

This series adds support for the Verisilicon VIPNano-QI NPU in the A311D
as in the VIM3 board.

The IP is very closeley based on previous Vivante GPUs, so the etnaviv
driver works basically unchanged.

Regards,

Tomeu

Tomeu Vizoso (6):
  dt-bindings: reset: meson-g12a: Add missing NNA reset
  dt-bindings: power: Add NNA power domain
  soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  arm64: dts: Add DT node for the VIPNano-QI on the A311D
  drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055

 .../boot/dts/amlogic/meson-g12-common.dtsi    | 15 +++++++--
 .../amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 +++
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c        | 31 +++++++++++++++++++
 drivers/soc/amlogic/meson-ee-pwrc.c           | 17 ++++++++++
 include/dt-bindings/power/meson-g12a-power.h  |  1 +
 .../reset/amlogic,meson-g12a-reset.h          |  4 ++-
 6 files changed, 69 insertions(+), 3 deletions(-)

-- 
2.38.1


_______________________________________________
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] 33+ messages in thread

* [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
  2022-11-25 11:19 ` Tomeu Vizoso
  (?)
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Philipp Zabel, Rob Herring, Krzysztof Kozlowski,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Doesn't appear in the TRM I have, but it is used by the downstream
galcore driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
index 6d487c5eba2c..45f6b8a951d0 100644
--- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
+++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
@@ -69,7 +69,9 @@
 #define RESET_PARSER_FETCH		72
 #define RESET_CTL			73
 #define RESET_PARSER_TOP		74
-/*					75-77	*/
+/*					75	*/
+#define RESET_NNA			76
+/*					77	*/
 #define RESET_DVALIN			78
 #define RESET_HDMITX			79
 /*					80-95	*/
-- 
2.38.1


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

* [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Philipp Zabel, Rob Herring, Krzysztof Kozlowski,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Doesn't appear in the TRM I have, but it is used by the downstream
galcore driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
index 6d487c5eba2c..45f6b8a951d0 100644
--- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
+++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
@@ -69,7 +69,9 @@
 #define RESET_PARSER_FETCH		72
 #define RESET_CTL			73
 #define RESET_PARSER_TOP		74
-/*					75-77	*/
+/*					75	*/
+#define RESET_NNA			76
+/*					77	*/
 #define RESET_DVALIN			78
 #define RESET_HDMITX			79
 /*					80-95	*/
-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Philipp Zabel, Rob Herring, Krzysztof Kozlowski,
	Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Doesn't appear in the TRM I have, but it is used by the downstream
galcore driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
index 6d487c5eba2c..45f6b8a951d0 100644
--- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
+++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
@@ -69,7 +69,9 @@
 #define RESET_PARSER_FETCH		72
 #define RESET_CTL			73
 #define RESET_PARSER_TOP		74
-/*					75-77	*/
+/*					75	*/
+#define RESET_NNA			76
+/*					77	*/
 #define RESET_DVALIN			78
 #define RESET_HDMITX			79
 /*					80-95	*/
-- 
2.38.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 2/6] dt-bindings: power: Add NNA power domain
  2022-11-25 11:19 ` Tomeu Vizoso
  (?)
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/power/meson-g12a-power.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
index bb5e67a842de..93b03bdd60b7 100644
--- a/include/dt-bindings/power/meson-g12a-power.h
+++ b/include/dt-bindings/power/meson-g12a-power.h
@@ -9,5 +9,6 @@
 
 #define PWRC_G12A_VPU_ID		0
 #define PWRC_G12A_ETH_ID		1
+#define PWRC_G12A_NNA_ID		2
 
 #endif
-- 
2.38.1


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

* [PATCH 2/6] dt-bindings: power: Add NNA power domain
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/power/meson-g12a-power.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
index bb5e67a842de..93b03bdd60b7 100644
--- a/include/dt-bindings/power/meson-g12a-power.h
+++ b/include/dt-bindings/power/meson-g12a-power.h
@@ -9,5 +9,6 @@
 
 #define PWRC_G12A_VPU_ID		0
 #define PWRC_G12A_ETH_ID		1
+#define PWRC_G12A_NNA_ID		2
 
 #endif
-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 2/6] dt-bindings: power: Add NNA power domain
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 include/dt-bindings/power/meson-g12a-power.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
index bb5e67a842de..93b03bdd60b7 100644
--- a/include/dt-bindings/power/meson-g12a-power.h
+++ b/include/dt-bindings/power/meson-g12a-power.h
@@ -9,5 +9,6 @@
 
 #define PWRC_G12A_VPU_ID		0
 #define PWRC_G12A_ETH_ID		1
+#define PWRC_G12A_NNA_ID		2
 
 #endif
-- 
2.38.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  2022-11-25 11:19 ` Tomeu Vizoso
  (?)
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on power initialization sequence in downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
index dd5f2a13ceb5..925cfaf50d11 100644
--- a/drivers/soc/amlogic/meson-ee-pwrc.c
+++ b/drivers/soc/amlogic/meson-ee-pwrc.c
@@ -46,6 +46,9 @@
 #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
 #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
 
+#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
+#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
+
 struct meson_ee_pwrc;
 struct meson_ee_pwrc_domain;
 
@@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
 
+static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
+		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
+		.sleep_mask = BIT(16) | BIT(17),		\
+		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
+		.iso_mask = BIT(16) | BIT(17), 			\
+	};
+
 /* Memory PD Domains */
 
 #define VPU_MEMPD(__reg)					\
@@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
 	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
 };
 
+static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
+	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
+	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },
+};
+
 #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
 	{								\
 		.name = __name,						\
@@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
 	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
 				     pwrc_ee_is_powered_off, 11, 2),
 	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
+	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
+				    pwrc_ee_is_powered_off),
 };
 
 static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {
-- 
2.38.1


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

* [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on power initialization sequence in downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
index dd5f2a13ceb5..925cfaf50d11 100644
--- a/drivers/soc/amlogic/meson-ee-pwrc.c
+++ b/drivers/soc/amlogic/meson-ee-pwrc.c
@@ -46,6 +46,9 @@
 #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
 #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
 
+#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
+#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
+
 struct meson_ee_pwrc;
 struct meson_ee_pwrc_domain;
 
@@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
 
+static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
+		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
+		.sleep_mask = BIT(16) | BIT(17),		\
+		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
+		.iso_mask = BIT(16) | BIT(17), 			\
+	};
+
 /* Memory PD Domains */
 
 #define VPU_MEMPD(__reg)					\
@@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
 	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
 };
 
+static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
+	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
+	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },
+};
+
 #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
 	{								\
 		.name = __name,						\
@@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
 	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
 				     pwrc_ee_is_powered_off, 11, 2),
 	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
+	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
+				    pwrc_ee_is_powered_off),
 };
 
 static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {
-- 
2.38.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Neil Armstrong, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on power initialization sequence in downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
index dd5f2a13ceb5..925cfaf50d11 100644
--- a/drivers/soc/amlogic/meson-ee-pwrc.c
+++ b/drivers/soc/amlogic/meson-ee-pwrc.c
@@ -46,6 +46,9 @@
 #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
 #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
 
+#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
+#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
+
 struct meson_ee_pwrc;
 struct meson_ee_pwrc_domain;
 
@@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
 static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
 
+static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
+		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
+		.sleep_mask = BIT(16) | BIT(17),		\
+		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
+		.iso_mask = BIT(16) | BIT(17), 			\
+	};
+
 /* Memory PD Domains */
 
 #define VPU_MEMPD(__reg)					\
@@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
 	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
 };
 
+static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
+	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
+	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },
+};
+
 #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
 	{								\
 		.name = __name,						\
@@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
 	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
 				     pwrc_ee_is_powered_off, 11, 2),
 	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
+	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
+				    pwrc_ee_is_powered_off),
 };
 
 static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {
-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  2022-11-25 11:19 ` Tomeu Vizoso
  (?)
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on the power sequence in the downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 45947c1031c4..fa96fddf4633 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -1625,10 +1625,11 @@ pwrc: power-controller {
 							 <&reset RESET_VDAC>,
 							 <&reset RESET_VDI6>,
 							 <&reset RESET_VENCL>,
-							 <&reset RESET_VID_LOCK>;
+							 <&reset RESET_VID_LOCK>,
+							 <&reset RESET_NNA>;
 						reset-names = "viu", "venc", "vcbus", "bt656",
 							      "rdma", "venci", "vencp", "vdac",
-							      "vdi6", "vencl", "vid_lock";
+							      "vdi6", "vencl", "vid_lock", "nna";
 						clocks = <&clkc CLKID_VPU>,
 							 <&clkc CLKID_VAPB>;
 						clock-names = "vpu", "vapb";
-- 
2.38.1


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

* [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on the power sequence in the downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 45947c1031c4..fa96fddf4633 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -1625,10 +1625,11 @@ pwrc: power-controller {
 							 <&reset RESET_VDAC>,
 							 <&reset RESET_VDI6>,
 							 <&reset RESET_VENCL>,
-							 <&reset RESET_VID_LOCK>;
+							 <&reset RESET_VID_LOCK>,
+							 <&reset RESET_NNA>;
 						reset-names = "viu", "venc", "vcbus", "bt656",
 							      "rdma", "venci", "vencp", "vdac",
-							      "vdi6", "vencl", "vid_lock";
+							      "vdi6", "vencl", "vid_lock", "nna";
 						clocks = <&clkc CLKID_VPU>,
 							 <&clkc CLKID_VAPB>;
 						clock-names = "vpu", "vapb";
-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

Based on the power sequence in the downstream driver.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index 45947c1031c4..fa96fddf4633 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -1625,10 +1625,11 @@ pwrc: power-controller {
 							 <&reset RESET_VDAC>,
 							 <&reset RESET_VDI6>,
 							 <&reset RESET_VENCL>,
-							 <&reset RESET_VID_LOCK>;
+							 <&reset RESET_VID_LOCK>,
+							 <&reset RESET_NNA>;
 						reset-names = "viu", "venc", "vcbus", "bt656",
 							      "rdma", "venci", "vencp", "vdac",
-							      "vdi6", "vencl", "vid_lock";
+							      "vdi6", "vencl", "vid_lock", "nna";
 						clocks = <&clkc CLKID_VPU>,
 							 <&clkc CLKID_VAPB>;
 						clock-names = "vpu", "vapb";
-- 
2.38.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 5/6] arm64: dts: Add DT node for the VIPNano-QI on the A311D
  2022-11-25 11:19 ` Tomeu Vizoso
  (?)
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

This "NPU" is very similar to the Vivante GPUs and Etnaviv works well
with it with just a few small changes.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi      | 10 ++++++++++
 .../boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index fa96fddf4633..13c79676a356 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
 #include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/power/meson-g12a-power.h>
 
 / {
 	interrupt-parent = <&gic>;
@@ -2485,4 +2486,13 @@ xtal: xtal-clk {
 		#clock-cells = <0>;
 	};
 
+	npu: npu@ff100000 {
+		compatible = "vivante,gc";
+		reg = <0x0 0xff100000 0x0 0x20000>;
+		interrupts = <0 147 4>;
+		clocks = <&clkc CLKID_NNA_CORE_CLK>,
+			<&clkc CLKID_NNA_AXI_CLK>;
+		clock-names = "core", "bus";
+		power-domains = <&pwrc PWRC_G12A_NNA_ID>;
+	};
 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
index 124a80901084..73f3d87dcefd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
@@ -15,6 +15,10 @@ / {
 	compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b";
 };
 
+&npu {
+	status = "okay";
+};
+
 /*
  * The VIM3 on-board  MCU can mux the PCIe/USB3.0 shared differential
  * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
-- 
2.38.1


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

* [PATCH 5/6] arm64: dts: Add DT node for the VIPNano-QI on the A311D
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

This "NPU" is very similar to the Vivante GPUs and Etnaviv works well
with it with just a few small changes.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi      | 10 ++++++++++
 .../boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index fa96fddf4633..13c79676a356 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
 #include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/power/meson-g12a-power.h>
 
 / {
 	interrupt-parent = <&gic>;
@@ -2485,4 +2486,13 @@ xtal: xtal-clk {
 		#clock-cells = <0>;
 	};
 
+	npu: npu@ff100000 {
+		compatible = "vivante,gc";
+		reg = <0x0 0xff100000 0x0 0x20000>;
+		interrupts = <0 147 4>;
+		clocks = <&clkc CLKID_NNA_CORE_CLK>,
+			<&clkc CLKID_NNA_AXI_CLK>;
+		clock-names = "core", "bus";
+		power-domains = <&pwrc PWRC_G12A_NNA_ID>;
+	};
 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
index 124a80901084..73f3d87dcefd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
@@ -15,6 +15,10 @@ / {
 	compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b";
 };
 
+&npu {
+	status = "okay";
+};
+
 /*
  * The VIM3 on-board  MCU can mux the PCIe/USB3.0 shared differential
  * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
-- 
2.38.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

* [PATCH 5/6] arm64: dts: Add DT node for the VIPNano-QI on the A311D
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Rob Herring, Krzysztof Kozlowski, Neil Armstrong,
	Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

This "NPU" is very similar to the Vivante GPUs and Etnaviv works well
with it with just a few small changes.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi      | 10 ++++++++++
 .../boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts  |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
index fa96fddf4633..13c79676a356 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
 #include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/power/meson-g12a-power.h>
 
 / {
 	interrupt-parent = <&gic>;
@@ -2485,4 +2486,13 @@ xtal: xtal-clk {
 		#clock-cells = <0>;
 	};
 
+	npu: npu@ff100000 {
+		compatible = "vivante,gc";
+		reg = <0x0 0xff100000 0x0 0x20000>;
+		interrupts = <0 147 4>;
+		clocks = <&clkc CLKID_NNA_CORE_CLK>,
+			<&clkc CLKID_NNA_AXI_CLK>;
+		clock-names = "core", "bus";
+		power-domains = <&pwrc PWRC_G12A_NNA_ID>;
+	};
 };
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
index 124a80901084..73f3d87dcefd 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dts
@@ -15,6 +15,10 @@ / {
 	compatible = "khadas,vim3", "amlogic,a311d", "amlogic,g12b";
 };
 
+&npu {
+	status = "okay";
+};
+
 /*
  * The VIM3 on-board  MCU can mux the PCIe/USB3.0 shared differential
  * lines using a FUSB340TMX USB 3.1 SuperSpeed Data Switch between
-- 
2.38.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* [PATCH 6/6] drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055
  2022-11-25 11:19 ` Tomeu Vizoso
@ 2022-11-25 11:19   ` Tomeu Vizoso
  -1 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, moderated list:DRM DRIVERS FOR VIVANTE GPU IP,
	open list:DRM DRIVERS FOR VIVANTE GPU IP, open list,
	Russell King

This is a compute-only module marketed towards AI and vision
acceleration. This particular version can be found on the Amlogic A311D
SoC.

The feature bits are taken from the Khadas downstream kernel driver
6.4.4.3.310723AAA.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 31 ++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
index f2fc645c7956..3f6fd9a3c088 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
@@ -130,6 +130,37 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
 		.minor_features10 = 0x90044250,
 		.minor_features11 = 0x00000024,
 	},
+	{
+		.model = 0x8000,
+		.revision = 0x7120,
+		.product_id = 0x45080009,
+		.customer_id = 0x88,
+		.eco_id = 0,
+		.stream_count = 8,
+		.register_max = 64,
+		.thread_count = 256,
+		.shader_core_count = 1,
+		.vertex_cache_size = 16,
+		.vertex_output_buffer_size = 1024,
+		.pixel_pipes = 1,
+		.instruction_count = 512,
+		.num_constants = 320,
+		.buffer_size = 0,
+		.varyings_count = 16,
+		.features = 0xe0287cac,
+		.minor_features0 = 0xc1799eff,
+		.minor_features1 = 0xfefbfadb,
+		.minor_features2 = 0xeb9d6fbf,
+		.minor_features3 = 0xedfffced,
+		.minor_features4 = 0xd30dafc7,
+		.minor_features5 = 0x7b5ac333,
+		.minor_features6 = 0xfc8ee200,
+		.minor_features7 = 0x03fffa6f,
+		.minor_features8 = 0x00fe0ef0,
+		.minor_features9 = 0x0088003c,
+		.minor_features10 = 0x108048c0,
+		.minor_features11 = 0x00000010,
+	},
 };
 
 bool etnaviv_fill_identity_from_hwdb(struct etnaviv_gpu *gpu)
-- 
2.38.1


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

* [PATCH 6/6] drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055
@ 2022-11-25 11:19   ` Tomeu Vizoso
  0 siblings, 0 replies; 33+ messages in thread
From: Tomeu Vizoso @ 2022-11-25 11:19 UTC (permalink / raw)
  Cc: Tomeu Vizoso, Lucas Stach, Russell King, Christian Gmeiner,
	David Airlie, Daniel Vetter,
	moderated list:DRM DRIVERS FOR VIVANTE GPU IP,
	open list:DRM DRIVERS FOR VIVANTE GPU IP, open list

This is a compute-only module marketed towards AI and vision
acceleration. This particular version can be found on the Amlogic A311D
SoC.

The feature bits are taken from the Khadas downstream kernel driver
6.4.4.3.310723AAA.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 31 ++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
index f2fc645c7956..3f6fd9a3c088 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
@@ -130,6 +130,37 @@ static const struct etnaviv_chip_identity etnaviv_chip_identities[] = {
 		.minor_features10 = 0x90044250,
 		.minor_features11 = 0x00000024,
 	},
+	{
+		.model = 0x8000,
+		.revision = 0x7120,
+		.product_id = 0x45080009,
+		.customer_id = 0x88,
+		.eco_id = 0,
+		.stream_count = 8,
+		.register_max = 64,
+		.thread_count = 256,
+		.shader_core_count = 1,
+		.vertex_cache_size = 16,
+		.vertex_output_buffer_size = 1024,
+		.pixel_pipes = 1,
+		.instruction_count = 512,
+		.num_constants = 320,
+		.buffer_size = 0,
+		.varyings_count = 16,
+		.features = 0xe0287cac,
+		.minor_features0 = 0xc1799eff,
+		.minor_features1 = 0xfefbfadb,
+		.minor_features2 = 0xeb9d6fbf,
+		.minor_features3 = 0xedfffced,
+		.minor_features4 = 0xd30dafc7,
+		.minor_features5 = 0x7b5ac333,
+		.minor_features6 = 0xfc8ee200,
+		.minor_features7 = 0x03fffa6f,
+		.minor_features8 = 0x00fe0ef0,
+		.minor_features9 = 0x0088003c,
+		.minor_features10 = 0x108048c0,
+		.minor_features11 = 0x00000010,
+	},
 };
 
 bool etnaviv_fill_identity_from_hwdb(struct etnaviv_gpu *gpu)
-- 
2.38.1


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

* Re: [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
  2022-11-25 11:19   ` Tomeu Vizoso
  (?)
@ 2022-11-25 12:54     ` Neil Armstrong
  -1 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Kevin Hilman,
	Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Doesn't appear in the TRM I have, but it is used by the downstream
> galcore driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> index 6d487c5eba2c..45f6b8a951d0 100644
> --- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> +++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> @@ -69,7 +69,9 @@
>   #define RESET_PARSER_FETCH		72
>   #define RESET_CTL			73
>   #define RESET_PARSER_TOP		74
> -/*					75-77	*/
> +/*					75	*/
> +#define RESET_NNA			76
> +/*					77	*/
>   #define RESET_DVALIN			78
>   #define RESET_HDMITX			79
>   /*					80-95	*/



Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

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

* Re: [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
@ 2022-11-25 12:54     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Kevin Hilman,
	Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Doesn't appear in the TRM I have, but it is used by the downstream
> galcore driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> index 6d487c5eba2c..45f6b8a951d0 100644
> --- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> +++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> @@ -69,7 +69,9 @@
>   #define RESET_PARSER_FETCH		72
>   #define RESET_CTL			73
>   #define RESET_PARSER_TOP		74
> -/*					75-77	*/
> +/*					75	*/
> +#define RESET_NNA			76
> +/*					77	*/
>   #define RESET_DVALIN			78
>   #define RESET_HDMITX			79
>   /*					80-95	*/



Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

_______________________________________________
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] 33+ messages in thread

* Re: [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset
@ 2022-11-25 12:54     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Kevin Hilman,
	Jerome Brunet, Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Doesn't appear in the TRM I have, but it is used by the downstream
> galcore driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/reset/amlogic,meson-g12a-reset.h | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> index 6d487c5eba2c..45f6b8a951d0 100644
> --- a/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> +++ b/include/dt-bindings/reset/amlogic,meson-g12a-reset.h
> @@ -69,7 +69,9 @@
>   #define RESET_PARSER_FETCH		72
>   #define RESET_CTL			73
>   #define RESET_PARSER_TOP		74
> -/*					75-77	*/
> +/*					75	*/
> +#define RESET_NNA			76
> +/*					77	*/
>   #define RESET_DVALIN			78
>   #define RESET_HDMITX			79
>   /*					80-95	*/



Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 2/6] dt-bindings: power: Add NNA power domain
  2022-11-25 11:19   ` Tomeu Vizoso
  (?)
@ 2022-11-25 12:54     ` Neil Armstrong
  -1 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/power/meson-g12a-power.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
> index bb5e67a842de..93b03bdd60b7 100644
> --- a/include/dt-bindings/power/meson-g12a-power.h
> +++ b/include/dt-bindings/power/meson-g12a-power.h
> @@ -9,5 +9,6 @@
>   
>   #define PWRC_G12A_VPU_ID		0
>   #define PWRC_G12A_ETH_ID		1
> +#define PWRC_G12A_NNA_ID		2
>   
>   #endif


Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

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

* Re: [PATCH 2/6] dt-bindings: power: Add NNA power domain
@ 2022-11-25 12:54     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/power/meson-g12a-power.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
> index bb5e67a842de..93b03bdd60b7 100644
> --- a/include/dt-bindings/power/meson-g12a-power.h
> +++ b/include/dt-bindings/power/meson-g12a-power.h
> @@ -9,5 +9,6 @@
>   
>   #define PWRC_G12A_VPU_ID		0
>   #define PWRC_G12A_ETH_ID		1
> +#define PWRC_G12A_NNA_ID		2
>   
>   #endif


Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

_______________________________________________
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] 33+ messages in thread

* Re: [PATCH 2/6] dt-bindings: power: Add NNA power domain
@ 2022-11-25 12:54     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:54 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   include/dt-bindings/power/meson-g12a-power.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/include/dt-bindings/power/meson-g12a-power.h b/include/dt-bindings/power/meson-g12a-power.h
> index bb5e67a842de..93b03bdd60b7 100644
> --- a/include/dt-bindings/power/meson-g12a-power.h
> +++ b/include/dt-bindings/power/meson-g12a-power.h
> @@ -9,5 +9,6 @@
>   
>   #define PWRC_G12A_VPU_ID		0
>   #define PWRC_G12A_ETH_ID		1
> +#define PWRC_G12A_NNA_ID		2
>   
>   #endif


Acked-by: Neil Armstrong <neil.armstrong@linaro.org>

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
  2022-11-25 11:19   ` Tomeu Vizoso
  (?)
@ 2022-11-25 12:59     ` Neil Armstrong
  -1 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:59 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on power initialization sequence in downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
> index dd5f2a13ceb5..925cfaf50d11 100644
> --- a/drivers/soc/amlogic/meson-ee-pwrc.c
> +++ b/drivers/soc/amlogic/meson-ee-pwrc.c
> @@ -46,6 +46,9 @@
>   #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
>   #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
>   
> +#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
> +#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
> +
>   struct meson_ee_pwrc;
>   struct meson_ee_pwrc_domain;
>   
> @@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
>   
> +static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
> +		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
> +		.sleep_mask = BIT(16) | BIT(17),		\
> +		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
> +		.iso_mask = BIT(16) | BIT(17), 			\
> +	};
> +
>   /* Memory PD Domains */
>   
>   #define VPU_MEMPD(__reg)					\
> @@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
>   	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
>   };
>   
> +static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
> +	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
> +	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },

Weird it's not 0xff like on SM1, I looked at the A311D Datasheet and
HHI_NANOQ_MEM_PD_REG0 is 31:0 so 0xffffffff is correct, but
HHI_NANOQ_MEM_PD_REG1 is 23:0 so 0xFFFFFF is the correct value.

Bur please replace with GENMASK(31, 0) and GENMASK(23, 0) to align with the
rest of the code.

> +};
> +
>   #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
>   	{								\
>   		.name = __name,						\
> @@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
>   	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
>   				     pwrc_ee_is_powered_off, 11, 2),
>   	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
> +	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
> +				    pwrc_ee_is_powered_off),
>   };
>   
>   static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {

With this fixed:

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>


Thanks,
Neil


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

* Re: [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
@ 2022-11-25 12:59     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:59 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on power initialization sequence in downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
> index dd5f2a13ceb5..925cfaf50d11 100644
> --- a/drivers/soc/amlogic/meson-ee-pwrc.c
> +++ b/drivers/soc/amlogic/meson-ee-pwrc.c
> @@ -46,6 +46,9 @@
>   #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
>   #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
>   
> +#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
> +#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
> +
>   struct meson_ee_pwrc;
>   struct meson_ee_pwrc_domain;
>   
> @@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
>   
> +static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
> +		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
> +		.sleep_mask = BIT(16) | BIT(17),		\
> +		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
> +		.iso_mask = BIT(16) | BIT(17), 			\
> +	};
> +
>   /* Memory PD Domains */
>   
>   #define VPU_MEMPD(__reg)					\
> @@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
>   	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
>   };
>   
> +static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
> +	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
> +	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },

Weird it's not 0xff like on SM1, I looked at the A311D Datasheet and
HHI_NANOQ_MEM_PD_REG0 is 31:0 so 0xffffffff is correct, but
HHI_NANOQ_MEM_PD_REG1 is 23:0 so 0xFFFFFF is the correct value.

Bur please replace with GENMASK(31, 0) and GENMASK(23, 0) to align with the
rest of the code.

> +};
> +
>   #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
>   	{								\
>   		.name = __name,						\
> @@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
>   	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
>   				     pwrc_ee_is_powered_off, 11, 2),
>   	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
> +	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
> +				    pwrc_ee_is_powered_off),
>   };
>   
>   static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {

With this fixed:

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>


Thanks,
Neil


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D
@ 2022-11-25 12:59     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 12:59 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on power initialization sequence in downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   drivers/soc/amlogic/meson-ee-pwrc.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/soc/amlogic/meson-ee-pwrc.c b/drivers/soc/amlogic/meson-ee-pwrc.c
> index dd5f2a13ceb5..925cfaf50d11 100644
> --- a/drivers/soc/amlogic/meson-ee-pwrc.c
> +++ b/drivers/soc/amlogic/meson-ee-pwrc.c
> @@ -46,6 +46,9 @@
>   #define HHI_NANOQ_MEM_PD_REG1		(0x47 << 2)
>   #define HHI_VPU_MEM_PD_REG2		(0x4d << 2)
>   
> +#define G12A_HHI_NANOQ_MEM_PD_REG0	(0x43 << 2)
> +#define G12A_HHI_NANOQ_MEM_PD_REG1	(0x44 << 2)
> +
>   struct meson_ee_pwrc;
>   struct meson_ee_pwrc_domain;
>   
> @@ -106,6 +109,13 @@ static struct meson_ee_pwrc_top_domain sm1_pwrc_usb = SM1_EE_PD(17);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_pci = SM1_EE_PD(18);
>   static struct meson_ee_pwrc_top_domain sm1_pwrc_ge2d = SM1_EE_PD(19);
>   
> +static struct meson_ee_pwrc_top_domain g12a_pwrc_nna = {	\
> +		.sleep_reg = GX_AO_RTI_GEN_PWR_SLEEP0, 		\
> +		.sleep_mask = BIT(16) | BIT(17),		\
> +		.iso_reg = GX_AO_RTI_GEN_PWR_ISO0, 		\
> +		.iso_mask = BIT(16) | BIT(17), 			\
> +	};
> +
>   /* Memory PD Domains */
>   
>   #define VPU_MEMPD(__reg)					\
> @@ -217,6 +227,11 @@ static struct meson_ee_pwrc_mem_domain sm1_pwrc_mem_audio[] = {
>   	{ HHI_AUDIO_MEM_PD_REG0, GENMASK(27, 26) },
>   };
>   
> +static struct meson_ee_pwrc_mem_domain g12a_pwrc_mem_nna[] = {
> +	{ G12A_HHI_NANOQ_MEM_PD_REG0, 0xffffffff },
> +	{ G12A_HHI_NANOQ_MEM_PD_REG1, 0xffffffff },

Weird it's not 0xff like on SM1, I looked at the A311D Datasheet and
HHI_NANOQ_MEM_PD_REG0 is 31:0 so 0xffffffff is correct, but
HHI_NANOQ_MEM_PD_REG1 is 23:0 so 0xFFFFFF is the correct value.

Bur please replace with GENMASK(31, 0) and GENMASK(23, 0) to align with the
rest of the code.

> +};
> +
>   #define VPU_PD(__name, __top_pd, __mem, __is_pwr_off, __resets, __clks)	\
>   	{								\
>   		.name = __name,						\
> @@ -253,6 +268,8 @@ static struct meson_ee_pwrc_domain_desc g12a_pwrc_domains[] = {
>   	[PWRC_G12A_VPU_ID]  = VPU_PD("VPU", &gx_pwrc_vpu, g12a_pwrc_mem_vpu,
>   				     pwrc_ee_is_powered_off, 11, 2),
>   	[PWRC_G12A_ETH_ID] = MEM_PD("ETH", meson_pwrc_mem_eth),
> +	[PWRC_G12A_NNA_ID] = TOP_PD("NNA", &g12a_pwrc_nna, g12a_pwrc_mem_nna,
> +				    pwrc_ee_is_powered_off),
>   };
>   
>   static struct meson_ee_pwrc_domain_desc gxbb_pwrc_domains[] = {

With this fixed:

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>


Thanks,
Neil


_______________________________________________
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] 33+ messages in thread

* Re: [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
  2022-11-25 11:19   ` Tomeu Vizoso
  (?)
@ 2022-11-25 13:00     ` Neil Armstrong
  -1 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 13:00 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on the power sequence in the downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> index 45947c1031c4..fa96fddf4633 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> @@ -1625,10 +1625,11 @@ pwrc: power-controller {
>   							 <&reset RESET_VDAC>,
>   							 <&reset RESET_VDI6>,
>   							 <&reset RESET_VENCL>,
> -							 <&reset RESET_VID_LOCK>;
> +							 <&reset RESET_VID_LOCK>,
> +							 <&reset RESET_NNA>;

I think this should go in the npu node instead, those are for the VPU power domain.

>   						reset-names = "viu", "venc", "vcbus", "bt656",
>   							      "rdma", "venci", "vencp", "vdac",
> -							      "vdi6", "vencl", "vid_lock";
> +							      "vdi6", "vencl", "vid_lock", "nna";
>   						clocks = <&clkc CLKID_VPU>,
>   							 <&clkc CLKID_VAPB>;
>   						clock-names = "vpu", "vapb";


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

* Re: [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
@ 2022-11-25 13:00     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 13:00 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on the power sequence in the downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> index 45947c1031c4..fa96fddf4633 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> @@ -1625,10 +1625,11 @@ pwrc: power-controller {
>   							 <&reset RESET_VDAC>,
>   							 <&reset RESET_VDI6>,
>   							 <&reset RESET_VENCL>,
> -							 <&reset RESET_VID_LOCK>;
> +							 <&reset RESET_VID_LOCK>,
> +							 <&reset RESET_NNA>;

I think this should go in the npu node instead, those are for the VPU power domain.

>   						reset-names = "viu", "venc", "vcbus", "bt656",
>   							      "rdma", "venci", "vencp", "vdac",
> -							      "vdi6", "vencl", "vid_lock";
> +							      "vdi6", "vencl", "vid_lock", "nna";
>   						clocks = <&clkc CLKID_VPU>,
>   							 <&clkc CLKID_VAPB>;
>   						clock-names = "vpu", "vapb";


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

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

* Re: [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc
@ 2022-11-25 13:00     ` Neil Armstrong
  0 siblings, 0 replies; 33+ messages in thread
From: Neil Armstrong @ 2022-11-25 13:00 UTC (permalink / raw)
  To: Tomeu Vizoso
  Cc: Rob Herring, Krzysztof Kozlowski, Kevin Hilman, Jerome Brunet,
	Martin Blumenstingl,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	moderated list:ARM/Amlogic Meson SoC support,
	open list:ARM/Amlogic Meson SoC support, open list

On 25/11/2022 12:19, Tomeu Vizoso wrote:
> Based on the power sequence in the downstream driver.
> 
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>   arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> index 45947c1031c4..fa96fddf4633 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
> @@ -1625,10 +1625,11 @@ pwrc: power-controller {
>   							 <&reset RESET_VDAC>,
>   							 <&reset RESET_VDI6>,
>   							 <&reset RESET_VENCL>,
> -							 <&reset RESET_VID_LOCK>;
> +							 <&reset RESET_VID_LOCK>,
> +							 <&reset RESET_NNA>;

I think this should go in the npu node instead, those are for the VPU power domain.

>   						reset-names = "viu", "venc", "vcbus", "bt656",
>   							      "rdma", "venci", "vencp", "vdac",
> -							      "vdi6", "vencl", "vid_lock";
> +							      "vdi6", "vencl", "vid_lock", "nna";
>   						clocks = <&clkc CLKID_VPU>,
>   							 <&clkc CLKID_VAPB>;
>   						clock-names = "vpu", "vapb";


_______________________________________________
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] 33+ messages in thread

end of thread, other threads:[~2022-11-25 13:01 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-25 11:19 [PATCH 0/6] Support for the NPU in Vim3 Tomeu Vizoso
2022-11-25 11:19 ` Tomeu Vizoso
2022-11-25 11:19 ` Tomeu Vizoso
2022-11-25 11:19 ` Tomeu Vizoso
2022-11-25 11:19 ` [PATCH 1/6] dt-bindings: reset: meson-g12a: Add missing NNA reset Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 12:54   ` Neil Armstrong
2022-11-25 12:54     ` Neil Armstrong
2022-11-25 12:54     ` Neil Armstrong
2022-11-25 11:19 ` [PATCH 2/6] dt-bindings: power: Add NNA power domain Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 12:54   ` Neil Armstrong
2022-11-25 12:54     ` Neil Armstrong
2022-11-25 12:54     ` Neil Armstrong
2022-11-25 11:19 ` [PATCH 3/6] soc: amlogic: meson-pwrc: Add NNA power domain for A311D Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 12:59   ` Neil Armstrong
2022-11-25 12:59     ` Neil Armstrong
2022-11-25 12:59     ` Neil Armstrong
2022-11-25 11:19 ` [PATCH 4/6] arm64: dts: meson-g12-common: Add reference to NNA reset to pwrc Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 13:00   ` Neil Armstrong
2022-11-25 13:00     ` Neil Armstrong
2022-11-25 13:00     ` Neil Armstrong
2022-11-25 11:19 ` [PATCH 5/6] arm64: dts: Add DT node for the VIPNano-QI on the A311D Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso
2022-11-25 11:19 ` [PATCH 6/6] drm/etnaviv: add HWDB entry for VIPNano-QI.7120.0055 Tomeu Vizoso
2022-11-25 11:19   ` Tomeu Vizoso

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.