summaryrefslogtreecommitdiff
path: root/arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h')
-rw-r--r--arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h814
1 files changed, 814 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h b/arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h
new file mode 100644
index 0000000000..9b37705bcb
--- /dev/null
+++ b/arch/riscv/include/asm/arch-jh7100/jh_module_reset_clkgen.h
@@ -0,0 +1,814 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/* Copyright (c) 2021 StarFive Technology Co., Ltd. */
+
+#ifndef _SFC_JH_MODULE_RESET_CLKGEN_H
+#define _SFC_JH_MODULE_RESET_CLKGEN_H
+
+#include <asm/arch/jh_iopad.h>
+
+#define jh_ptc_pwm_reset_clk_enable { \
+ _DISABLE_CLOCK_clk_pwm_apb_; \
+ _ASSERT_RESET_rstgen_rstn_pwm_apb_; \
+ _ENABLE_CLOCK_clk_pwm_apb_; \
+ _CLEAR_RESET_rstgen_rstn_pwm_apb_; \
+}
+
+#define jh_ptc_pwm_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_pwm_apb_; \
+ _ASSERT_RESET_rstgen_rstn_pwm_apb_; \
+}
+
+/* pwmdac reset and clkgen */
+#define jh_pwmdac_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_apb_pwmdac_; \
+ _ENABLE_CLOCK_clk_dac_mclk_; \
+ _SWITCH_CLOCK_clk_dac_mclk_SOURCE_clk_audio_12288_; \
+ _DIVIDE_CLOCK_clk_dac_mclk_(3); \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_pwmdac_; \
+}
+
+#define jh_pwmdac_reset_clk_disable { \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_pwmdac_; \
+ _DISABLE_CLOCK_clk_apb_pwmdac_; \
+}
+
+/* spdif reset and clkgen */
+#define jh_spdif_reset_clk_enable { \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_spdif_; \
+ _ENABLE_CLOCK_clk_spdif_; \
+ _ENABLE_CLOCK_clk_apb_spdif_; \
+}
+
+#define jh_spdif_reset_clk_disable { \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_spdif_; \
+ _DISABLE_CLOCK_clk_spdif_; \
+ _DISABLE_CLOCK_clk_apb_spdif_; \
+}
+
+/* pdm reset and clkgen */
+/*#define jh_pdm_reset_clk_enable { \
+ _DIVIDE_CLOCK_clk_cpu_core_(20) \
+ _ENABLE_CLOCK_clk_apb_pdm_; \
+ _ENABLE_CLOCK_clk_pdm_mclk_; \
+ _SWITCH_CLOCK_clk_pdm_mclk_SOURCE_clk_audio_src_; \
+ _DIVIDE_CLOCK_clk_pdm_mclk_(1); \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_pdm_; \
+ _DIVIDE_CLOCK_clk_pdm_mclk_(4); \
+}*/
+#define jh_pdm_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_apb_pdm_; \
+ _ENABLE_CLOCK_clk_pdm_mclk_; \
+ _SWITCH_CLOCK_clk_pdm_mclk_SOURCE_clk_audio_12288_; \
+ _DIVIDE_CLOCK_clk_pdm_mclk_(3); \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_pdm_; \
+}
+
+/* mclk 3MHz */
+
+
+#define jh_pdm_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_pdm_; \
+ _DISABLE_CLOCK_clk_pdm_mclk_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_pdm_; \
+}
+
+/* i2sadc clk and reset mclk-->bclk-->lrclk
+ * mclk锛� 12.288 MHz / 6 = 2.048 MHz
+ * bclk锛� mclk / 2 = 1.024 Khz
+ * lrclk锛� bclk / 64 = 16 KHz
+*/
+#define jh_i2sadc_reset_clk_enable { \
+ _SWITCH_CLOCK_clk_adc_mclk_SOURCE_clk_audio_12288_; \
+ _ENABLE_CLOCK_clk_adc_mclk_; \
+ _ENABLE_CLOCK_clk_apb_i2sadc_; \
+ _DIVIDE_CLOCK_clk_adc_mclk_(1); \
+ _SWITCH_CLOCK_clk_i2sadc_bclk_SOURCE_clk_adc_mclk_; \
+ _DIVIDE_CLOCK_clk_i2sadc_bclk_(1); \
+ _SWITCH_CLOCK_clk_i2sadc_bclk_SOURCE_clk_i2sadc_bclk_iopad_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_i2sadc_srst_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2sadc_; \
+}
+
+#define jh_i2sadc_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_i2sadc_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_i2sadc_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_i2sadc_srst_; \
+}
+
+/* i2sdac0 reset and clkgen mclk-->bclk-->lrclk
+ * mclk: 12.288 / 3 = 4.096 MHz
+ * bclk: mclk / 4 = 1.024 MHz
+ * lrclk:bclk / 64 = 16 KHz
+ */
+#define jh_i2sdac_reset_clk_enable { \
+ _SWITCH_CLOCK_clk_dac_mclk_SOURCE_clk_audio_12288_; \
+ _ENABLE_CLOCK_clk_dac_mclk_; \
+ _ENABLE_CLOCK_clk_apb_i2sdac_; \
+ _DIVIDE_CLOCK_clk_dac_mclk_(3); \
+ _SWITCH_CLOCK_clk_i2sdac_bclk_SOURCE_clk_dac_mclk_; \
+ _DIVIDE_CLOCK_clk_i2sdac_bclk_(4); \
+ _SWITCH_CLOCK_clk_i2sdac_lrclk_SOURCE_clk_i2sdac_bclk_; \
+ _DIVIDE_CLOCK_clk_i2sdac_lrclk_(64); \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2sdac_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_i2sdac_srst_; \
+}
+
+#define jh_i2sdac_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_i2sdac_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_i2sdac_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_i2sdac_srst_; \
+}
+
+/* i2s1 [i2sdac1] reset and clkgen mclk-->bclk-->lrclk
+ * mclk: 12.288 / 3 = 4.096 MHz
+ * bclk: mclk / 4 = 1.024 MHz
+ * lrclk:bclk / 64 = 16 KHz
+ */
+#define jh_i2s1_reset_clk_enable { \
+ _SWITCH_CLOCK_clk_i2s1_mclk_SOURCE_clk_audio_12288_; \
+ _ENABLE_CLOCK_clk_i2s1_mclk_; \
+ _DIVIDE_CLOCK_clk_i2s1_mclk_(3); \
+ _SWITCH_CLOCK_clk_i2s1_bclk_SOURCE_clk_i2s1_mclk_; \
+ _DIVIDE_CLOCK_clk_i2s1_bclk_(4); \
+ _SWITCH_CLOCK_clk_i2s1_lrclk_SOURCE_clk_i2s1_bclk_; \
+ _DIVIDE_CLOCK_clk_i2s1_lrclk_(16); \
+ _ENABLE_CLOCK_clk_apb_i2s1_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2s1_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_i2s1_srst_; \
+}
+
+#define jh_i2s1_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_i2s1_; \
+ _DISABLE_CLOCK_clk_i2s1_mclk_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_i2s1_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_i2s1_srst_; \
+}
+
+/* i2sdac16k reset and clkgen */
+#define jh_i2sdac16k_reset_clk_enable { \
+ _SWITCH_CLOCK_clk_dac_mclk_SOURCE_clk_audio_12288_; \
+ _ENABLE_CLOCK_clk_dac_mclk_; \
+ _DIVIDE_CLOCK_clk_dac_mclk_(6); \
+ _ENABLE_CLOCK_clk_apb_i2sdac16k_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2sdac16k_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_i2sdac16k_srst_; \
+}
+
+#define jh_i2sdac16k_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_i2sdac16k_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_i2sdac16k_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_i2sdac16k_srst_; \
+}
+
+/* i2svad reset and clkgen */
+#define jh_i2svad_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_apb_i2svad_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2svad_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_i2svad_srst_; \
+}
+
+#define jh_i2svad_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_apb_i2svad_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_apb_i2svad_; \
+ _ASSERT_RESET_audio_rst_gen_rstn_i2svad_srst_; \
+}
+
+
+/* musb reset and clkgen */
+#define jh_musb_reset_clk_enable { \
+ /*_ASSERT_RESET_rstn_ahb_usb_;*/ \
+}
+
+#define jh_musb_reset_clk_disable { \
+ /*_ASSERT_RESET_rstn_ahb_usb_;*/ \
+}
+
+#define jh_uart0_reset_clk_gpio_isp_enable { \
+ _ENABLE_CLOCK_clk_uart0_apb_; \
+ _ENABLE_CLOCK_clk_uart0_core_; \
+ _DIVIDE_CLOCK_clk_uart0_core_(8); \
+ _CLEAR_RESET_rstgen_rstn_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_apb_; \
+ SET_GPIO_uart0_pad_sin(FPGA_UART0_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_12_dout_uart0_pad_sout; \
+ SET_GPIO_12_doen_LOW; \
+}
+
+#define jh_uart0_reset_clk_gpio_misc_enable { \
+ _ENABLE_CLOCK_clk_uart0_apb_; \
+ _ENABLE_CLOCK_clk_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_apb_; \
+ SET_GPIO_uart0_pad_sin(FPGA_UART0_RXD); \
+ SET_GPIO_5_doen_HIGH; \
+ SET_GPIO_6_dout_uart0_pad_sout; \
+ SET_GPIO_6_doen_LOW; \
+}
+
+#define jh_uart0_reset_clk_gpio_evb_enable { \
+ _ENABLE_CLOCK_clk_uart0_apb_; \
+ _ENABLE_CLOCK_clk_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_apb_; \
+ SET_GPIO_uart0_pad_sin(FPGA_UART0_RXD); \
+ SET_GPIO_5_doen_HIGH; \
+ SET_GPIO_6_dout_uart0_pad_sout; \
+ SET_GPIO_6_doen_LOW; \
+}
+
+/*
+SET_GPIO_uart0_pad_ctsn(FPGA_UART0_CTSN); \
+SET_GPIO_uart0_pad_dcdn(-1); \
+SET_GPIO_uart0_pad_dsrn(-1); \
+SET_GPIO_uart0_pad_rin(-1); \
+SET_GPIO_7_doen_HIGH; \
+*/
+
+#define jh_uart0_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_uart0_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart0_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart0_core_; \
+}
+
+#define jh_uart1_reset_clk_gpio_isp_enable { \
+ _ENABLE_CLOCK_clk_uart1_apb_; \
+ _ENABLE_CLOCK_clk_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_apb_; \
+ SET_GPIO_12_dout_uart1_pad_sout; \
+ SET_GPIO_uart1_pad_sin(FPGA_UART1_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_12_doen_LOW; \
+}
+#if 1 //simon
+#define jh_uart1_reset_clk_gpio_misc_enable { \
+ _ENABLE_CLOCK_clk_uart1_apb_; \
+ _ENABLE_CLOCK_clk_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_apb_; \
+ SET_GPIO_6_dout_uart1_pad_sout; \
+ SET_GPIO_uart1_pad_sin(FPGA_UART1_RXD); \
+ SET_GPIO_5_doen_HIGH; \
+ SET_GPIO_6_doen_LOW; \
+}
+#else //hongya-vp6
+#define jh_uart1_reset_clk_gpio_misc_enable { \
+ _ENABLE_CLOCK_clk_uart1_apb_; \
+ _ENABLE_CLOCK_clk_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_apb_; \
+ SET_GPIO_uart1_pad_sin(FPGA_UART1_RXD); \
+ SET_GPIO_11_doen_HIGH; \
+ SET_GPIO_12_dout_uart1_pad_sout; \
+ SET_GPIO_12_doen_LOW; \
+ }
+
+#endif
+
+#define jh_uart1_reset_clk_gpio_evb_enable { \
+ _ENABLE_CLOCK_clk_uart1_apb_; \
+ _ENABLE_CLOCK_clk_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_apb_; \
+ SET_GPIO_10_dout_uart1_pad_sout; \
+ SET_GPIO_uart1_pad_sin(FPGA_UART1_RXD); \
+ SET_GPIO_9_doen_HIGH; \
+ SET_GPIO_10_doen_LOW; \
+}
+
+
+#define jh_uart1_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_uart1_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart1_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart1_core_; \
+}
+/*
+#define jh_uart2_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_uart2_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart2_apb_; \
+ _ASSERT_RESET_rstgen_rstn_uart2_core_; \
+}
+*/
+#define jh_uart2_reset_clk_gpio_isp_enable { \
+ jh_uart2_reset_clk_disable; \
+ _ENABLE_CLOCK_clk_uart2_apb_; \
+ _ENABLE_CLOCK_clk_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_apb_; \
+ SET_GPIO_uart2_pad_sin(FPGA_UART2_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_12_dout_uart2_pad_sout; \
+ SET_GPIO_12_doen_LOW; \
+}
+
+#define jh_uart2_reset_clk_gpio_misc_enable { \
+ jh_uart2_reset_clk_disable; \
+ _ENABLE_CLOCK_clk_uart2_apb_; \
+ _ENABLE_CLOCK_clk_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_apb_; \
+ SET_GPIO_uart2_pad_sin(FPGA_UART2_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_14_dout_uart2_pad_sout; \
+ SET_GPIO_14_doen_LOW; \
+}
+
+#define jh_uart2_reset_clk_gpio_evb_enable { \
+ jh_uart2_reset_clk_disable; \
+ _ENABLE_CLOCK_clk_uart2_apb_; \
+ _ENABLE_CLOCK_clk_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_apb_; \
+ SET_GPIO_uart2_pad_sin(FPGA_UART2_RXD); \
+ SET_GPIO_5_doen_HIGH; \
+ SET_GPIO_6_dout_uart2_pad_sout; \
+ SET_GPIO_6_doen_LOW; \
+}
+
+
+/* rtsn:11 ctsn:14 */
+#define jh_uart0_isp_4line { \
+ SET_GPIO_11_dout_uart0_pad_rtsn; \
+ SET_GPIO_11_doen_LOW; \
+ SET_GPIO_uart0_pad_ctsn(FPGA_UART0_CTSN); \
+ SET_GPIO_14_doen_HIGH; \
+}
+
+/* rtsn:8 ctsn:7 */
+#define jh_uart0_misc_4line { \
+ SET_GPIO_8_dout_uart0_pad_rtsn; \
+ SET_GPIO_8_doen_LOW; \
+ SET_GPIO_uart0_pad_ctsn(FPGA_UART0_CTSN); \
+ SET_GPIO_7_doen_HIGH; \
+}
+///SET_GPIO_uart0_pad_ctsn(-2); /* ZHUA XIN HAO */
+
+/* rtsn:49 ctsn:48 */
+#define jh_uart2_4line { \
+ SET_GPIO_49_doen_uart2_pad_rts_n; \
+ SET_GPIO_49_doen_LOW; \
+ SET_GPIO_uart2_pad_cts_n(FPGA_UART2_CTSN); \
+ SET_GPIO_48_doen_LOW; \
+}
+
+#define jh_uart2_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_uart2_apb_; \
+}
+
+#define jh_uart3_reset_clk_gpio_isp_enable { \
+ _ENABLE_CLOCK_clk_uart3_apb_; \
+ _ENABLE_CLOCK_clk_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_apb_; \
+ SET_GPIO_uart3_pad_sin(FPGA_UART3_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_12_dout_uart3_pad_sout; \
+ SET_GPIO_12_doen_LOW; \
+}
+
+#if 1 //simon
+#define jh_uart3_reset_clk_gpio_misc_enable { \
+ _ENABLE_CLOCK_clk_uart3_apb_; \
+ _ENABLE_CLOCK_clk_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_apb_; \
+ SET_GPIO_uart3_pad_sin(FPGA_UART2_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_14_dout_uart3_pad_sout; \
+ SET_GPIO_14_doen_LOW; \
+}
+#else //hongya
+#define jh_uart3_reset_clk_gpio_misc_enable { \
+ _ENABLE_CLOCK_clk_uart3_apb_; \
+ _ENABLE_CLOCK_clk_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_apb_; \
+ SET_GPIO_uart3_pad_sin(FPGA_UART3_RXD); \
+ SET_GPIO_11_doen_HIGH; \
+ SET_GPIO_12_dout_uart3_pad_sout; \
+ SET_GPIO_12_doen_LOW; \
+}
+#endif
+
+#define jh_uart3_reset_clk_gpio_evb_enable { \
+ _ENABLE_CLOCK_clk_uart3_apb_; \
+ _ENABLE_CLOCK_clk_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_apb_; \
+ SET_GPIO_uart3_pad_sin(FPGA_UART3_RXD); \
+ SET_GPIO_13_doen_HIGH; \
+ SET_GPIO_14_dout_uart3_pad_sout; \
+ SET_GPIO_14_doen_LOW; \
+}
+
+#define jh_uart3_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_uart3_apb_; \
+}
+
+
+#define jh_vdec_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_vdecbrg_mainclk_; \
+ _ENABLE_CLOCK_clk_vdec_apb_; \
+ _ENABLE_CLOCK_clk_vdec_axi_; \
+ _ENABLE_CLOCK_clk_vdec_bclk_; \
+ _ENABLE_CLOCK_clk_vdec_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_vdecbrg_main_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_apb_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_bclk_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_cclk_; \
+}
+
+/*
+///_SET_SYSCON_REG_SCFG_vdec_remap_bound_addr0(0); \
+///_SET_SYSCON_REG_SCFG_vdec_remap_offset_addr(0); \
+///_SET_SYSCON_REG_SCFG_vdec_remap_start_point(0); \
+*/
+
+#define jh_vdec_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_vdec_apb_; \
+ _DISABLE_CLOCK_clk_vdec_axi_; \
+ _DISABLE_CLOCK_clk_vdec_bclk_; \
+ _DISABLE_CLOCK_clk_vdec_cclk_; \
+ _ASSERT_RESET_rstgen_rstn_vdec_apb_; \
+ _ASSERT_RESET_rstgen_rstn_vdec_axi_; \
+ _ASSERT_RESET_rstgen_rstn_vdec_bclk_; \
+ _ASSERT_RESET_rstgen_rstn_vdec_cclk_; \
+}
+///_DISABLE_CLOCK_clk_vdecbrg_mainclk_;
+///_ASSERT_RESET_rstgen_rstn_vdecbrg_main_;
+
+
+#define jh_venc_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_venc_apb_; \
+ _DISABLE_CLOCK_clk_venc_axi_; \
+ _DISABLE_CLOCK_clk_venc_bclk_; \
+ _DISABLE_CLOCK_clk_venc_cclk_; \
+ _ASSERT_RESET_rstgen_rstn_venc_apb_; \
+ _ASSERT_RESET_rstgen_rstn_venc_axi_; \
+ _ASSERT_RESET_rstgen_rstn_venc_bclk_; \
+ _ASSERT_RESET_rstgen_rstn_venc_cclk_; \
+}
+
+//_DISABLE_CLOCK_clk_vencbrg_mainclk_;
+//_ASSERT_RESET_rstgen_rstn_vencbrg_main_;
+
+
+#define jh_venc_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_vencbrg_mainclk_; \
+ _ENABLE_CLOCK_clk_venc_apb_; \
+ _ENABLE_CLOCK_clk_venc_axi_; \
+ _ENABLE_CLOCK_clk_venc_bclk_; \
+ _ENABLE_CLOCK_clk_venc_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_vencbrg_main_; \
+ _CLEAR_RESET_rstgen_rstn_venc_apb_; \
+ _CLEAR_RESET_rstgen_rstn_venc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_venc_bclk_; \
+ _CLEAR_RESET_rstgen_rstn_venc_cclk_; \
+}
+
+#define jh_jpeg_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_jpeg_axi_; \
+ _ENABLE_CLOCK_clk_jpeg_cclk_; \
+ _ENABLE_CLOCK_clk_jpeg_apb_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_axi_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_apb_; \
+}
+
+#define jh_jpeg_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_jpeg_axi_; \
+ _DISABLE_CLOCK_clk_jpeg_cclk_; \
+ _DISABLE_CLOCK_clk_jpeg_apb_; \
+ _ASSERT_RESET_rstgen_rstn_jpeg_axi_; \
+ _ASSERT_RESET_rstgen_rstn_jpeg_cclk_; \
+ _ASSERT_RESET_rstgen_rstn_jpeg_apb_; \
+}
+/*
+///_SET_SYSCON_REG_SCFG_jpeg_remap_en();
+///_SET_SYSCON_REG_SCFG_jpeg_remap_start_point();
+///_SET_SYSCON_REG_SCFG_jpeg_remap_bound_addr0();
+*/
+
+#define jh_nbdla_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_dlaslv_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dlaslv_axi_; \
+ _ENABLE_CLOCK_clk_dla_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dla_axi_; \
+ _ENABLE_CLOCK_clk_nnenoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_nnenoc_axi_; \
+ _SET_SYSCON_REG_register16_SCFG_nbdla_clkgating_en(1); \
+ }
+
+//1: ENABLE; 0:DISABLE
+
+
+#define jh_nbdla_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_dlaslv_axi_; \
+ _ASSERT_RESET_rstgen_rstn_dlaslv_axi_; \
+ _DISABLE_CLOCK_clk_dla_axi_; \
+ _ASSERT_RESET_rstgen_rstn_dla_axi_; \
+ _DISABLE_CLOCK_clk_nnenoc_axi_; \
+ _ASSERT_RESET_rstgen_rstn_nnenoc_axi_; \
+ _SET_SYSCON_REG_register16_SCFG_nbdla_clkgating_en(0); \
+ }
+
+#define jh_trng_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_trng_apb_; \
+ _CLEAR_RESET_rstgen_rstn_trng_apb_; \
+}
+
+#define jh_trng_reset_clk_disable { \
+ _DISABLE_CLOCK_clk_trng_apb_; \
+ _ASSERT_RESET_rstgen_rstn_trng_apb_; \
+}
+
+#define jh_audio_reset_clk_enable { \
+ _ENABLE_CLOCK_clk_audio_root_; \
+ _ENABLE_CLOCK_clk_audio_src_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_bus_; \
+ _ENABLE_CLOCK_clk_apb_i2svad_; \
+ _CLEAR_RESET_audio_rst_gen_rstn_apb_i2svad_; \
+}
+
+#define jh_module_reset { \
+ jh_uart0_reset_clk_disable; \
+ jh_uart1_reset_clk_disable; \
+ jh_uart2_reset_clk_disable; \
+ jh_uart3_reset_clk_disable; \
+ jh_vdec_reset_clk_disable; \
+ jh_nbdla_reset_clk_disable; \
+ jh_i2sadc_reset_clk_disable; \
+ jh_jpeg_reset_clk_disable; \
+ jh_trng_reset_clk_disable; \
+}
+
+#if 0
+#define jh_module_reset { \
+ jh_i2sadc_reset_clk_disable; \
+ jh_i2sdac_reset_clk_disable; \
+ jh_i2sdac16k_reset_clk_disable; \
+ jh_i2s1_reset_clk_disable; \
+ jh_pdm_reset_clk_disable; \
+ jh_pcm_reset_clk_disable; \
+ jh_spdif_reset_clk_disable; \
+ jh_pwmdac_reset_clk_disable; \
+ jh_ptc_reset_clk_disable; \
+ jh_musb_reset_clk_disable; \
+ jh_uart0_reset_clk_disable; \
+ jh_uart1_reset_clk_disable; \
+ jh_uart2_reset_clk_disable; \
+ jh_uart3_reset_clk_disable; \
+}
+#endif
+
+#define jh_clkgen_enable { \
+ _ENABLE_CLOCK_clk_pll0_testout_; \
+ _ENABLE_CLOCK_clk_pll1_testout_; \
+ _ENABLE_CLOCK_clk_pll2_testout_; \
+ _ENABLE_CLOCK_clk_ahb0_bus_; \
+ _ENABLE_CLOCK_clk_apb1_bus_; \
+ _ENABLE_CLOCK_clk_ahb2_bus_; \
+ _ENABLE_CLOCK_clk_apb2_bus_; \
+ _ENABLE_CLOCK_clk_u74_core_; \
+ _ENABLE_CLOCK_clk_u74_axi_; \
+ _ENABLE_CLOCK_clk_u74rtc_toggle_; \
+ _ENABLE_CLOCK_clk_sgdma2p_axi_; \
+ _ENABLE_CLOCK_clk_dma2pnoc_axi_; \
+ _ENABLE_CLOCK_clk_sgdma2p_ahb_; \
+ _ENABLE_CLOCK_clk_dla_bus_; \
+ _ENABLE_CLOCK_clk_dla_axi_; \
+ _ENABLE_CLOCK_clk_dlanoc_axi_; \
+ _ENABLE_CLOCK_clk_dla_apb_; \
+ _ENABLE_CLOCK_clk_vp6_core_; \
+ _ENABLE_CLOCK_clk_vp6_axi_; \
+ _ENABLE_CLOCK_clk_vp6_apb_; \
+ _ENABLE_CLOCK_clk_vdec_axi_; \
+ _ENABLE_CLOCK_clk_vdecbrg_mainclk_; \
+ _ENABLE_CLOCK_clk_vdec_bclk_; \
+ _ENABLE_CLOCK_clk_vdec_cclk_; \
+ _ENABLE_CLOCK_clk_vdec_apb_; \
+ _ENABLE_CLOCK_clk_jpeg_axi_; \
+ _ENABLE_CLOCK_clk_jpeg_cclk_; \
+ _ENABLE_CLOCK_clk_jpeg_apb_; \
+ _ENABLE_CLOCK_clk_gc300_2x_; \
+ _ENABLE_CLOCK_clk_gc300_ahb_; \
+ _ENABLE_CLOCK_clk_gc300_axi_; \
+ _ENABLE_CLOCK_clk_jpcgc300_mainclk_; \
+ _ENABLE_CLOCK_clk_venc_axi_; \
+ _ENABLE_CLOCK_clk_vencbrg_mainclk_; \
+ _ENABLE_CLOCK_clk_venc_bclk_; \
+ _ENABLE_CLOCK_clk_venc_cclk_; \
+ _ENABLE_CLOCK_clk_venc_apb_; \
+ _ENABLE_CLOCK_clk_ddrc0_; \
+ _ENABLE_CLOCK_clk_ddrc1_; \
+ _ENABLE_CLOCK_clk_ddrphy_apb_; \
+ _ENABLE_CLOCK_clk_noc_rob_; \
+ _ENABLE_CLOCK_clk_noc_cog_; \
+ _ENABLE_CLOCK_clk_nne_ahb_; \
+ _ENABLE_CLOCK_clk_nne_axi_; \
+ _ENABLE_CLOCK_clk_nnenoc_axi_; \
+ _ENABLE_CLOCK_clk_dlaslv_axi_; \
+ _ENABLE_CLOCK_clk_dspx2c_axi_; \
+ _ENABLE_CLOCK_clk_hifi4_core_; \
+ _ENABLE_CLOCK_clk_hifi4_axi_; \
+ _ENABLE_CLOCK_clk_hifi4noc_axi_; \
+ _ENABLE_CLOCK_clk_sgdma1p_axi_; \
+ _ENABLE_CLOCK_clk_dma1p_axi_; \
+ _ENABLE_CLOCK_clk_x2c_axi_; \
+ _ENABLE_CLOCK_clk_usb_axi_; \
+ _ENABLE_CLOCK_clk_usbnoc_axi_; \
+ _ENABLE_CLOCK_clk_usbphy_125m_; \
+ _ENABLE_CLOCK_clk_usbphy_plldiv25m_; \
+ _ENABLE_CLOCK_clk_audio_12288_; \
+ _ENABLE_CLOCK_clk_audio_src_; \
+ _ENABLE_CLOCK_clk_vin_src_; \
+ _ENABLE_CLOCK_clk_isp0_axi_; \
+ _ENABLE_CLOCK_clk_isp0noc_axi_; \
+ _ENABLE_CLOCK_clk_ispslv_axi_; \
+ _ENABLE_CLOCK_clk_isp1_axi_; \
+ _ENABLE_CLOCK_clk_isp1noc_axi_; \
+ _ENABLE_CLOCK_clk_vin_axi_; \
+ _ENABLE_CLOCK_clk_vinnoc_axi_; \
+ _ENABLE_CLOCK_clk_vout_src_; \
+ _ENABLE_CLOCK_clk_disp_axi_; \
+ _ENABLE_CLOCK_clk_dispnoc_axi_; \
+ _ENABLE_CLOCK_clk_sdio0_ahb_; \
+ _ENABLE_CLOCK_clk_sdio0_cclkint_; \
+ _ENABLE_CLOCK_clk_sdio1_ahb_; \
+ _ENABLE_CLOCK_clk_sdio1_cclkint_; \
+ _ENABLE_CLOCK_clk_gmac_ahb_; \
+ _ENABLE_CLOCK_clk_gmac_ptp_refclk_; \
+ _ENABLE_CLOCK_clk_gmac_gtxclk_; \
+ _ENABLE_CLOCK_clk_gmac_rmii_txclk_; \
+ _ENABLE_CLOCK_clk_gmac_rmii_rxclk_; \
+ _ENABLE_CLOCK_clk_gmac_rmii_; \
+ _ENABLE_CLOCK_clk_gmac_tophyref_; \
+ _ENABLE_CLOCK_clk_spi2ahb_ahb_; \
+ _ENABLE_CLOCK_clk_spi2ahb_core_; \
+ _ENABLE_CLOCK_clk_ezmaster_ahb_; \
+ _ENABLE_CLOCK_clk_e24_ahb_; \
+ _ENABLE_CLOCK_clk_e24rtc_toggle_; \
+ _ENABLE_CLOCK_clk_qspi_ahb_; \
+ _ENABLE_CLOCK_clk_qspi_apb_; \
+ _ENABLE_CLOCK_clk_qspi_refclk_; \
+ _ENABLE_CLOCK_clk_sec_ahb_; \
+ _ENABLE_CLOCK_clk_aes_clk_; \
+ _ENABLE_CLOCK_clk_sha_clk_; \
+ _ENABLE_CLOCK_clk_pka_clk_; \
+ _ENABLE_CLOCK_clk_trng_apb_; \
+ _ENABLE_CLOCK_clk_otp_apb_; \
+ _ENABLE_CLOCK_clk_uart0_apb_; \
+ _ENABLE_CLOCK_clk_uart0_core_; \
+ _ENABLE_CLOCK_clk_uart1_apb_; \
+ _ENABLE_CLOCK_clk_uart1_core_; \
+ _ENABLE_CLOCK_clk_spi0_apb_; \
+ _ENABLE_CLOCK_clk_spi0_core_; \
+ _ENABLE_CLOCK_clk_spi1_apb_; \
+ _ENABLE_CLOCK_clk_spi1_core_; \
+ _ENABLE_CLOCK_clk_i2c0_apb_; \
+ _ENABLE_CLOCK_clk_i2c0_core_; \
+ _ENABLE_CLOCK_clk_i2c1_apb_; \
+ _ENABLE_CLOCK_clk_i2c1_core_; \
+ _ENABLE_CLOCK_clk_gpio_apb_; \
+ _ENABLE_CLOCK_clk_uart2_apb_; \
+ _ENABLE_CLOCK_clk_uart2_core_; \
+ _ENABLE_CLOCK_clk_uart3_apb_; \
+ _ENABLE_CLOCK_clk_uart3_core_; \
+ _ENABLE_CLOCK_clk_spi2_apb_; \
+ _ENABLE_CLOCK_clk_spi2_core_; \
+ _ENABLE_CLOCK_clk_spi3_apb_; \
+ _ENABLE_CLOCK_clk_spi3_core_; \
+ _ENABLE_CLOCK_clk_i2c2_apb_; \
+ _ENABLE_CLOCK_clk_i2c2_core_; \
+ _ENABLE_CLOCK_clk_i2c3_apb_; \
+ _ENABLE_CLOCK_clk_i2c3_core_; \
+ _ENABLE_CLOCK_clk_wdtimer_apb_; \
+ _ENABLE_CLOCK_clk_wdt_coreclk_; \
+ _ENABLE_CLOCK_clk_timer0_coreclk_; \
+ _ENABLE_CLOCK_clk_timer1_coreclk_; \
+ _ENABLE_CLOCK_clk_timer2_coreclk_; \
+ _ENABLE_CLOCK_clk_timer3_coreclk_; \
+ _ENABLE_CLOCK_clk_timer4_coreclk_; \
+ _ENABLE_CLOCK_clk_timer5_coreclk_; \
+ _ENABLE_CLOCK_clk_timer6_coreclk_; \
+ _ENABLE_CLOCK_clk_vp6intc_apb_; \
+ _ENABLE_CLOCK_clk_pwm_apb_; \
+ _ENABLE_CLOCK_clk_msi_apb_; \
+ _ENABLE_CLOCK_clk_temp_apb_; \
+ _ENABLE_CLOCK_clk_temp_sense_; \
+ _ENABLE_CLOCK_clk_syserr_apb_; \
+}
+
+#define jh_rstgen_enable { \
+ _CLEAR_RESET_rstgen_rstn_u74_axi_; \
+ _CLEAR_RESET_rstgen_rstn_sgdma2p_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_sgdma2p_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dma2pnoc_aix_; \
+ _CLEAR_RESET_rstgen_rstn_dla_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dlanoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dla_apb_; \
+ _CLEAR_RESET_rstgen_rstn_vp6_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vp6_apb_; \
+ _CLEAR_RESET_rstgen_rstn_vdecbrg_main_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_bclk_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_vdec_apb_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_axi_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_jpeg_apb_; \
+ _CLEAR_RESET_rstgen_rstn_jpcgc300_main_; \
+ _CLEAR_RESET_rstgen_rstn_gc300_2x_; \
+ _CLEAR_RESET_rstgen_rstn_gc300_axi_; \
+ _CLEAR_RESET_rstgen_rstn_gc300_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_venc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vencbrg_main_; \
+ _CLEAR_RESET_rstgen_rstn_venc_bclk_; \
+ _CLEAR_RESET_rstgen_rstn_venc_cclk_; \
+ _CLEAR_RESET_rstgen_rstn_venc_apb_; \
+ _CLEAR_RESET_rstgen_rstn_ddrphy_apb_; \
+ _CLEAR_RESET_rstgen_rstn_noc_rob_; \
+ _CLEAR_RESET_rstgen_rstn_noc_cog_; \
+ _CLEAR_RESET_rstgen_rstn_hifi4_axi_; \
+ _CLEAR_RESET_rstgen_rstn_hifi4noc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_usb_axi_; \
+ _CLEAR_RESET_rstgen_rstn_usbnoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_sgdma1p_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dma1p_axi_; \
+ _CLEAR_RESET_rstgen_rstn_x2c_axi_; \
+ _CLEAR_RESET_rstgen_rstn_nne_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_nne_axi_; \
+ _CLEAR_RESET_rstgen_rstn_nnenoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dlaslv_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dspx2c_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vin_src_; \
+ _CLEAR_RESET_rstgen_rstn_ispslv_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vin_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vinnoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_isp0_axi_; \
+ _CLEAR_RESET_rstgen_rstn_isp0noc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_isp1_axi_; \
+ _CLEAR_RESET_rstgen_rstn_isp1noc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_vout_src_; \
+ _CLEAR_RESET_rstgen_rstn_disp_axi_; \
+ _CLEAR_RESET_rstgen_rstn_dispnoc_axi_; \
+ _CLEAR_RESET_rstgen_rstn_sdio0_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_sdio1_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_gmac_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_spi2ahb_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_spi2ahb_core_; \
+ _CLEAR_RESET_rstgen_rstn_ezmaster_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_qspi_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_qspi_core_; \
+ _CLEAR_RESET_rstgen_rstn_qspi_apb_; \
+ _CLEAR_RESET_rstgen_rstn_sec_ahb_; \
+ _CLEAR_RESET_rstgen_rstn_aes_; \
+ _CLEAR_RESET_rstgen_rstn_pka_; \
+ _CLEAR_RESET_rstgen_rstn_sha_; \
+ _CLEAR_RESET_rstgen_rstn_trng_apb_; \
+ _CLEAR_RESET_rstgen_rstn_otp_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart0_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart1_core_; \
+ _CLEAR_RESET_rstgen_rstn_spi0_apb_; \
+ _CLEAR_RESET_rstgen_rstn_spi0_core_; \
+ _CLEAR_RESET_rstgen_rstn_spi1_apb_; \
+ _CLEAR_RESET_rstgen_rstn_spi1_core_; \
+ _CLEAR_RESET_rstgen_rstn_i2c0_apb_; \
+ _CLEAR_RESET_rstgen_rstn_i2c0_core_; \
+ _CLEAR_RESET_rstgen_rstn_i2c1_apb_; \
+ _CLEAR_RESET_rstgen_rstn_i2c1_core_; \
+ _CLEAR_RESET_rstgen_rstn_gpio_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart2_core_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_apb_; \
+ _CLEAR_RESET_rstgen_rstn_uart3_core_; \
+ _CLEAR_RESET_rstgen_rstn_spi2_apb_; \
+ _CLEAR_RESET_rstgen_rstn_spi2_core_; \
+ _CLEAR_RESET_rstgen_rstn_spi3_apb_; \
+ _CLEAR_RESET_rstgen_rstn_spi3_core_; \
+ _CLEAR_RESET_rstgen_rstn_i2c2_apb_; \
+ _CLEAR_RESET_rstgen_rstn_i2c2_core_; \
+ _CLEAR_RESET_rstgen_rstn_i2c3_apb_; \
+ _CLEAR_RESET_rstgen_rstn_i2c3_core_; \
+ _CLEAR_RESET_rstgen_rstn_wdtimer_apb_; \
+ _CLEAR_RESET_rstgen_rstn_wdt_; \
+ _CLEAR_RESET_rstgen_rstn_timer0_; \
+ _CLEAR_RESET_rstgen_rstn_timer1_; \
+ _CLEAR_RESET_rstgen_rstn_timer2_; \
+ _CLEAR_RESET_rstgen_rstn_timer3_; \
+ _CLEAR_RESET_rstgen_rstn_timer4_; \
+ _CLEAR_RESET_rstgen_rstn_timer5_; \
+ _CLEAR_RESET_rstgen_rstn_timer6_; \
+ _CLEAR_RESET_rstgen_rstn_vp6intc_apb_; \
+ _CLEAR_RESET_rstgen_rstn_pwm_apb_; \
+ _CLEAR_RESET_rstgen_rstn_msi_apb_; \
+ _CLEAR_RESET_rstgen_rstn_temp_apb_; \
+ _CLEAR_RESET_rstgen_rstn_temp_sense_; \
+ _CLEAR_RESET_rstgen_rstn_syserr_apb_; \
+}
+
+#endif /* _SFC_JH_MODULE_RESET_CLKGEN_H */