{
        struct misc_regs *const misc_p =
            (struct misc_regs *)CONFIG_SPEAR_MISCBASE;
-       u32 periph1_clken;
+       u32 periph1_clken, periph_clk_cfg;
 
        periph1_clken = readl(&misc_p->periph1_clken);
 
 
 #if defined(CONFIG_PL011_SERIAL)
        periph1_clken |= MISC_UART0ENB;
+
+       periph_clk_cfg = readl(&misc_p->periph_clk_cfg);
+       periph_clk_cfg &= ~CONFIG_SPEAR_UARTCLKMSK;
+       periph_clk_cfg |= CONFIG_SPEAR_UART48M;
+       writel(periph_clk_cfg, &misc_p->periph_clk_cfg);
 #endif
 #if defined(CONFIG_DESIGNWARE_ETH)
        periph1_clken |= MISC_ETHENB;
 
 /* PERIPH_CLK_CFG value */
 #define MISC_GPT3SYNTH                 0x00000400
 #define MISC_GPT4SYNTH                 0x00000800
+#define CONFIG_SPEAR_UART48M           0
+#define CONFIG_SPEAR_UARTCLKMSK                (0x1 << 4)
 
 /* PRSC_CLK_CFG value */
 /*