Re: [PATCH 1/2] dt-bindings: reset: Updated binding for Versal-NET reset driver

From: Conor Dooley
Date: Mon Jul 17 2023 - 14:40:21 EST


On Mon, Jul 17, 2023 at 04:53:47PM +0530, Piyush Mehta wrote:
> Added documentation and Versal-NET reset indices to describe about
> Versal-Net reset driver bindings.
>
> In Versal-NET all reset indices includes Class, SubClass, Type, Index
> information whereas class refers to clock, reset, power etc.,
> Underlying firmware in Versal have such classification and expects
> the ID to be this way.
> [13:0] - Index bits
> [19:14] - Type bits
> [25:20] - SubClass bits
> [31:26] - Class bits.

Riight.. I'm not sure that describing these as "indices" is really all
that valid, given only 13:0 are actually the index.
I'd be inclined to say that the type/class/subclass stuff should not be
part of the dt-bindings, and instead looked up inside the driver
depending on the index.

Hopefully Rob or Krzysztof can comment further.

Thanks,
Conor.

>
> Signed-off-by: Piyush Mehta <piyush.mehta@xxxxxxx>
> ---
> .../bindings/reset/xlnx,zynqmp-reset.yaml | 4 +
> .../reset/xlnx-versal-net-resets.h | 127 ++++++++++++++++++
> 2 files changed, 131 insertions(+)
> create mode 100644 include/dt-bindings/reset/xlnx-versal-net-resets.h
>
> diff --git a/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.yaml b/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.yaml
> index 0d50f6a54af3..b996fc1d4e53 100644
> --- a/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.yaml
> +++ b/Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.yaml
> @@ -27,11 +27,15 @@ description: |
> For list of all valid reset indices for Versal
> <dt-bindings/reset/xlnx-versal-resets.h>
>
> + For list of all valid reset indices for Versal-NET
> + <dt-bindings/reset/xlnx-versal-net-resets.h>
> +
> properties:
> compatible:
> enum:
> - xlnx,zynqmp-reset
> - xlnx,versal-reset
> + - xlnx,versal-net-reset
>
> "#reset-cells":
> const: 1
> diff --git a/include/dt-bindings/reset/xlnx-versal-net-resets.h b/include/dt-bindings/reset/xlnx-versal-net-resets.h
> new file mode 100644
> index 000000000000..b3e7d5e4c33e
> --- /dev/null
> +++ b/include/dt-bindings/reset/xlnx-versal-net-resets.h
> @@ -0,0 +1,127 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Copyright (C) 2023 Advanced Micro Devices, Inc. All Rights Reserved.
> + */
> +
> +#ifndef _DT_BINDINGS_VERSAL_NET_RESETS_H
> +#define _DT_BINDINGS_VERSAL_NET_RESETS_H
> +
> +#define PM_RST_PMC_POR (0xc30c001U)
> +#define PM_RST_PMC (0xc410002U)
> +#define PM_RST_PS_POR (0xc30c003U)
> +#define PM_RST_PL_POR (0xc30c004U)
> +#define PM_RST_NOC_POR (0xc30c005U)
> +#define PM_RST_PS_SRST (0xc41000aU)
> +#define PM_RST_PL_SRST (0xc41000bU)
> +#define PM_RST_NOC (0xc41000cU)
> +#define PM_RST_NPI (0xc41000dU)
> +#define PM_RST_SYS_RST_1 (0xc41000eU)
> +#define PM_RST_SYS_RST_2 (0xc41000fU)
> +#define PM_RST_SYS_RST_3 (0xc410010U)
> +#define PM_RST_PL0 (0xc410012U)
> +#define PM_RST_PL1 (0xc410013U)
> +#define PM_RST_PL2 (0xc410014U)
> +#define PM_RST_PL3 (0xc410015U)
> +#define PM_RST_ACPU_GIC (0xc41001aU)
> +#define PM_RST_ADMA (0xc410026U)
> +#define PM_RST_OCM (0xc410028U)
> +#define PM_RST_IPI (0xc41002aU)
> +#define PM_RST_QSPI (0xc10402dU)
> +#define PM_RST_OSPI (0xc10402eU)
> +#define PM_RST_SDIO_0 (0xc10402fU)
> +#define PM_RST_SDIO_1 (0xc104030U)
> +#define PM_RST_GPIO_PMC (0xc104032U)
> +#define PM_RST_GEM_0 (0xc104033U)
> +#define PM_RST_GEM_1 (0xc104034U)
> +#define PM_RST_USB_0 (0xc104036U)
> +#define PM_RST_UART_0 (0xc104037U)
> +#define PM_RST_UART_1 (0xc104038U)
> +#define PM_RST_SPI_0 (0xc104039U)
> +#define PM_RST_SPI_1 (0xc10403aU)
> +#define PM_RST_CAN_FD_0 (0xc10403bU)
> +#define PM_RST_CAN_FD_1 (0xc10403cU)
> +#define PM_RST_GPIO_LPD (0xc10403fU)
> +#define PM_RST_TTC_0 (0xc104040U)
> +#define PM_RST_GPIO_LPD (0xc10403fU)
> +#define PM_RST_TTC_0 (0xc104040U)
> +#define PM_RST_TTC_1 (0xc104041U)
> +#define PM_RST_TTC_2 (0xc104042U)
> +#define PM_RST_TTC_3 (0xc104043U)
> +#define PM_RST_WWDT (0xC410079U)
> +#define PM_RST_SYS_1 (0xC41007AU)
> +#define PM_RST_SYS_3 (0xC41007BU)
> +#define PM_RST_SYS_2 (0xC41007CU)
> +#define PM_RST_I2C (0xC410085U)
> +#define PM_RST_FPD_SWDT_2 (0xC41008AU)
> +#define PM_RST_FPD_SWDT_1 (0xC41008CU)
> +#define PM_RST_APU3_CORE1_WARM (0xC514099U)
> +#define PM_RST_APU3_CORE3_COLD (0xC61809AU)
> +#define PM_RST_APU3_CORE0_COLD (0xC61809BU)
> +#define PM_RST_APU3_CORE1_COLD (0xC61809CU)
> +#define PM_RST_APU3_CLUSTER_COLD (0xC61809DU)
> +#define PM_RST_APU3_CORE0_WARM (0xC51409EU)
> +#define PM_RST_APU3_CLUSTER_COLD (0xC61809DU)
> +#define PM_RST_APU3_CORE0_WARM (0xC51409EU)
> +#define PM_RST_APU3_CORE2_COLD (0xC61809FU)
> +#define PM_RST_APU3_CORE2_WARM (0xC5140A0U)
> +#define PM_RST_APU3_CORE3_WARM (0xC5140A1U)
> +#define PM_RST_APU3_CLUSTER_WARM (0xC5140A2U)
> +#define PM_RST_FPD_SWDT_3 (0xC4100A3U)
> +#define PM_RST_APU1_CORE1_WARM (0xC5140A4U)
> +#define PM_RST_APU1_CORE3_COLD (0xC6180A5U)
> +#define PM_RST_APU1_CORE0_COLD (0xC6180A6U)
> +#define PM_RST_APU1_CORE1_COLD (0xC6180A7U)
> +#define PM_RST_APU1_CLUSTER_COLD (0xC6180A8U)
> +#define PM_RST_APU1_CORE0_WARM (0xC5140A9U)
> +#define PM_RST_APU1_CORE2_COLD (0xC6180AAU)
> +#define PM_RST_APU1_CORE2_WARM (0xC5140ABU)
> +#define PM_RST_APU1_CORE3_WARM (0xC5140ACU)
> +#define PM_RST_APU1_CLUSTER_WARM (0xC5140ADU)
> +#define PM_RST_APU0_CORE1_WARM (0xC5140AFU)
> +#define PM_RST_APU0_CORE3_COLD (0xC6180B0U)
> +#define PM_RST_APU0_CORE0_COLD (0xC6180B1U)
> +#define PM_RST_APU0_CORE1_COLD (0xC6180B2U)
> +#define PM_RST_APU0_CLUSTER_COLD (0xC6180B3U)
> +#define PM_RST_APU0_CORE0_WARM (0xC5140B4U)
> +#define PM_RST_APU0_CORE2_COLD (0xC6180B5U)
> +#define PM_RST_APU0_CORE2_WARM (0xC5140B6U)
> +#define PM_RST_APU0_CORE3_WARM (0xC5140B7U)
> +#define PM_RST_APU0_CLUSTER_WARM (0xC5140B8U)
> +#define PM_RST_FPD_SWDT_0 (0xC4100B9U)
> +#define PM_RST_APU2_CORE1_WARM (0xC5140BAU)
> +#define PM_RST_APU2_CORE3_COLD (0xC6180BBU)
> +#define PM_RST_APU2_CORE0_COLD (0xC6180BCU)
> +#define PM_RST_APU2_CORE1_COLD (0xC6180BDU)
> +#define PM_RST_APU2_CORE0_COLD (0xC6180BCU)
> +#define PM_RST_APU2_CORE1_COLD (0xC6180BDU)
> +#define PM_RST_APU2_CLUSTER_COLD (0xC6180BEU)
> +#define PM_RST_APU2_CORE0_WARM (0xC5140BFU)
> +#define PM_RST_APU2_CORE2_COLD (0xC6180C0U)
> +#define PM_RST_APU2_CORE2_WARM (0xC5140C1U)
> +#define PM_RST_APU2_CORE3_WARM (0xC5140C2U)
> +#define PM_RST_APU2_CLUSTER_WARM (0xC5140C3U)
> +#define PM_RST_USB_1 (0xC1040C6U)
> +#define PM_RST_SWDT_1 (0xC4100C7U)
> +#define PM_RST_SWDT_0 (0xC4100C8U)
> +#define PM_RST_RPU_A_GD (0xC4100C9U)
> +#define PM_RST_RPU_B_GD (0xC4100CAU)
> +#define PM_RST_RPU_CORE0A (0xC4100CBU)
> +#define PM_RST_RPU_CORE0A_POR (0xC30C0CCU)
> +#define PM_RST_RPU_CORE0B_POR (0xC30C0CDU)
> +#define PM_RST_RPU_A_GD_TOP (0xC4100CEU)
> +#define PM_RST_RPU_CORE1B (0xC4100CFU)
> +#define PM_RST_RPU_B_TOPRESET (0xC4100D0U)
> +#define PM_RST_RPU_CORE1B_POR (0xC30C0D1U)
> +#define PM_RST_RPU_CORE1A (0xC4100D2U)
> +#define PM_RST_RPU_B_GD_TOP (0xC4100D3U)
> +#define PM_RST_RPU_A_TOPRESET (0xC4100D4U)
> +#define PM_RST_RPU_B_DBGRST (0xC2080D5U)
> +#define PM_RST_RPU_A_DCLS_TOPRESET (0xC4100D6U)
> +#define PM_RST_RPU_CORE1A_POR (0xC30C0D7U)
> +#define PM_RST_RPU_B_DCLS_TOPRESET (0xC4100D8U)
> +#define PM_RST_RPU_A_DBGRST (0xC2080D9U)
> +#define PM_RST_RPU_CORE0B (0xC4100DAU)
> +#define PM_RST_I3C_1 (0xC4100DFU)
> +#define PM_RST_I3C_0 (0xC4100E0U)
> +
> +#endif
> --
> 2.25.1
>

Attachment: signature.asc
Description: PGP signature