[v7,7/9] reset: starfive: jh7110: Add StarFive STG/ISP/VOUT resets support

Message ID 20230712092007.31013-8-xingyu.wu@starfivetech.com
State New
Headers
Series Add STG/ISP/VOUT clock and reset drivers for StarFive JH7110 |

Commit Message

Xingyu Wu July 12, 2023, 9:20 a.m. UTC
  Add new struct members and auxiliary_device_id of resets to support
System-Top-Group, Image-Signal-Process and Video-Output on the StarFive
JH7110 SoC.

Reviewed-by: Hal Feng <hal.feng@starfivetech.com>
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
---
 .../reset/starfive/reset-starfive-jh7110.c    | 30 +++++++++++++++++++
 1 file changed, 30 insertions(+)
  

Comments

Emil Renner Berthing July 12, 2023, 6:09 p.m. UTC | #1
On Wed, 12 Jul 2023 at 11:22, Xingyu Wu <xingyu.wu@starfivetech.com> wrote:
>
> Add new struct members and auxiliary_device_id of resets to support
> System-Top-Group, Image-Signal-Process and Video-Output on the StarFive
> JH7110 SoC.
>
> Reviewed-by: Hal Feng <hal.feng@starfivetech.com>

Reviewed-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>

> Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
> ---
>  .../reset/starfive/reset-starfive-jh7110.c    | 30 +++++++++++++++++++
>  1 file changed, 30 insertions(+)
>
> diff --git a/drivers/reset/starfive/reset-starfive-jh7110.c b/drivers/reset/starfive/reset-starfive-jh7110.c
> index 2d26ae95c8cc..29a43f0f2ad6 100644
> --- a/drivers/reset/starfive/reset-starfive-jh7110.c
> +++ b/drivers/reset/starfive/reset-starfive-jh7110.c
> @@ -31,6 +31,24 @@ static const struct jh7110_reset_info jh7110_aon_info = {
>         .status_offset = 0x3C,
>  };
>
> +static const struct jh7110_reset_info jh7110_stg_info = {
> +       .nr_resets = JH7110_STGRST_END,
> +       .assert_offset = 0x74,
> +       .status_offset = 0x78,
> +};
> +
> +static const struct jh7110_reset_info jh7110_isp_info = {
> +       .nr_resets = JH7110_ISPRST_END,
> +       .assert_offset = 0x38,
> +       .status_offset = 0x3C,
> +};
> +
> +static const struct jh7110_reset_info jh7110_vout_info = {
> +       .nr_resets = JH7110_VOUTRST_END,
> +       .assert_offset = 0x48,
> +       .status_offset = 0x4C,
> +};
> +
>  static int jh7110_reset_probe(struct auxiliary_device *adev,
>                               const struct auxiliary_device_id *id)
>  {
> @@ -58,6 +76,18 @@ static const struct auxiliary_device_id jh7110_reset_ids[] = {
>                 .name = "clk_starfive_jh7110_sys.rst-aon",
>                 .driver_data = (kernel_ulong_t)&jh7110_aon_info,
>         },
> +       {
> +               .name = "clk_starfive_jh7110_sys.rst-stg",
> +               .driver_data = (kernel_ulong_t)&jh7110_stg_info,
> +       },
> +       {
> +               .name = "clk_starfive_jh7110_sys.rst-isp",
> +               .driver_data = (kernel_ulong_t)&jh7110_isp_info,
> +       },
> +       {
> +               .name = "clk_starfive_jh7110_sys.rst-vo",
> +               .driver_data = (kernel_ulong_t)&jh7110_vout_info,
> +       },
>         { /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(auxiliary, jh7110_reset_ids);
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
  

Patch

diff --git a/drivers/reset/starfive/reset-starfive-jh7110.c b/drivers/reset/starfive/reset-starfive-jh7110.c
index 2d26ae95c8cc..29a43f0f2ad6 100644
--- a/drivers/reset/starfive/reset-starfive-jh7110.c
+++ b/drivers/reset/starfive/reset-starfive-jh7110.c
@@ -31,6 +31,24 @@  static const struct jh7110_reset_info jh7110_aon_info = {
 	.status_offset = 0x3C,
 };
 
+static const struct jh7110_reset_info jh7110_stg_info = {
+	.nr_resets = JH7110_STGRST_END,
+	.assert_offset = 0x74,
+	.status_offset = 0x78,
+};
+
+static const struct jh7110_reset_info jh7110_isp_info = {
+	.nr_resets = JH7110_ISPRST_END,
+	.assert_offset = 0x38,
+	.status_offset = 0x3C,
+};
+
+static const struct jh7110_reset_info jh7110_vout_info = {
+	.nr_resets = JH7110_VOUTRST_END,
+	.assert_offset = 0x48,
+	.status_offset = 0x4C,
+};
+
 static int jh7110_reset_probe(struct auxiliary_device *adev,
 			      const struct auxiliary_device_id *id)
 {
@@ -58,6 +76,18 @@  static const struct auxiliary_device_id jh7110_reset_ids[] = {
 		.name = "clk_starfive_jh7110_sys.rst-aon",
 		.driver_data = (kernel_ulong_t)&jh7110_aon_info,
 	},
+	{
+		.name = "clk_starfive_jh7110_sys.rst-stg",
+		.driver_data = (kernel_ulong_t)&jh7110_stg_info,
+	},
+	{
+		.name = "clk_starfive_jh7110_sys.rst-isp",
+		.driver_data = (kernel_ulong_t)&jh7110_isp_info,
+	},
+	{
+		.name = "clk_starfive_jh7110_sys.rst-vo",
+		.driver_data = (kernel_ulong_t)&jh7110_vout_info,
+	},
 	{ /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(auxiliary, jh7110_reset_ids);