14
14
#include <dt-bindings/power/amlogic,c3-pwrc.h>
15
15
#include <dt-bindings/power/meson-s4-power.h>
16
16
#include <dt-bindings/power/amlogic,t7-pwrc.h>
17
+ #include <dt-bindings/power/amlogic,a4-pwrc.h>
17
18
#include <linux/arm-smccc.h>
18
19
#include <linux/firmware/meson/meson_sm.h>
19
20
#include <linux/module.h>
@@ -136,6 +137,24 @@ static struct meson_secure_pwrc_domain_desc a1_pwrc_domains[] = {
136
137
SEC_PD (RSA , 0 ),
137
138
};
138
139
140
+ static struct meson_secure_pwrc_domain_desc a4_pwrc_domains [] = {
141
+ SEC_PD (A4_AUDIO , 0 ),
142
+ SEC_PD (A4_SDIOA , 0 ),
143
+ SEC_PD (A4_EMMC , 0 ),
144
+ SEC_PD (A4_USB_COMB , 0 ),
145
+ SEC_PD (A4_ETH , 0 ),
146
+ SEC_PD (A4_VOUT , 0 ),
147
+ SEC_PD (A4_AUDIO_PDM , 0 ),
148
+ /* DMC is for DDR PHY ana/dig and DMC, and should be always on */
149
+ SEC_PD (A4_DMC , GENPD_FLAG_ALWAYS_ON ),
150
+ /* WRAP is secure_top, a lot of modules are included, and should be always on */
151
+ SEC_PD (A4_SYS_WRAP , GENPD_FLAG_ALWAYS_ON ),
152
+ SEC_PD (A4_AO_I2C_S , 0 ),
153
+ SEC_PD (A4_AO_UART , 0 ),
154
+ /* IR is wake up trigger source, and should be always on */
155
+ SEC_PD (A4_AO_IR , GENPD_FLAG_ALWAYS_ON ),
156
+ };
157
+
139
158
static struct meson_secure_pwrc_domain_desc c3_pwrc_domains [] = {
140
159
SEC_PD (C3_NNA , 0 ),
141
160
SEC_PD (C3_AUDIO , 0 ),
@@ -311,6 +330,11 @@ static struct meson_secure_pwrc_domain_data meson_secure_a1_pwrc_data = {
311
330
.count = ARRAY_SIZE (a1_pwrc_domains ),
312
331
};
313
332
333
+ static struct meson_secure_pwrc_domain_data amlogic_secure_a4_pwrc_data = {
334
+ .domains = a4_pwrc_domains ,
335
+ .count = ARRAY_SIZE (a4_pwrc_domains ),
336
+ };
337
+
314
338
static struct meson_secure_pwrc_domain_data amlogic_secure_c3_pwrc_data = {
315
339
.domains = c3_pwrc_domains ,
316
340
.count = ARRAY_SIZE (c3_pwrc_domains ),
@@ -331,6 +355,10 @@ static const struct of_device_id meson_secure_pwrc_match_table[] = {
331
355
.compatible = "amlogic,meson-a1-pwrc" ,
332
356
.data = & meson_secure_a1_pwrc_data ,
333
357
},
358
+ {
359
+ .compatible = "amlogic,a4-pwrc" ,
360
+ .data = & amlogic_secure_a4_pwrc_data ,
361
+ },
334
362
{
335
363
.compatible = "amlogic,c3-pwrc" ,
336
364
.data = & amlogic_secure_c3_pwrc_data ,
0 commit comments