[RFC,13/16] dt-bindings: clock: Add StarFive JH8100 Always-On clock and reset generator
Commit Message
Add bindings for the Always-On clock and reset generator (AONCRG) on
JH8100 SoC.
Signed-off-by: Sia Jee Heng <jeeheng.sia@starfivetech.com>
Reviewed-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
---
.../clock/starfive,jh8100-aoncrg.yaml | 74 +++++++++++++++++++
.../dt-bindings/clock/starfive,jh8100-crg.h | 67 +++++++++++++++++
.../dt-bindings/reset/starfive,jh8100-crg.h | 16 ++++
3 files changed, 157 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/starfive,jh8100-aoncrg.yaml
Comments
On 26/12/2023 06:38, Sia Jee Heng wrote:
> Add bindings for the Always-On clock and reset generator (AONCRG) on
> JH8100 SoC.
>
> Signed-off-by: Sia Jee Heng <jeeheng.sia@starfivetech.com>
> Reviewed-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
> ---
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
This is an automated instruction, just in case, because many review tags
are being ignored. If you know the process, you can skip it (please do
not feel offended by me posting it here - no bad intentions intended).
If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new
versions, under or above your Signed-off-by tag. Tag is "received", when
provided in a message replied to you on the mailing list. Tools like b4
can help here. However, there's no need to repost patches *only* to add
the tags. The upstream maintainer will do that for tags received on the
version they apply.
https://elixir.bootlin.com/linux/v6.5-rc3/source/Documentation/process/submitting-patches.rst#L577
Best regards,
Krzysztof
new file mode 100644
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/starfive,jh8100-aoncrg.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive JH8100 Always-On Clock and Reset Generator
+
+maintainers:
+ - Sia Jee Heng <jeeheng.sia@starfivetech.com>
+
+properties:
+ compatible:
+ const: starfive,jh8100-aoncrg
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Main Oscillator (24 MHz)
+ - description: GMAC0 RMII func
+ - description: GMAC0 RGMII func
+ - description: AON 125MHz clock
+ - description: AON 2000MHz clock
+ - description: AON 200MHz clock
+ - description: AON 667MHz clock
+ - description: RTC clock
+
+ clock-names:
+ items:
+ - const: osc
+ - const: gmac0-rmii-func
+ - const: gmac0-rgmii-func
+ - const: aon125
+ - const: aon2000
+ - const: aon200
+ - const: aon667
+ - const: rtc
+
+ '#clock-cells':
+ const: 1
+ description:
+ See <dt-bindings/clock/starfive,jh8100-crg.h> for valid indices.
+
+ '#reset-cells':
+ const: 1
+ description:
+ See <dt-bindings/reset/starfive,jh8100-crg.h> for valid indices.
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - '#clock-cells'
+ - '#reset-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/starfive,jh8100-crg.h>
+
+ clock-controller@1f310000 {
+ compatible = "starfive,jh8100-aoncrg";
+ reg = <0x1f310000 0x10000>;
+ clocks = <&osc>, <&gmac0_rmii_func>, <&gmac0_rgmii_func>, <&aon125>,
+ <&aon2000>, <&aon200>, <&aon667>, <&rtc>;
+ clock-names = "osc", "gmac0-rmii-func", "gmac0-rgmii-func", "aon125",
+ "aon2000", "aon200", "aon667", "rtc";
+ #clock-cells = <1>;
+ #reset-cells = <1>;
+ };
@@ -351,4 +351,71 @@
#define JH8100_SWCLK_JPEG_ICG_EN 8
#define JH8100_SWCLK_VDEC_ICG_EN 9
+/* AONCRG clocks */
+#define JH8100_AONCLK_GMAC0_RMII_REFIN 0
+#define JH8100_AONCLK_GMAC0_RGMII_RXIN 1
+#define JH8100_AONCLK_GMAC0_GTXCLK 2
+#define JH8100_AONCLK_AON_1000 3
+#define JH8100_AONCLK_AON_400 4
+#define JH8100_AONCLK_AON_400_POSTOSC 5
+#define JH8100_AONCLK_AON_500 6
+#define JH8100_AONCLK_AON_500_POSTOSC 7
+#define JH8100_AONCLK_XSPI_PHY 8
+#define JH8100_AONCLK_AON_100 9
+#define JH8100_AONCLK_AON_100_POSTOSC 10
+#define JH8100_AONCLK_AON_50_POSTOSC 11
+#define JH8100_AONCLK_DDR50_POSTOCC_ICG 12
+#define JH8100_AONCLK_DDR100_POSTOCC_ICG 13
+#define JH8100_AONCLK_PUFRT_APB 14
+#define JH8100_AONCLK_RTC_HMS_APB 15
+#define JH8100_AONCLK_RTC_INTERNAL 16
+#define JH8100_AONCLK_RTC_HMS_OSC32K 17
+#define JH8100_AONCLK_RTC_HMS_CAL 18
+#define JH8100_AONCLK_GMAC0_AXI128_AHB 19
+#define JH8100_AONCLK_GMAC0_AXI128_MSTRCLK 20
+#define JH8100_AONCLK_GMAC0_AXI128_AXI 21
+#define JH8100_AONCLK_GMAC0_RMII_RTX 22
+#define JH8100_AONCLK_GMAC0_AXI128_TX 23
+#define JH8100_AONCLK_GMAC0_AXI128_TX_INV 24
+#define JH8100_AONCLK_GMAC0_AXI128_RX 25
+#define JH8100_AONCLK_GMAC0_AXI128_RX_INV 26
+#define JH8100_AONCLK_GMAC0_GTXC 27
+#define JH8100_AONCLK_XSPI_AXI 28
+#define JH8100_AONCLK_XSPI_APB 29
+#define JH8100_AONCLK_XSPI_XSPI_PHY 30
+#define JH8100_AONCLK_TVSENSOR_PCLK 31
+#define JH8100_AONCLK_TVSENSOR_TSADC 32
+#define JH8100_AONCLK_TVSENSOR_BG 33
+#define JH8100_AONCLK_MEU_PCLK_AP 34
+#define JH8100_AONCLK_MEU_PCLK_SCP 35
+#define JH8100_AONCLK_MEU_MEM_AXI 36
+#define JH8100_AONCLK_AXIMEM_128B_ACLK 37
+#define JH8100_AONCLK_APB2BISR_APB 38
+#define JH8100_AONCLK_APB2BISR_BISR 39
+#define JH8100_AONCLK_EMMC_S_PCLK 40
+#define JH8100_AONCLK_EMMC_MSTRCLK 41
+#define JH8100_AONCLK_EMMC 42
+#define JH8100_AONCLK_EMMC_SDMCLK 43
+#define JH8100_AONCLK_EMMC_SDPHY_PCLK 44
+#define JH8100_AONCLK_SDIO0_PCLK 45
+#define JH8100_AONCLK_SDIO0_MSTRCLK 46
+#define JH8100_AONCLK_SDIO0 47
+#define JH8100_AONCLK_SDIO0_SDMCLK 48
+#define JH8100_AONCLK_SDIO0_SDPHY_PCLK 49
+#define JH8100_AONCLK_HCLK 50
+#define JH8100_AONCLK_ACLK 51
+#define JH8100_AONCLK_PERF_MSTRCLK 52
+#define JH8100_AONCLK_PERF_SLVCLK 53
+#define JH8100_AONCLK_GCLK0 54
+#define JH8100_AONCLK_GCLK_OSC 55
+#define JH8100_AONCLK_RTC_ICG_EN 56
+#define JH8100_AONCLK_GMAC0_ICG_EN 57
+#define JH8100_AONCLK_XSPI_ICG_EN 58
+#define JH8100_AONCLK_TVSENSOR0_ICG_EN 59
+#define JH8100_AONCLK_MEU_ICG_EN 60
+#define JH8100_AONCLK_APB2BISR_ICG_EN 61
+#define JH8100_AONCLK_EMMC_ICG_EN 62
+#define JH8100_AONCLK_SDIO0_ICG_EN 63
+#define JH8100_AONCLK_TOP_ICG_EN 64
+
#endif /* __DT_BINDINGS_CLOCK_STARFIVE_JH8100_H__ */
@@ -99,4 +99,20 @@
#define JH8100_SWRST_VC9000D 2
#define JH8100_SWRST_DDR_TVSENSOR 3
+/*
+ * AONCRG resets: assert0
+ */
+#define JH8100_AONRST_AON_IOMUX_PRESETN 0
+#define JH8100_AONRST_RTC 1
+#define JH8100_AONRST_GMAC0 2
+#define JH8100_AONRST_XSPI 3
+#define JH8100_AONRST_TVSENSOR 4
+#define JH8100_AONRST_MEU 5
+#define JH8100_AONRST_AXIMEM_128B_ARESET 6
+#define JH8100_AONRST_DFT_APB2BISR_APB 7
+#define JH8100_AONRST_SDIO0 8
+#define JH8100_AONRST_EMMC 9
+#define JH8100_AONRST_TOP 10
+#define JH8100_AONRST_IRQ_CTRL 11
+
#endif /* __DT_BINDINGS_RESET_STARFIVE_JH8100_H__ */