sunxi: Support H3 CCU security switches
H3's CCU includes some switches which disable non-secure access to some of the more critical clock controls, such as MBUS, PLLs, and main platform busses. Configure them to enable non-secure access. For now the only SoC that has this feature is the H3. For other platforms just use a default (weak) empty function so things do not break. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:

committed by
Hans de Goede

parent
5823664fb8
commit
ed80584f30
@@ -30,6 +30,7 @@ int clock_init(void);
|
||||
int clock_twi_onoff(int port, int state);
|
||||
void clock_set_de_mod_clock(u32 *clk_cfg, unsigned int hz);
|
||||
void clock_init_safe(void);
|
||||
void clock_init_sec(void);
|
||||
void clock_init_uart(void);
|
||||
#endif
|
||||
|
||||
|
@@ -137,6 +137,8 @@ struct sunxi_ccm_reg {
|
||||
u32 apb1_reset_cfg; /* 0x2d0 APB1 Reset config */
|
||||
u32 reserved24;
|
||||
u32 apb2_reset_cfg; /* 0x2d8 APB2 Reset config */
|
||||
u32 reserved25[5];
|
||||
u32 ccu_sec_switch; /* 0x2f0 CCU Security Switch, H3 only */
|
||||
};
|
||||
|
||||
/* apb2 bit field */
|
||||
@@ -375,6 +377,11 @@ struct sunxi_ccm_reg {
|
||||
#define CCM_DE_CTRL_PLL10 (5 << 24)
|
||||
#define CCM_DE_CTRL_GATE (1 << 31)
|
||||
|
||||
/* CCU security switch, H3 only */
|
||||
#define CCM_SEC_SWITCH_MBUS_NONSEC (1 << 2)
|
||||
#define CCM_SEC_SWITCH_BUS_NONSEC (1 << 1)
|
||||
#define CCM_SEC_SWITCH_PLL_NONSEC (1 << 0)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
void clock_set_pll1(unsigned int hz);
|
||||
void clock_set_pll3(unsigned int hz);
|
||||
|
Reference in New Issue
Block a user