@@ -90,8 +90,6 @@ void board_init_console(void)
9090 */
9191 init_uart_pins ((UART_Type * ) BOARD_CONSOLE_UART_BASE );
9292
93- /* Configure the UART clock to 24MHz */
94- clock_set_source_divider (BOARD_CONSOLE_UART_CLK_NAME , clk_src_osc24m , 1U );
9593 clock_add_to_group (BOARD_CONSOLE_UART_CLK_NAME , 0 );
9694
9795 cfg .type = BOARD_CONSOLE_TYPE ;
@@ -176,7 +174,7 @@ void board_init_usb_dp_dm_pins(void)
176174 } else {
177175 uint8_t tmp ;
178176 tmp = sysctl_resource_target_get_mode (HPM_SYSCTL , sysctl_resource_xtal );
179- sysctl_resource_target_set_mode (HPM_SYSCTL , sysctl_resource_xtal , 0x03 );
177+ sysctl_resource_target_set_mode (HPM_SYSCTL , sysctl_resource_xtal , 0x03 ); /* NOLINT */
180178 clock_add_to_group (clock_usb0 , 0 );
181179 usb_phy_disable_dp_dm_pulldown (HPM_USB0 );
182180 clock_remove_from_group (clock_usb0 , 0 );
@@ -205,52 +203,11 @@ void board_init_clock(void)
205203 clock_add_to_group (clock_lmm0 , 0 );
206204 clock_add_to_group (clock_mchtmr0 , 0 );
207205 clock_add_to_group (clock_rom , 0 );
208- clock_add_to_group (clock_can0 , 0 );
209- clock_add_to_group (clock_can1 , 0 );
210- clock_add_to_group (clock_can2 , 0 );
211- clock_add_to_group (clock_can3 , 0 );
212- clock_add_to_group (clock_ptpc , 0 );
213- clock_add_to_group (clock_gptmr0 , 0 );
214- clock_add_to_group (clock_gptmr1 , 0 );
215- clock_add_to_group (clock_gptmr2 , 0 );
216- clock_add_to_group (clock_gptmr3 , 0 );
217- clock_add_to_group (clock_i2c0 , 0 );
218- clock_add_to_group (clock_i2c1 , 0 );
219- clock_add_to_group (clock_i2c2 , 0 );
220- clock_add_to_group (clock_i2c3 , 0 );
221- clock_add_to_group (clock_spi0 , 0 );
222- clock_add_to_group (clock_spi1 , 0 );
223- clock_add_to_group (clock_spi2 , 0 );
224- clock_add_to_group (clock_spi3 , 0 );
225- clock_add_to_group (clock_uart0 , 0 );
226- clock_add_to_group (clock_uart1 , 0 );
227- clock_add_to_group (clock_uart2 , 0 );
228- clock_add_to_group (clock_uart3 , 0 );
229- clock_add_to_group (clock_uart4 , 0 );
230- clock_add_to_group (clock_uart5 , 0 );
231- clock_add_to_group (clock_uart6 , 0 );
232- /* group0[1] */
233- clock_add_to_group (clock_uart7 , 0 );
234- clock_add_to_group (clock_watchdog0 , 0 );
235- clock_add_to_group (clock_watchdog1 , 0 );
236- clock_add_to_group (clock_mbx0 , 0 );
237- clock_add_to_group (clock_tsns , 0 );
238- clock_add_to_group (clock_crc0 , 0 );
239- clock_add_to_group (clock_adc0 , 0 );
240- clock_add_to_group (clock_adc1 , 0 );
241- clock_add_to_group (clock_dac0 , 0 );
242- clock_add_to_group (clock_dac1 , 0 );
243- clock_add_to_group (clock_acmp , 0 );
244- clock_add_to_group (clock_opa0 , 0 );
245- clock_add_to_group (clock_opa1 , 0 );
246206 clock_add_to_group (clock_mot0 , 0 );
247- clock_add_to_group (clock_rng , 0 );
248- clock_add_to_group (clock_sdp , 0 );
249- clock_add_to_group (clock_kman , 0 );
250207 clock_add_to_group (clock_gpio , 0 );
251208 clock_add_to_group (clock_hdma , 0 );
252209 clock_add_to_group (clock_xpi0 , 0 );
253- clock_add_to_group (clock_usb0 , 0 );
210+ clock_add_to_group (clock_ptpc , 0 );
254211
255212 /* Connect Group0 to CPU0 */
256213 clock_connect_group_to_cpu (0 , 0 );
@@ -283,14 +240,14 @@ void board_delay_ms(uint32_t ms)
283240 clock_cpu_delay_ms (ms );
284241}
285242
243+ SDK_DECLARE_EXT_ISR_M (BOARD_CALLBACK_TIMER_IRQ , board_timer_isr )
286244void board_timer_isr (void )
287245{
288246 if (gptmr_check_status (BOARD_CALLBACK_TIMER , GPTMR_CH_RLD_STAT_MASK (BOARD_CALLBACK_TIMER_CH ))) {
289247 gptmr_clear_status (BOARD_CALLBACK_TIMER , GPTMR_CH_RLD_STAT_MASK (BOARD_CALLBACK_TIMER_CH ));
290248 timer_cb ();
291249 }
292250}
293- SDK_DECLARE_EXT_ISR_M (BOARD_CALLBACK_TIMER_IRQ , board_timer_isr );
294251
295252void board_timer_create (uint32_t ms , board_timer_cb cb )
296253{
@@ -323,15 +280,19 @@ void board_init_led_pins(void)
323280 gpio_set_pin_output_with_initial (BOARD_LED_GPIO_CTRL , BOARD_LED_GPIO_INDEX , BOARD_LED_GPIO_PIN , board_get_led_gpio_off_level ());
324281}
325282
326- void board_init_usb_pins ( void )
283+ void board_init_usb ( USB_Type * ptr )
327284{
328- init_usb_pins ();
329- usb_hcd_set_power_ctrl_polarity (BOARD_USB , true);
330- /* Wait USB_PWR pin control vbus power stable. Time depend on decoupling capacitor, you can decrease or increase this time */
331- board_delay_ms (100 );
285+ if (ptr == HPM_USB0 ) {
286+ init_usb_pins (ptr );
287+ clock_add_to_group (clock_usb0 , 0 );
288+
289+ usb_hcd_set_power_ctrl_polarity (ptr , true);
290+ /* Wait USB_PWR pin control vbus power stable. Time depend on decoupling capacitor, you can decrease or increase this time */
291+ board_delay_ms (100 );
332292
333- /* As QFN48 and LQFP64 has no vbus pin, so should be call usb_phy_using_internal_vbus() API to use internal vbus. */
334- /* usb_phy_using_internal_vbus(BOARD_USB); */
293+ /* As QFN48 and LQFP64 has no vbus pin, so should be call usb_phy_using_internal_vbus() API to use internal vbus. */
294+ /* usb_phy_using_internal_vbus(ptr); */
295+ }
335296}
336297
337298void board_led_write (uint8_t state )
@@ -383,12 +344,6 @@ void board_init_spi_pins_with_gpio_as_cs(SPI_Type *ptr)
383344 GPIO_GET_PIN_INDEX (BOARD_SPI_CS_PIN ), !BOARD_SPI_CS_ACTIVE_LEVEL );
384345}
385346
386- void board_usb_vbus_ctrl (uint8_t usb_index , uint8_t level )
387- {
388- (void ) usb_index ;
389- (void ) level ;
390- }
391-
392347uint32_t board_init_adc_clock (void * ptr , bool clk_src_bus )
393348{
394349 uint32_t freq = 0 ;
@@ -402,7 +357,7 @@ uint32_t board_init_adc_clock(void *ptr, bool clk_src_bus)
402357 clock_set_adc_source (clock_adc0 , clk_adc_src_ana0 );
403358 clock_set_source_divider (clock_ana0 , clk_src_pll0_clk2 , 2U );
404359 }
405-
360+ clock_add_to_group ( clock_adc0 , 0 );
406361 freq = clock_get_frequency (clock_adc0 );
407362 } else if (ptr == (void * )HPM_ADC1 ) {
408363 if (clk_src_bus ) {
@@ -413,7 +368,7 @@ uint32_t board_init_adc_clock(void *ptr, bool clk_src_bus)
413368 clock_set_adc_source (clock_adc1 , clk_adc_src_ana1 );
414369 clock_set_source_divider (clock_ana1 , clk_src_pll0_clk2 , 2U );
415370 }
416-
371+ clock_add_to_group ( clock_adc1 , 0 );
417372 freq = clock_get_frequency (clock_adc1 );
418373 }
419374
@@ -429,6 +384,13 @@ void board_init_acmp_pins(void)
429384{
430385 init_acmp_pins ();
431386}
387+
388+ void board_init_acmp_clock (ACMP_Type * ptr )
389+ {
390+ (void )ptr ;
391+ clock_add_to_group (BOARD_ACMP_CLK , BOARD_RUNNING_CORE & 0x1 );
392+ }
393+
432394uint32_t board_init_dac_clock (DAC_Type * ptr , bool clk_src_ahb )
433395{
434396 uint32_t freq = 0 ;
@@ -442,7 +404,7 @@ uint32_t board_init_dac_clock(DAC_Type *ptr, bool clk_src_ahb)
442404 clock_set_dac_source (clock_dac0 , clk_dac_src_ana2 );
443405 clock_set_source_divider (clock_ana2 , clk_src_pll0_clk1 , 2 );
444406 }
445-
407+ clock_add_to_group ( clock_dac0 , 0 );
446408 freq = clock_get_frequency (clock_dac0 );
447409 } else if (ptr == HPM_DAC1 ) {
448410 if (clk_src_ahb == true) {
@@ -453,7 +415,7 @@ uint32_t board_init_dac_clock(DAC_Type *ptr, bool clk_src_ahb)
453415 clock_set_dac_source (clock_dac1 , clk_dac_src_ana3 );
454416 clock_set_source_divider (clock_ana3 , clk_src_pll0_clk1 , 2 );
455417 }
456-
418+ clock_add_to_group ( clock_dac1 , 0 );
457419 freq = clock_get_frequency (clock_dac1 );
458420 }
459421
@@ -529,19 +491,15 @@ uint32_t board_init_uart_clock(UART_Type *ptr)
529491{
530492 uint32_t freq = 0U ;
531493 if (ptr == HPM_UART0 ) {
532- clock_set_source_divider (clock_uart0 , clk_src_osc24m , 1 );
533494 clock_add_to_group (clock_uart0 , 0 );
534495 freq = clock_get_frequency (clock_uart0 );
535496 } else if (ptr == HPM_UART1 ) {
536- clock_set_source_divider (clock_uart1 , clk_src_osc24m , 1 );
537497 clock_add_to_group (clock_uart1 , 0 );
538498 freq = clock_get_frequency (clock_uart1 );
539499 } else if (ptr == HPM_UART2 ) {
540- clock_set_source_divider (clock_uart2 , clk_src_pll0_clk2 , 8 );
541500 clock_add_to_group (clock_uart2 , 0 );
542501 freq = clock_get_frequency (clock_uart2 );
543502 } else if (ptr == HPM_UART3 ) {
544- clock_set_source_divider (clock_uart3 , clk_src_pll0_clk2 , 8 );
545503 clock_add_to_group (clock_uart3 , 0 );
546504 freq = clock_get_frequency (clock_uart3 );
547505 }
@@ -572,36 +530,46 @@ void board_i2c_bus_clear(I2C_Type *ptr)
572530 printf ("I2C bus is cleared\n" );
573531}
574532
533+ uint32_t board_init_i2c_clock (I2C_Type * ptr )
534+ {
535+ uint32_t freq = 0 ;
536+
537+ if (ptr == HPM_I2C0 ) {
538+ clock_add_to_group (clock_i2c0 , 0 );
539+ freq = clock_get_frequency (clock_i2c0 );
540+ } else if (ptr == HPM_I2C1 ) {
541+ clock_add_to_group (clock_i2c1 , 0 );
542+ freq = clock_get_frequency (clock_i2c1 );
543+ } else if (ptr == HPM_I2C2 ) {
544+ clock_add_to_group (clock_i2c2 , 0 );
545+ freq = clock_get_frequency (clock_i2c2 );
546+ } else if (ptr == HPM_I2C3 ) {
547+ clock_add_to_group (clock_i2c3 , 0 );
548+ freq = clock_get_frequency (clock_i2c3 );
549+ } else {
550+ ;
551+ }
552+
553+ return freq ;
554+ }
555+
575556void board_init_i2c (I2C_Type * ptr )
576557{
577558 i2c_config_t config ;
578559 hpm_stat_t stat ;
579560 uint32_t freq ;
580- if (ptr == NULL ) {
581- return ;
582- }
583-
584- clock_add_to_group (clock_i2c0 , 0 );
585- clock_add_to_group (clock_i2c1 , 0 );
586- clock_add_to_group (clock_i2c2 , 0 );
587- clock_add_to_group (clock_i2c3 , 0 );
588561
562+ freq = board_init_i2c_clock (ptr );
589563 init_i2c_pins (ptr );
590564 board_i2c_bus_clear (ptr );
591-
592- /* Configure the I2C clock to 24MHz */
593- clock_set_source_divider (BOARD_APP_I2C_CLK_NAME , clk_src_osc24m , 1U );
594-
595565 config .i2c_mode = i2c_mode_normal ;
596566 config .is_10bit_addressing = false;
597- freq = clock_get_frequency (BOARD_APP_I2C_CLK_NAME );
598567 stat = i2c_init_master (ptr , freq , & config );
599568 if (stat != status_success ) {
600569 printf ("failed to initialize i2c 0x%lx\n" , (uint32_t ) ptr );
601570 while (1 ) {
602571 }
603572 }
604-
605573}
606574
607575void board_init_adc_qeiv2_pins (void )
0 commit comments