void clock_init_arm_generic_timer(void) { uint32_t freq = clock_get_osc_khz() * 1000; // Set the cntfrq register. set_cntfrq(freq); // Record the system timer frequency. write32(&sysctr->cntfid0, freq); // Enable the system counter. uint32_t cntcr = read32(&sysctr->cntcr); cntcr |= SYSCTR_CNTCR_EN | SYSCTR_CNTCR_HDBG; write32(&sysctr->cntcr, cntcr); }
static int imx8mq_init_syscnt_frequency(void) { if (current_el() == 3) { void __iomem *syscnt = IOMEM(MX8MQ_SYSCNT_CTRL_BASE_ADDR); /* * Update with accurate clock frequency */ set_cntfrq(syscnt_get_cntfrq(syscnt)); syscnt_enable(syscnt); } return 0; }