Skip to content

Commit c69c6e0

Browse files
soc: microchip: sam: sama7g5: update mmu for udphs
Update mmu region for udphsa and udphsb Add usb phy clock configuration Signed-off-by: CHEN Xing <xing.chen@microchip.com>
1 parent babc3e6 commit c69c6e0

File tree

1 file changed

+37
-0
lines changed
  • soc/microchip/sam/sama7g5

1 file changed

+37
-0
lines changed

soc/microchip/sam/sama7g5/soc.c

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)