@@ -88,16 +88,16 @@ void board_init_console(void)
8888 * uart rx pin when configuring pin function will cause a wrong data to be received.
8989 * And a uart rx dma request will be generated by default uart fifo dma trigger level.
9090 */
91- init_uart_pins ((UART_Type * ) BOARD_CONSOLE_BASE );
91+ init_uart_pins ((UART_Type * ) BOARD_CONSOLE_UART_BASE );
9292
9393 /* Configure the UART clock to 24MHz */
94- clock_set_source_divider (BOARD_CONSOLE_CLK_NAME , clk_src_osc24m , 1U );
95- clock_add_to_group (BOARD_CONSOLE_CLK_NAME , 0 );
94+ clock_set_source_divider (BOARD_CONSOLE_UART_CLK_NAME , clk_src_osc24m , 1U );
95+ clock_add_to_group (BOARD_CONSOLE_UART_CLK_NAME , 0 );
9696
9797 cfg .type = BOARD_CONSOLE_TYPE ;
98- cfg .base = (uint32_t )BOARD_CONSOLE_BASE ;
99- cfg .src_freq_in_hz = clock_get_frequency (BOARD_CONSOLE_CLK_NAME );
100- cfg .baudrate = BOARD_CONSOLE_BAUDRATE ;
98+ cfg .base = (uint32_t )BOARD_CONSOLE_UART_BASE ;
99+ cfg .src_freq_in_hz = clock_get_frequency (BOARD_CONSOLE_UART_CLK_NAME );
100+ cfg .baudrate = BOARD_CONSOLE_UART_BAUDRATE ;
101101
102102 if (status_success != console_init (& cfg )) {
103103 /* failed to initialize debug console */
@@ -211,10 +211,6 @@ void board_init_clock(void)
211211 clock_add_to_group (clock_can2 , 0 );
212212 clock_add_to_group (clock_can3 , 0 );
213213 clock_add_to_group (clock_ptpc , 0 );
214- clock_add_to_group (clock_lin0 , 0 );
215- clock_add_to_group (clock_lin1 , 0 );
216- clock_add_to_group (clock_lin2 , 0 );
217- clock_add_to_group (clock_lin3 , 0 );
218214 clock_add_to_group (clock_gptmr0 , 0 );
219215 clock_add_to_group (clock_gptmr1 , 0 );
220216 clock_add_to_group (clock_gptmr2 , 0 );
@@ -332,6 +328,8 @@ void board_init_usb_pins(void)
332328{
333329 init_usb_pins ();
334330 usb_hcd_set_power_ctrl_polarity (BOARD_USB , true);
331+ /* Wait USB_PWR pin control vbus power stable. Time depend on decoupling capacitor, you can decrease or increase this time */
332+ board_delay_ms (100 );
335333
336334 /* As QFN32, QFN48 and LQFP64 has no vbus pin, so should be call usb_phy_using_internal_vbus() API to use internal vbus. */
337335 /* usb_phy_using_internal_vbus(BOARD_USB); */
@@ -386,26 +384,6 @@ void board_init_spi_pins_with_gpio_as_cs(SPI_Type *ptr)
386384 GPIO_GET_PIN_INDEX (BOARD_SPI_CS_PIN ), !BOARD_SPI_CS_ACTIVE_LEVEL );
387385}
388386
389- void board_init_lin_pins (LINV2_Type * ptr )
390- {
391- init_lin_pins (ptr );
392- gpio_set_pin_output_with_initial (BOARD_12V_EN_GPIO_CTRL , BOARD_12V_EN_GPIO_INDEX , BOARD_12V_EN_GPIO_PIN , 1 ); /* enable 12v output */
393- }
394-
395- uint32_t board_init_lin_clock (LINV2_Type * ptr )
396- {
397- if (ptr == HPM_LIN2 ) {
398- clock_add_to_group (clock_lin2 , 0 );
399- clock_set_source_divider (clock_lin2 , clk_src_pll1_clk0 , 40U ); /* 20MHz */
400- return clock_get_frequency (clock_lin2 );
401- } else if (ptr == HPM_LIN3 ) {
402- clock_add_to_group (clock_lin3 , 0 );
403- clock_set_source_divider (clock_lin3 , clk_src_pll1_clk0 , 40U ); /* 20MHz */
404- return clock_get_frequency (clock_lin3 );
405- }
406- return 0 ;
407- }
408-
409387void board_usb_vbus_ctrl (uint8_t usb_index , uint8_t level )
410388{
411389 (void ) usb_index ;
@@ -559,6 +537,10 @@ uint32_t board_init_uart_clock(UART_Type *ptr)
559537 clock_set_source_divider (clock_uart2 , clk_src_pll0_clk2 , 8 );
560538 clock_add_to_group (clock_uart2 , 0 );
561539 freq = clock_get_frequency (clock_uart2 );
540+ } else if (ptr == HPM_UART3 ) {
541+ clock_set_source_divider (clock_uart3 , clk_src_pll0_clk2 , 8 );
542+ clock_add_to_group (clock_uart3 , 0 );
543+ freq = clock_get_frequency (clock_uart3 );
562544 }
563545
564546 return freq ;
@@ -620,4 +602,16 @@ void board_init_i2c(I2C_Type *ptr)
620602void board_init_adc_qeiv2_pins (void )
621603{
622604 init_adc_qeiv2_pins ();
623- }
605+ }
606+
607+ void board_lin_transceiver_control (bool enable )
608+ {
609+ init_lin_transceiver_ctrl_pin ();
610+ if (enable ) {
611+ gpio_set_pin_output_with_initial (BOARD_12V_EN_GPIO_CTRL , BOARD_12V_EN_GPIO_INDEX , BOARD_12V_EN_GPIO_PIN , 1 ); /* enable 12v output */
612+ gpio_set_pin_output_with_initial (BOARD_LIN_TRANSCEIVER_GPIO_CTRL , BOARD_LIN_TRANSCEIVER_GPIO_INDEX , BOARD_LIN_TRANSCEIVER_GPIO_PIN , 1 ); /* disable transceiver sleep */
613+ } else {
614+ gpio_set_pin_output_with_initial (BOARD_12V_EN_GPIO_CTRL , BOARD_12V_EN_GPIO_INDEX , BOARD_12V_EN_GPIO_PIN , 0 ); /* disable 12v output */
615+ gpio_set_pin_output_with_initial (BOARD_LIN_TRANSCEIVER_GPIO_CTRL , BOARD_LIN_TRANSCEIVER_GPIO_INDEX , BOARD_LIN_TRANSCEIVER_GPIO_PIN , 0 ); /* enable transceiver sleep */
616+ }
617+ }
0 commit comments