Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion drivers/reset/reset-th1520.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,20 @@
/* register offset in VOSYS_REGMAP */
#define TH1520_GPU_RST_CFG 0x0
#define TH1520_GPU_RST_CFG_MASK GENMASK(1, 0)
#define TH1520_DPU_RST_CFG 0x4
#define TH1520_DSI0_RST_CFG 0x8
#define TH1520_DSI1_RST_CFG 0xc
#define TH1520_HDMI_RST_CFG 0x14

/* register values */
#define TH1520_GPU_SW_GPU_RST BIT(0)
#define TH1520_GPU_SW_CLKGEN_RST BIT(1)
#define TH1520_DPU_SW_DPU_HRST BIT(0)
#define TH1520_DPU_SW_DPU_ARST BIT(1)
#define TH1520_DPU_SW_DPU_CRST BIT(2)
#define TH1520_DSI_SW_DSI_PRST BIT(0)
#define TH1520_HDMI_SW_MAIN_RST BIT(0)
#define TH1520_HDMI_SW_PRST BIT(1)

struct th1520_reset_priv {
struct reset_controller_dev rcdev;
Expand All @@ -37,7 +47,35 @@ static const struct th1520_reset_map th1520_resets[] = {
[TH1520_RESET_ID_GPU_CLKGEN] = {
.bit = TH1520_GPU_SW_CLKGEN_RST,
.reg = TH1520_GPU_RST_CFG,
}
},
[TH1520_RESET_ID_DPU_AHB] = {
.bit = TH1520_DPU_SW_DPU_HRST,
.reg = TH1520_DPU_RST_CFG,
},
[TH1520_RESET_ID_DPU_AXI] = {
.bit = TH1520_DPU_SW_DPU_ARST,
.reg = TH1520_DPU_RST_CFG,
},
[TH1520_RESET_ID_DPU_CORE] = {
.bit = TH1520_DPU_SW_DPU_CRST,
.reg = TH1520_DPU_RST_CFG,
},
[TH1520_RESET_ID_DSI0_APB] = {
.bit = TH1520_DSI_SW_DSI_PRST,
.reg = TH1520_DSI0_RST_CFG,
},
[TH1520_RESET_ID_DSI1_APB] = {
.bit = TH1520_DSI_SW_DSI_PRST,
.reg = TH1520_DSI1_RST_CFG,
},
[TH1520_RESET_ID_HDMI] = {
.bit = TH1520_HDMI_SW_MAIN_RST,
.reg = TH1520_HDMI_RST_CFG,
},
[TH1520_RESET_ID_HDMI_APB] = {
.bit = TH1520_HDMI_SW_PRST,
.reg = TH1520_HDMI_RST_CFG,
},
};

static inline struct th1520_reset_priv *
Expand Down
7 changes: 7 additions & 0 deletions include/dt-bindings/reset/thead,th1520-reset.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,12 @@
#define TH1520_RESET_ID_NPU 2
#define TH1520_RESET_ID_WDT0 3
#define TH1520_RESET_ID_WDT1 4
#define TH1520_RESET_ID_DPU_AHB 5
#define TH1520_RESET_ID_DPU_AXI 6
#define TH1520_RESET_ID_DPU_CORE 7
#define TH1520_RESET_ID_DSI0_APB 8
#define TH1520_RESET_ID_DSI1_APB 9
#define TH1520_RESET_ID_HDMI 10
#define TH1520_RESET_ID_HDMI_APB 11

#endif /* _DT_BINDINGS_TH1520_RESET_H */