File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -73,6 +73,27 @@ static void __iomem *scu_g6_base;
73
73
static u8 soc_rev ;
74
74
75
75
/*
76
+ * The majority of the clocks in the system are gates paired with a reset
77
+ * controller that holds the IP in reset; this is represented by the @reset_idx
78
+ * member of entries here.
79
+ *
80
+ * This borrows from clk_hw_register_gate, but registers two 'gates', one
81
+ * to control the clock enable register and the other to control the reset
82
+ * IP. This allows us to enforce the ordering:
83
+ *
84
+ * 1. Place IP in reset
85
+ * 2. Enable clock
86
+ * 3. Delay
87
+ * 4. Release reset
88
+ *
89
+ * Consequently, if reset_idx is set, reset control is implicit: the clock
90
+ * consumer does not need its own reset handling, as enabling the clock will
91
+ * also deassert reset.
92
+ *
93
+ * There are some gates that do not have an associated reset; these are
94
+ * handled by using -1 as the index for the reset, and the consumer must
95
+ * explictly assert/deassert reset lines as required.
96
+ *
76
97
* Clocks marked with CLK_IS_CRITICAL:
77
98
*
78
99
* ref0 and ref1 are essential for the SoC to operate
You can’t perform that action at this time.
0 commit comments