Skip to content

Commit f21b792

Browse files
authored
Merge pull request #2489 from hathach/fix-non-crystal-less-ci-fs
fix crytsal-less access on unsupported kinetis mcu
2 parents 21de824 + a52b464 commit f21b792

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/portable/chipidea/ci_fs/dcd_ci_fs.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,16 +271,20 @@ void dcd_init(uint8_t rhport)
271271
{
272272
(void) rhport;
273273

274-
// save crystal-less setting (recovery clock)
274+
// save crystal-less setting (if available)
275+
#if defined(FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED) && FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED == 1
275276
uint32_t clk_recover_irc_en = CI_REG->CLK_RECOVER_IRC_EN;
276-
uint32_t clk_recover_ctrl = CI_REG->CLK_RECOVER_CTRL;;
277+
uint32_t clk_recover_ctrl = CI_REG->CLK_RECOVER_CTRL;
278+
#endif
277279

278280
CI_REG->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
279281
while (CI_REG->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
280282

281-
// restore crystal-less setting
283+
// restore crystal-less setting (if available)
284+
#if defined(FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED) && FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED == 1
282285
CI_REG->CLK_RECOVER_IRC_EN = clk_recover_irc_en;
283286
CI_REG->CLK_RECOVER_CTRL |= clk_recover_ctrl;
287+
#endif
284288

285289
tu_memclr(&_dcd, sizeof(_dcd));
286290
CI_REG->USBTRC0 |= TU_BIT(6); /* software must set this bit to 1 */

src/portable/nxp/khci/dcd_khci.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -269,17 +269,17 @@ void dcd_init(uint8_t rhport)
269269
{
270270
(void) rhport;
271271

272-
// save crystal-less setting (recovery clock)
273-
#ifdef USB_CLK_RECOVER_IRC_EN_IRC_EN
272+
// save crystal-less setting (if available)
273+
#if defined(FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED) && FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED == 1
274274
uint32_t clk_recover_irc_en = KHCI->CLK_RECOVER_IRC_EN;
275275
uint32_t clk_recover_ctrl = KHCI->CLK_RECOVER_CTRL;
276276
#endif
277277

278278
KHCI->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
279279
while (KHCI->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
280280

281-
// restore crystal-less setting
282-
#ifdef USB_CLK_RECOVER_IRC_EN_IRC_EN
281+
// restore crystal-less setting (if available)
282+
#if defined(FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED) && FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED == 1
283283
KHCI->CLK_RECOVER_IRC_EN = clk_recover_irc_en;
284284
KHCI->CLK_RECOVER_CTRL |= clk_recover_ctrl;
285285
#endif

0 commit comments

Comments
 (0)