Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/clk/rockchip/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 16 kB image not shown  

Quelle  rst-rk3562.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
 * Copyright (c) 2024 Collabora Ltd.
 * Author: Detlev Casanova <detlev.casanova@collabora.com>
 * Based on Sebastien Reichel's implementation for RK3588
 */


#include <linux/module.h>
#include <linux/of.h>
#include <dt-bindings/reset/rockchip,rk3562-cru.h>
#include "clk.h"

/* 0xff100000 + 0x0A00 */
#define RK3562_CRU_RESET_OFFSET(id, reg, bit) [id] = (0 + reg * 16 + bit)
/* 0xff110000 + 0x0A00 */
#define RK3562_PMU0CRU_RESET_OFFSET(id, reg, bit) [id] = (0x10000*4 + reg * 16 + bit)
/* 0xff118000 + 0x0A00 */
#define RK3562_PMU1CRU_RESET_OFFSET(id, reg, bit) [id] = (0x18000*4 + reg * 16 + bit)
/* 0xff120000 + 0x0A00 */
#define RK3562_DDRCRU_RESET_OFFSET(id, reg, bit) [id] = (0x20000*4 + reg * 16 + bit)
/* 0xff128000 + 0x0A00 */
#define RK3562_SUBDDRCRU_RESET_OFFSET(id, reg, bit) [id] = (0x28000*4 + reg * 16 + bit)
/* 0xff130000 + 0x0A00 */
#define RK3562_PERICRU_RESET_OFFSET(id, reg, bit) [id] = (0x30000*4 + reg * 16 + bit)

/* mapping table for reset ID to register offset */
static const int rk3562_register_offset[] = {
 /* SOFTRST_CON01 */
 RK3562_CRU_RESET_OFFSET(SRST_A_TOP_BIU, 10),
 RK3562_CRU_RESET_OFFSET(SRST_A_TOP_VIO_BIU, 11),
 RK3562_CRU_RESET_OFFSET(SRST_REF_PVTPLL_LOGIC, 12),

 /* SOFTRST_CON03 */
 RK3562_CRU_RESET_OFFSET(SRST_NCOREPORESET0, 30),
 RK3562_CRU_RESET_OFFSET(SRST_NCOREPORESET1, 31),
 RK3562_CRU_RESET_OFFSET(SRST_NCOREPORESET2, 32),
 RK3562_CRU_RESET_OFFSET(SRST_NCOREPORESET3, 33),
 RK3562_CRU_RESET_OFFSET(SRST_NCORESET0, 34),
 RK3562_CRU_RESET_OFFSET(SRST_NCORESET1, 35),
 RK3562_CRU_RESET_OFFSET(SRST_NCORESET2, 36),
 RK3562_CRU_RESET_OFFSET(SRST_NCORESET3, 37),
 RK3562_CRU_RESET_OFFSET(SRST_NL2RESET, 38),

 /* SOFTRST_CON04 */
 RK3562_CRU_RESET_OFFSET(SRST_DAP, 49),
 RK3562_CRU_RESET_OFFSET(SRST_P_DBG_DAPLITE, 410),
 RK3562_CRU_RESET_OFFSET(SRST_REF_PVTPLL_CORE, 413),

 /* SOFTRST_CON05 */
 RK3562_CRU_RESET_OFFSET(SRST_A_CORE_BIU, 50),
 RK3562_CRU_RESET_OFFSET(SRST_P_CORE_BIU, 51),
 RK3562_CRU_RESET_OFFSET(SRST_H_CORE_BIU, 52),

 /* SOFTRST_CON06 */
 RK3562_CRU_RESET_OFFSET(SRST_A_NPU_BIU, 62),
 RK3562_CRU_RESET_OFFSET(SRST_H_NPU_BIU, 63),
 RK3562_CRU_RESET_OFFSET(SRST_A_RKNN, 64),
 RK3562_CRU_RESET_OFFSET(SRST_H_RKNN, 65),
 RK3562_CRU_RESET_OFFSET(SRST_REF_PVTPLL_NPU, 66),

 /* SOFTRST_CON08 */
 RK3562_CRU_RESET_OFFSET(SRST_A_GPU_BIU, 83),
 RK3562_CRU_RESET_OFFSET(SRST_GPU, 84),
 RK3562_CRU_RESET_OFFSET(SRST_REF_PVTPLL_GPU, 85),
 RK3562_CRU_RESET_OFFSET(SRST_GPU_BRG_BIU, 88),

 /* SOFTRST_CON09 */
 RK3562_CRU_RESET_OFFSET(SRST_RKVENC_CORE, 90),
 RK3562_CRU_RESET_OFFSET(SRST_A_VEPU_BIU, 93),
 RK3562_CRU_RESET_OFFSET(SRST_H_VEPU_BIU, 94),
 RK3562_CRU_RESET_OFFSET(SRST_A_RKVENC, 95),
 RK3562_CRU_RESET_OFFSET(SRST_H_RKVENC, 96),

 /* SOFTRST_CON10 */
 RK3562_CRU_RESET_OFFSET(SRST_RKVDEC_HEVC_CA, 102),
 RK3562_CRU_RESET_OFFSET(SRST_A_VDPU_BIU, 105),
 RK3562_CRU_RESET_OFFSET(SRST_H_VDPU_BIU, 106),
 RK3562_CRU_RESET_OFFSET(SRST_A_RKVDEC, 107),
 RK3562_CRU_RESET_OFFSET(SRST_H_RKVDEC, 108),

 /* SOFTRST_CON11 */
 RK3562_CRU_RESET_OFFSET(SRST_A_VI_BIU, 113),
 RK3562_CRU_RESET_OFFSET(SRST_H_VI_BIU, 114),
 RK3562_CRU_RESET_OFFSET(SRST_P_VI_BIU, 115),
 RK3562_CRU_RESET_OFFSET(SRST_ISP, 118),
 RK3562_CRU_RESET_OFFSET(SRST_A_VICAP, 119),
 RK3562_CRU_RESET_OFFSET(SRST_H_VICAP, 1110),
 RK3562_CRU_RESET_OFFSET(SRST_D_VICAP, 1111),
 RK3562_CRU_RESET_OFFSET(SRST_I0_VICAP, 1112),
 RK3562_CRU_RESET_OFFSET(SRST_I1_VICAP, 1113),
 RK3562_CRU_RESET_OFFSET(SRST_I2_VICAP, 1114),
 RK3562_CRU_RESET_OFFSET(SRST_I3_VICAP, 1115),

 /* SOFTRST_CON12 */
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIHOST0, 120),
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIHOST1, 121),
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIHOST2, 122),
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIHOST3, 123),
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIPHY0, 124),
 RK3562_CRU_RESET_OFFSET(SRST_P_CSIPHY1, 125),

 /* SOFTRST_CON13 */
 RK3562_CRU_RESET_OFFSET(SRST_A_VO_BIU, 133),
 RK3562_CRU_RESET_OFFSET(SRST_H_VO_BIU, 134),
 RK3562_CRU_RESET_OFFSET(SRST_A_VOP, 136),
 RK3562_CRU_RESET_OFFSET(SRST_H_VOP, 137),
 RK3562_CRU_RESET_OFFSET(SRST_D_VOP, 138),
 RK3562_CRU_RESET_OFFSET(SRST_D_VOP1, 139),

 /* SOFTRST_CON14 */
 RK3562_CRU_RESET_OFFSET(SRST_A_RGA_BIU, 143),
 RK3562_CRU_RESET_OFFSET(SRST_H_RGA_BIU, 144),
 RK3562_CRU_RESET_OFFSET(SRST_A_RGA, 146),
 RK3562_CRU_RESET_OFFSET(SRST_H_RGA, 147),
 RK3562_CRU_RESET_OFFSET(SRST_RGA_CORE, 148),
 RK3562_CRU_RESET_OFFSET(SRST_A_JDEC, 149),
 RK3562_CRU_RESET_OFFSET(SRST_H_JDEC, 1410),

 /* SOFTRST_CON15 */
 RK3562_CRU_RESET_OFFSET(SRST_B_EBK_BIU, 152),
 RK3562_CRU_RESET_OFFSET(SRST_P_EBK_BIU, 153),
 RK3562_CRU_RESET_OFFSET(SRST_AHB2AXI_EBC, 154),
 RK3562_CRU_RESET_OFFSET(SRST_H_EBC, 155),
 RK3562_CRU_RESET_OFFSET(SRST_D_EBC, 156),
 RK3562_CRU_RESET_OFFSET(SRST_H_EINK, 157),
 RK3562_CRU_RESET_OFFSET(SRST_P_EINK, 158),

 /* SOFTRST_CON16 */
 RK3562_CRU_RESET_OFFSET(SRST_P_PHP_BIU, 162),
 RK3562_CRU_RESET_OFFSET(SRST_A_PHP_BIU, 163),
 RK3562_CRU_RESET_OFFSET(SRST_P_PCIE20, 167),
 RK3562_CRU_RESET_OFFSET(SRST_PCIE20_POWERUP, 168),
 RK3562_CRU_RESET_OFFSET(SRST_USB3OTG, 1610),

 /* SOFTRST_CON17 */
 RK3562_CRU_RESET_OFFSET(SRST_PIPEPHY, 173),

 /* SOFTRST_CON18 */
 RK3562_CRU_RESET_OFFSET(SRST_A_BUS_BIU, 183),
 RK3562_CRU_RESET_OFFSET(SRST_H_BUS_BIU, 184),
 RK3562_CRU_RESET_OFFSET(SRST_P_BUS_BIU, 185),

 /* SOFTRST_CON19 */
 RK3562_CRU_RESET_OFFSET(SRST_P_I2C1, 190),
 RK3562_CRU_RESET_OFFSET(SRST_P_I2C2, 191),
 RK3562_CRU_RESET_OFFSET(SRST_P_I2C3, 192),
 RK3562_CRU_RESET_OFFSET(SRST_P_I2C4, 193),
 RK3562_CRU_RESET_OFFSET(SRST_P_I2C5, 194),
 RK3562_CRU_RESET_OFFSET(SRST_I2C1, 196),
 RK3562_CRU_RESET_OFFSET(SRST_I2C2, 197),
 RK3562_CRU_RESET_OFFSET(SRST_I2C3, 198),
 RK3562_CRU_RESET_OFFSET(SRST_I2C4, 199),
 RK3562_CRU_RESET_OFFSET(SRST_I2C5, 1910),

 /* SOFTRST_CON20 */
 RK3562_CRU_RESET_OFFSET(SRST_BUS_GPIO3, 205),
 RK3562_CRU_RESET_OFFSET(SRST_BUS_GPIO4, 206),

 /* SOFTRST_CON21 */
 RK3562_CRU_RESET_OFFSET(SRST_P_TIMER, 210),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER0, 211),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER1, 212),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER2, 213),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER3, 214),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER4, 215),
 RK3562_CRU_RESET_OFFSET(SRST_TIMER5, 216),
 RK3562_CRU_RESET_OFFSET(SRST_P_STIMER, 217),
 RK3562_CRU_RESET_OFFSET(SRST_STIMER0, 218),
 RK3562_CRU_RESET_OFFSET(SRST_STIMER1, 219),

 /* SOFTRST_CON22 */
 RK3562_CRU_RESET_OFFSET(SRST_P_WDTNS, 220),
 RK3562_CRU_RESET_OFFSET(SRST_WDTNS, 221),
 RK3562_CRU_RESET_OFFSET(SRST_P_GRF, 222),
 RK3562_CRU_RESET_OFFSET(SRST_P_SGRF, 223),
 RK3562_CRU_RESET_OFFSET(SRST_P_MAILBOX, 224),
 RK3562_CRU_RESET_OFFSET(SRST_P_INTC, 225),
 RK3562_CRU_RESET_OFFSET(SRST_A_BUS_GIC400, 226),
 RK3562_CRU_RESET_OFFSET(SRST_A_BUS_GIC400_DEBUG, 227),

 /* SOFTRST_CON23 */
 RK3562_CRU_RESET_OFFSET(SRST_A_BUS_SPINLOCK, 230),
 RK3562_CRU_RESET_OFFSET(SRST_A_DCF, 231),
 RK3562_CRU_RESET_OFFSET(SRST_P_DCF, 232),
 RK3562_CRU_RESET_OFFSET(SRST_F_BUS_CM0_CORE, 233),
 RK3562_CRU_RESET_OFFSET(SRST_T_BUS_CM0_JTAG, 235),
 RK3562_CRU_RESET_OFFSET(SRST_H_ICACHE, 238),
 RK3562_CRU_RESET_OFFSET(SRST_H_DCACHE, 239),

 /* SOFTRST_CON24 */
 RK3562_CRU_RESET_OFFSET(SRST_P_TSADC, 240),
 RK3562_CRU_RESET_OFFSET(SRST_TSADC, 241),
 RK3562_CRU_RESET_OFFSET(SRST_TSADCPHY, 242),
 RK3562_CRU_RESET_OFFSET(SRST_P_DFT2APB, 244),

 /* SOFTRST_CON25 */
 RK3562_CRU_RESET_OFFSET(SRST_A_GMAC, 250),
 RK3562_CRU_RESET_OFFSET(SRST_P_APB2ASB_VCCIO156, 251),
 RK3562_CRU_RESET_OFFSET(SRST_P_DSIPHY, 255),
 RK3562_CRU_RESET_OFFSET(SRST_P_DSITX, 258),
 RK3562_CRU_RESET_OFFSET(SRST_P_CPU_EMA_DET, 259),
 RK3562_CRU_RESET_OFFSET(SRST_P_HASH, 2510),
 RK3562_CRU_RESET_OFFSET(SRST_P_TOPCRU, 2511),

 /* SOFTRST_CON26 */
 RK3562_CRU_RESET_OFFSET(SRST_P_ASB2APB_VCCIO156, 260),
 RK3562_CRU_RESET_OFFSET(SRST_P_IOC_VCCIO156, 261),
 RK3562_CRU_RESET_OFFSET(SRST_P_GPIO3_VCCIO156, 262),
 RK3562_CRU_RESET_OFFSET(SRST_P_GPIO4_VCCIO156, 263),
 RK3562_CRU_RESET_OFFSET(SRST_P_SARADC_VCCIO156, 264),
 RK3562_CRU_RESET_OFFSET(SRST_SARADC_VCCIO156, 265),
 RK3562_CRU_RESET_OFFSET(SRST_SARADC_VCCIO156_PHY, 266),

 /* SOFTRST_CON27 */
 RK3562_CRU_RESET_OFFSET(SRST_A_MAC100, 271),

 /* PMU0_SOFTRST_CON00 */
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_CRU, 00),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_PMU, 01),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_PMU, 02),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_HP_TIMER, 03),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_HP_TIMER, 04),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_32K_HP_TIMER, 05),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_PVTM, 06),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_PVTM, 07),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_IOC_PMUIO, 08),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_GPIO0, 09),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_GPIO0, 010),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_GRF, 011),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_SGRF, 012),

 /* PMU0_SOFTRST_CON01 */
 RK3562_PMU0CRU_RESET_OFFSET(SRST_DDR_FAIL_SAFE, 10),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_SCRKEYGEN, 11),

 /* PMU0_SOFTRST_CON02 */
 RK3562_PMU0CRU_RESET_OFFSET(SRST_P_PMU0_I2C0, 28),
 RK3562_PMU0CRU_RESET_OFFSET(SRST_PMU0_I2C0, 29),

 /* PMU1_SOFTRST_CON00 */
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_CRU, 00),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_H_PMU1_MEM, 02),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_H_PMU1_BIU, 03),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_BIU, 04),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_UART0, 07),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_S_PMU1_UART0, 010),

 /* PMU1_SOFTRST_CON01 */
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_SPI0, 10),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_PMU1_SPI0, 11),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_PWM0, 13),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_PMU1_PWM0, 14),

 /* PMU1_SOFTRST_CON02 */
 RK3562_PMU1CRU_RESET_OFFSET(SRST_F_PMU1_CM0_CORE, 20),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_T_PMU1_CM0_JTAG, 22),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_P_PMU1_WDTNS, 23),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_PMU1_WDTNS, 24),
 RK3562_PMU1CRU_RESET_OFFSET(SRST_PMU1_MAILBOX, 28),

 /* DDR_SOFTRST_CON00 */
 RK3562_DDRCRU_RESET_OFFSET(SRST_MSCH_BRG_BIU, 04),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_MSCH_BIU, 05),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_HWLP, 06),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_PHY, 08),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_DFICTL, 09),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_DMA2DDR, 010),

 /* DDR_SOFTRST_CON01 */
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_MON, 10),
 RK3562_DDRCRU_RESET_OFFSET(SRST_TM_DDR_MON, 11),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_GRF, 12),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_DDR_CRU, 13),
 RK3562_DDRCRU_RESET_OFFSET(SRST_P_SUBDDR_CRU, 14),

 /* SUBDDR_SOFTRST_CON00 */
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_MSCH_BIU, 01),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_DDR_PHY, 04),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_DDR_DFICTL, 05),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_DDR_SCRAMBLE, 06),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_DDR_MON, 07),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_A_DDR_SPLIT, 08),
 RK3562_SUBDDRCRU_RESET_OFFSET(SRST_DDR_DMA2DDR, 09),

 /* PERI_SOFTRST_CON01 */
 RK3562_PERICRU_RESET_OFFSET(SRST_A_PERI_BIU, 13),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_PERI_BIU, 14),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERI_BIU, 15),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERICRU, 16),

 /* PERI_SOFTRST_CON02 */
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SAI0_8CH, 20),
 RK3562_PERICRU_RESET_OFFSET(SRST_M_SAI0_8CH, 23),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SAI1_8CH, 25),
 RK3562_PERICRU_RESET_OFFSET(SRST_M_SAI1_8CH, 28),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SAI2_2CH, 210),
 RK3562_PERICRU_RESET_OFFSET(SRST_M_SAI2_2CH, 213),

 /* PERI_SOFTRST_CON03 */
 RK3562_PERICRU_RESET_OFFSET(SRST_H_DSM, 31),
 RK3562_PERICRU_RESET_OFFSET(SRST_DSM, 32),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_PDM, 34),
 RK3562_PERICRU_RESET_OFFSET(SRST_M_PDM, 35),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SPDIF, 38),
 RK3562_PERICRU_RESET_OFFSET(SRST_M_SPDIF, 311),

 /* PERI_SOFTRST_CON04 */
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SDMMC0, 40),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SDMMC1, 42),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_EMMC, 48),
 RK3562_PERICRU_RESET_OFFSET(SRST_A_EMMC, 49),
 RK3562_PERICRU_RESET_OFFSET(SRST_C_EMMC, 410),
 RK3562_PERICRU_RESET_OFFSET(SRST_B_EMMC, 411),
 RK3562_PERICRU_RESET_OFFSET(SRST_T_EMMC, 412),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_SFC, 413),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_SFC, 414),

 /* PERI_SOFTRST_CON05 */
 RK3562_PERICRU_RESET_OFFSET(SRST_H_USB2HOST, 50),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_USB2HOST_ARB, 51),
 RK3562_PERICRU_RESET_OFFSET(SRST_USB2HOST_UTMI, 52),

 /* PERI_SOFTRST_CON06 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_SPI1, 60),
 RK3562_PERICRU_RESET_OFFSET(SRST_SPI1, 61),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_SPI2, 63),
 RK3562_PERICRU_RESET_OFFSET(SRST_SPI2, 64),

 /* PERI_SOFTRST_CON07 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART1, 70),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART2, 71),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART3, 72),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART4, 73),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART5, 74),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART6, 75),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART7, 76),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART8, 77),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_UART9, 78),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART1, 711),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART2, 714),

 /* PERI_SOFTRST_CON08 */
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART3, 81),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART4, 84),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART5, 87),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART6, 810),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART7, 813),

 /* PERI_SOFTRST_CON09 */
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART8, 90),
 RK3562_PERICRU_RESET_OFFSET(SRST_S_UART9, 93),

 /* PERI_SOFTRST_CON10 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PWM1_PERI, 100),
 RK3562_PERICRU_RESET_OFFSET(SRST_PWM1_PERI, 101),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PWM2_PERI, 103),
 RK3562_PERICRU_RESET_OFFSET(SRST_PWM2_PERI, 104),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PWM3_PERI, 106),
 RK3562_PERICRU_RESET_OFFSET(SRST_PWM3_PERI, 107),

 /* PERI_SOFTRST_CON11 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_CAN0, 110),
 RK3562_PERICRU_RESET_OFFSET(SRST_CAN0, 111),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_CAN1, 112),
 RK3562_PERICRU_RESET_OFFSET(SRST_CAN1, 113),

 /* PERI_SOFTRST_CON12 */
 RK3562_PERICRU_RESET_OFFSET(SRST_A_CRYPTO, 120),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_CRYPTO, 121),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_CRYPTO, 122),
 RK3562_PERICRU_RESET_OFFSET(SRST_CORE_CRYPTO, 123),
 RK3562_PERICRU_RESET_OFFSET(SRST_PKA_CRYPTO, 124),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_KLAD, 125),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_KEY_READER, 126),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_RK_RNG_NS, 127),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_RK_RNG_S, 128),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_TRNG_NS, 129),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_TRNG_S, 1210),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_CRYPTO_S, 1211),

 /* PERI_SOFTRST_CON13 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERI_WDT, 130),
 RK3562_PERICRU_RESET_OFFSET(SRST_T_PERI_WDT, 131),
 RK3562_PERICRU_RESET_OFFSET(SRST_A_SYSMEM, 132),
 RK3562_PERICRU_RESET_OFFSET(SRST_H_BOOTROM, 133),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERI_GRF, 134),
 RK3562_PERICRU_RESET_OFFSET(SRST_A_DMAC, 135),
 RK3562_PERICRU_RESET_OFFSET(SRST_A_RKDMAC, 136),

 /* PERI_SOFTRST_CON14 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_OTPC_NS, 140),
 RK3562_PERICRU_RESET_OFFSET(SRST_SBPI_OTPC_NS, 141),
 RK3562_PERICRU_RESET_OFFSET(SRST_USER_OTPC_NS, 142),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_OTPC_S, 143),
 RK3562_PERICRU_RESET_OFFSET(SRST_SBPI_OTPC_S, 144),
 RK3562_PERICRU_RESET_OFFSET(SRST_USER_OTPC_S, 145),
 RK3562_PERICRU_RESET_OFFSET(SRST_OTPC_ARB, 146),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_OTPPHY, 147),
 RK3562_PERICRU_RESET_OFFSET(SRST_OTP_NPOR, 148),

 /* PERI_SOFTRST_CON15 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_USB2PHY, 150),
 RK3562_PERICRU_RESET_OFFSET(SRST_USB2PHY_POR, 154),
 RK3562_PERICRU_RESET_OFFSET(SRST_USB2PHY_OTG, 155),
 RK3562_PERICRU_RESET_OFFSET(SRST_USB2PHY_HOST, 156),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PIPEPHY, 157),

 /* PERI_SOFTRST_CON16 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_SARADC, 164),
 RK3562_PERICRU_RESET_OFFSET(SRST_SARADC, 165),
 RK3562_PERICRU_RESET_OFFSET(SRST_SARADC_PHY, 166),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_IOC_VCCIO234, 1612),

 /* PERI_SOFTRST_CON17 */
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERI_GPIO1, 170),
 RK3562_PERICRU_RESET_OFFSET(SRST_P_PERI_GPIO2, 171),
 RK3562_PERICRU_RESET_OFFSET(SRST_PERI_GPIO1, 172),
 RK3562_PERICRU_RESET_OFFSET(SRST_PERI_GPIO2, 173),
};

void rk3562_rst_init(struct device_node *np, void __iomem *reg_base)
{
 rockchip_register_softrst_lut(np,
          rk3562_register_offset,
          ARRAY_SIZE(rk3562_register_offset),
          reg_base + RK3562_SOFTRST_CON(0),
          ROCKCHIP_SOFTRST_HIWORD_MASK);
}

Messung V0.5 in Prozent
C=97 H=94 G=95

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-06-07) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.