diff options
author | Jason M. Bills <jason.m.bills@linux.intel.com> | 2020-12-08 00:45:20 +0300 |
---|---|---|
committer | Jason M. Bills <jason.m.bills@linux.intel.com> | 2020-12-10 01:15:05 +0300 |
commit | 82dbc15a05125a812c140a3c8cff81c366482229 (patch) | |
tree | 9c8f1ad262a2e281f20340cf8646aca6f8596044 /meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch | |
parent | 8d6ae7f2a817751fad151168fa10ce28ee0869d8 (diff) | |
download | openbmc-82dbc15a05125a812c140a3c8cff81c366482229.tar.xz |
Update to internal 0.26
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch deleted file mode 100644 index 5240a05f5..000000000 --- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed/0031-Add-high-speed-baud-rate-support-for-UART.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 0bc792097e73c07bc324e2c9b0172fb27b51a087 Mon Sep 17 00:00:00 2001 -From: Yong Li <yong.b.li@linux.intel.com> -Date: Wed, 2 Jan 2019 15:06:43 +0800 -Subject: [PATCH] Add high speed baud rate support for UART - -In order to support high speed baud rate(921600 bps), -the default UART clock(24MHz) needs to be switched -to 192MHz(from USB2.0 port1 PHY). - -Create a new 192M Hz clock and assign it to uart, -based on uart clock source configuration in SCU4C. - -bootloader(u-boot) will set SCU4C based on the environment configuration - -Signed-off-by: Yong Li <yong.b.li@linux.intel.com> ---- - drivers/clk/clk-aspeed.c | 44 +++++++++++++++++++++++++++----- - include/dt-bindings/clock/aspeed-clock.h | 2 ++ - 2 files changed, 39 insertions(+), 7 deletions(-) - -diff --git a/drivers/clk/clk-aspeed.c b/drivers/clk/clk-aspeed.c -index 411ff5fb2c07..5e1c87bc8a99 100644 ---- a/drivers/clk/clk-aspeed.c -+++ b/drivers/clk/clk-aspeed.c -@@ -14,7 +14,9 @@ - - #include "clk-aspeed.h" - --#define ASPEED_NUM_CLKS 38 -+#define ASPEED_NUM_CLKS ASPEED_CLK_MAX -+#define UART_HIGH_SPEED_CLK 192000000 -+#define UART_LOW_SPEED_CLK 24000000 - - #define ASPEED_RESET2_OFFSET 32 - -@@ -29,6 +31,12 @@ - #define ASPEED_MISC_CTRL 0x2c - #define UART_DIV13_EN BIT(12) - #define ASPEED_MAC_CLK_DLY 0x48 -+#define ASPEED_MISC2_CTRL 0x4c -+#define UART1_HS_CLK_EN BIT(24) -+#define UART2_HS_CLK_EN BIT(25) -+#define UART3_HS_CLK_EN BIT(26) -+#define UART4_HS_CLK_EN BIT(27) -+#define UART5_HS_CLK_EN BIT(28) - #define ASPEED_STRAP 0x70 - #define CLKIN_25MHZ_EN BIT(23) - #define AST2400_CLK_SOURCE_SEL BIT(18) -@@ -386,7 +394,7 @@ static int aspeed_clk_probe(struct platform_device *pdev) - struct aspeed_reset *ar; - struct regmap *map; - struct clk_hw *hw; -- u32 val, rate; -+ u32 val, rate, rate_hi; - int i, ret; - - map = syscon_node_to_regmap(dev->of_node); -@@ -420,16 +428,25 @@ static int aspeed_clk_probe(struct platform_device *pdev) - - /* UART clock div13 setting */ - regmap_read(map, ASPEED_MISC_CTRL, &val); -- if (val & UART_DIV13_EN) -- rate = 24000000 / 13; -- else -- rate = 24000000; -+ if (val & UART_DIV13_EN) { -+ rate = UART_LOW_SPEED_CLK / 13; -+ rate_hi = UART_HIGH_SPEED_CLK / 13; -+ } else { -+ rate = UART_LOW_SPEED_CLK; -+ rate_hi = UART_HIGH_SPEED_CLK; -+ } - /* TODO: Find the parent data for the uart clock */ - hw = clk_hw_register_fixed_rate(dev, "uart", NULL, 0, rate); - if (IS_ERR(hw)) - return PTR_ERR(hw); - aspeed_clk_data->hws[ASPEED_CLK_UART] = hw; - -+ hw = clk_hw_register_fixed_rate(dev, "uart-hs", "usb-port1-gate", 0, -+ rate_hi); -+ if (IS_ERR(hw)) -+ return PTR_ERR(hw); -+ aspeed_clk_data->hws[ASPEED_CLK_UART_HS] = hw; -+ - /* - * Memory controller (M-PLL) PLL. This clock is configured by the - * bootloader, and is exposed to Linux as a read-only clock rate. -@@ -539,9 +556,22 @@ static int aspeed_clk_probe(struct platform_device *pdev) - * UART[1..5] clock source mux - */ - -+ /* Get the uart clock source configuration from SCU4C*/ -+ regmap_read(map, ASPEED_MISC2_CTRL, &val); - for (i = 0; i < ARRAY_SIZE(aspeed_gates); i++) { - const struct aspeed_gate_data *gd = &aspeed_gates[i]; - u32 gate_flags; -+ char *parent_name; -+ -+ /* For uart, needs to adjust the clock based on SCU4C value */ -+ if ((i == ASPEED_CLK_GATE_UART1CLK && (val & UART1_HS_CLK_EN)) || -+ (i == ASPEED_CLK_GATE_UART2CLK && (val & UART2_HS_CLK_EN)) || -+ (i == ASPEED_CLK_GATE_UART5CLK && (val & UART5_HS_CLK_EN)) || -+ (i == ASPEED_CLK_GATE_UART3CLK && (val & UART3_HS_CLK_EN)) || -+ (i == ASPEED_CLK_GATE_UART4CLK && (val & UART4_HS_CLK_EN))) -+ parent_name = "uart-hs"; -+ else -+ parent_name = gd->parent_name; - - /* Special case: the USB port 1 clock (bit 14) is always - * working the opposite way from the other ones. -@@ -549,7 +579,7 @@ static int aspeed_clk_probe(struct platform_device *pdev) - gate_flags = (gd->clock_idx == 14) ? 0 : CLK_GATE_SET_TO_DISABLE; - hw = aspeed_clk_hw_register_gate(dev, - gd->name, -- gd->parent_name, -+ parent_name, - gd->flags, - map, - gd->clock_idx, -diff --git a/include/dt-bindings/clock/aspeed-clock.h b/include/dt-bindings/clock/aspeed-clock.h -index 9ff4f6e4558c..41d531dd0b48 100644 ---- a/include/dt-bindings/clock/aspeed-clock.h -+++ b/include/dt-bindings/clock/aspeed-clock.h -@@ -41,6 +41,8 @@ - #define ASPEED_CLK_24M 35 - #define ASPEED_CLK_MAC1RCLK 36 - #define ASPEED_CLK_MAC2RCLK 37 -+#define ASPEED_CLK_UART_HS 38 -+#define ASPEED_CLK_MAX 39 - - #define ASPEED_RESET_XDMA 0 - #define ASPEED_RESET_MCTP 1 --- -2.7.4 - |