From d6d7ef592e6eb5f96908fc34cfa1fcf0889ba320 Mon Sep 17 00:00:00 2001 From: Lin Date: Tue, 26 May 2026 09:13:22 +0800 Subject: [PATCH] feat(uart): configure APB2 to 100MHz for 921600 baud rate support diff --git a/longan/brandy/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun50iw10.c b/longan/brandy/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun50iw10.c index 8af1b507c3..fe5ad668d6 100644 --- a/longan/brandy/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun50iw10.c +++ b/longan/brandy/brandy-2.0/u-boot-2018/drivers/clk/sunxi/clk-sun50iw10.c @@ -858,8 +858,6 @@ void init_clocks(void) sunxi_set_clk_priv_ops("dcxo_out", &dcxo_out_priv_ops, set_dcxo_out_priv_ops); sunxi_clk_factor_initlimits(); + /* configure APB2 to 100MHz from pll_periph0 (600MHz / (3 * 2) = 100MHz) */ + writel((0x3 << 24) | (0x1 << 8) | (0x2 << 0), sunxi_clk_base + APB2_CFG); clk_register_fixed_rate(NULL, "hosc", NULL, CLK_IS_ROOT, 24000000); diff --git a/longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts b/longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts index 1824431a42..89c24cb38d 100755 --- a/longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts +++ b/longan/device/config/chips/a133/configs/c3/kickpi-k5c.dts @@ -284,7 +284,7 @@ }; twi0: twi@0x05002000{ - clock-frequency = <400000>; + clock-frequency = <200000>; pinctrl-0 = <&twi0_pins_a>; pinctrl-1 = <&twi0_pins_b>; status = "okay"; diff --git a/longan/kernel/linux-4.9/drivers/clk/sunxi/clk-sun50iw10.c b/longan/kernel/linux-4.9/drivers/clk/sunxi/clk-sun50iw10.c index 80a01120b1..430346ce63 100644 --- a/longan/kernel/linux-4.9/drivers/clk/sunxi/clk-sun50iw10.c +++ b/longan/kernel/linux-4.9/drivers/clk/sunxi/clk-sun50iw10.c @@ -923,8 +923,6 @@ void __init sunxi_clocks_init(struct device_node *node) set_dcxo_out_priv_ops); /*do some initialize arguments here*/ sunxi_clk_factor_initlimits(); + /* configure APB2 to 100MHz from pll_periph0 (600MHz / (3 * 2) = 100MHz) */ + writel((0x3 << 24) | (0x1 << 8) | (0x2 << 0), sunxi_clk_base + APB2_CFG); #ifdef CONFIG_PM_SLEEP register_syscore_ops(&sunxi_clk_syscore_ops); #endif -- 2.34.1