@@ -65,6 +65,9 @@ static const struct arm_mmu_region mmu_regions[] = {
6565 (MMU_REGION_FLAT_ENTRY ("pwm" , PWM_BASE_ADDRESS , 0x500 ,
6666 MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),))
6767
68+ MMU_REGION_FLAT_ENTRY ("rstc" , RSTC_BASE_ADDRESS , 0x10 ,
69+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
70+
6871 MMU_REGION_FLAT_ENTRY ("sckc" , SCKC_BASE_ADDRESS , 0x4 ,
6972 MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
7073
@@ -74,10 +77,25 @@ static const struct arm_mmu_region mmu_regions[] = {
7477 MMU_REGION_FLAT_ENTRY ("sdmmc1" , SDMMC1_BASE_ADDRESS , 0x4000 ,
7578 MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
7679
80+ MMU_REGION_FLAT_ENTRY ("sfr" , SFR_BASE_ADDRESS , 0x4000 ,
81+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
82+
7783 IF_ENABLED (DT_NODE_HAS_STATUS_OKAY (DT_NODELABEL (trng )),
7884 (MMU_REGION_FLAT_ENTRY ("trng" , TRNG_BASE_ADDRESS , 0x100 ,
7985 MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),))
8086
87+ IF_ENABLED (DT_NODE_HAS_STATUS_OKAY (DT_NODELABEL (udphsa )),
88+ (MMU_REGION_FLAT_ENTRY ("udphsa" , UDPHSA_BASE_ADDRESS , 0x400 ,
89+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
90+ MMU_REGION_FLAT_ENTRY ("udphsa_ram" , UDPHS_RAMA_ADDR , 0x100000 ,
91+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),))
92+
93+ IF_ENABLED (DT_NODE_HAS_STATUS_OKAY (DT_NODELABEL (udphsb )),
94+ (MMU_REGION_FLAT_ENTRY ("udphsb" , UDPHSB_BASE_ADDRESS , 0x400 ,
95+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),
96+ MMU_REGION_FLAT_ENTRY ("udphsb_ram" , UDPHS_RAMB_ADDR , 0x100000 ,
97+ MT_STRONGLY_ORDERED | MPERM_R | MPERM_W ),))
98+
8199 FOR_EACH_IDX (MMU_REGION_XDMAC_DEFN , ( ), 0 , 1 , 2 )
82100};
83101
@@ -149,4 +167,23 @@ void soc_early_init_hook(void)
149167 PMC_PCR_GCLKDIV (4 ) | PMC_PCR_MCKID (1 ) |
150168 PMC_PCR_GCLKCSS_ETHPLL | PMC_PCR_PID (ID_GMAC1 );
151169 }
170+
171+ /* Enable USB PHYs clock */
172+ PMC_REGS -> PMC_XTALF = PMC_XTALF_XTALF_F24M ;
173+ RSTC_REGS -> RSTC_GRSTR |= RSTC_GRSTR_USB_RST1_Msk |
174+ RSTC_GRSTR_USB_RST2_Msk |
175+ RSTC_GRSTR_USB_RST3_Msk ;
176+ SFR_REGS -> SFR_UTMI0R [0 ] |= SFR_UTMI0R_COMMONONN_Msk ;
177+ SFR_REGS -> SFR_UTMI0R [1 ] |= SFR_UTMI0R_COMMONONN_Msk ;
178+ SFR_REGS -> SFR_UTMI0R [2 ] |= SFR_UTMI0R_COMMONONN_Msk ;
179+ if (DT_NODE_HAS_STATUS_OKAY (DT_NODELABEL (udphsa ))) {
180+ SFR_REGS -> SFR_UTMI0R [0 ] |= SFR_UTMI0R_VBUS_Msk ;
181+ SFR_REGS -> SFR_UTMI0R [0 ] &= ~SFR_UTMI0R_COMMONONN_Msk ;
182+ RSTC_REGS -> RSTC_GRSTR &= ~RSTC_GRSTR_USB_RST1_Msk ;
183+ }
184+ if (DT_NODE_HAS_STATUS_OKAY (DT_NODELABEL (udphsb ))) {
185+ SFR_REGS -> SFR_UTMI0R [1 ] |= SFR_UTMI0R_VBUS_Msk ;
186+ SFR_REGS -> SFR_UTMI0R [1 ] &= ~SFR_UTMI0R_COMMONONN_Msk ;
187+ RSTC_REGS -> RSTC_GRSTR &= ~RSTC_GRSTR_USB_RST2_Msk ;
188+ }
152189}
0 commit comments