|
|
@@ -1,88 +0,0 @@
|
|
|
-From 3487b074a742bc3300683e91e3ade383b659fbe9 Mon Sep 17 00:00:00 2001
|
|
|
-From: Gregory CLEMENT <[email protected]>
|
|
|
-Date: Tue, 4 Dec 2012 18:04:59 +0100
|
|
|
-Subject: [PATCH] arm: mvebu: Use dw-apb-uart instead of ns16650 as UART
|
|
|
- driver
|
|
|
-
|
|
|
-The UART controller used in the Armada 370 and Armada XP SoCs is the
|
|
|
-Synopsys DesignWare 8250 (aka Synopsys DesignWare ABP UART). The
|
|
|
-improper use of the ns16550 can lead to a kernel oops during boot if
|
|
|
-a character is sent to the UART before the initialization of the
|
|
|
-driver. The DW APB has an extra interrupt that gets raised when
|
|
|
-writing to the LCR when busy. This explains why we need to use
|
|
|
-dw-apb-uart driver to handle this.
|
|
|
-
|
|
|
-Signed-off-by: Gregory CLEMENT <[email protected]>
|
|
|
----
|
|
|
- arch/arm/boot/dts/armada-370-xp.dtsi | 6 ++++--
|
|
|
- arch/arm/boot/dts/armada-xp.dtsi | 6 ++++--
|
|
|
- arch/arm/configs/mvebu_defconfig | 1 +
|
|
|
- 3 files changed, 9 insertions(+), 4 deletions(-)
|
|
|
-
|
|
|
-diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi
|
|
|
-index cf6c48a..4c0abe8 100644
|
|
|
---- a/arch/arm/boot/dts/armada-370-xp.dtsi
|
|
|
-+++ b/arch/arm/boot/dts/armada-370-xp.dtsi
|
|
|
-@@ -50,17 +50,19 @@
|
|
|
- ranges;
|
|
|
-
|
|
|
- serial@d0012000 {
|
|
|
-- compatible = "ns16550";
|
|
|
-+ compatible = "snps,dw-apb-uart";
|
|
|
- reg = <0xd0012000 0x100>;
|
|
|
- reg-shift = <2>;
|
|
|
- interrupts = <41>;
|
|
|
-+ reg-io-width = <4>;
|
|
|
- status = "disabled";
|
|
|
- };
|
|
|
- serial@d0012100 {
|
|
|
-- compatible = "ns16550";
|
|
|
-+ compatible = "snps,dw-apb-uart";
|
|
|
- reg = <0xd0012100 0x100>;
|
|
|
- reg-shift = <2>;
|
|
|
- interrupts = <42>;
|
|
|
-+ reg-io-width = <4>;
|
|
|
- status = "disabled";
|
|
|
- };
|
|
|
-
|
|
|
-diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
|
|
|
-index 367aa3f..8a85ffe 100644
|
|
|
---- a/arch/arm/boot/dts/armada-xp.dtsi
|
|
|
-+++ b/arch/arm/boot/dts/armada-xp.dtsi
|
|
|
-@@ -42,17 +42,19 @@
|
|
|
-
|
|
|
- soc {
|
|
|
- serial@d0012200 {
|
|
|
-- compatible = "ns16550";
|
|
|
-+ compatible = "snps,dw-apb-uart";
|
|
|
- reg = <0xd0012200 0x100>;
|
|
|
- reg-shift = <2>;
|
|
|
- interrupts = <43>;
|
|
|
-+ reg-io-width = <4>;
|
|
|
- status = "disabled";
|
|
|
- };
|
|
|
- serial@d0012300 {
|
|
|
-- compatible = "ns16550";
|
|
|
-+ compatible = "snps,dw-apb-uart";
|
|
|
- reg = <0xd0012300 0x100>;
|
|
|
- reg-shift = <2>;
|
|
|
- interrupts = <44>;
|
|
|
-+ reg-io-width = <4>;
|
|
|
- status = "disabled";
|
|
|
- };
|
|
|
-
|
|
|
-diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
|
|
|
-index a702fb3..3ba35f1 100644
|
|
|
---- a/arch/arm/configs/mvebu_defconfig
|
|
|
-+++ b/arch/arm/configs/mvebu_defconfig
|
|
|
-@@ -34,6 +34,7 @@ CONFIG_MARVELL_PHY=y
|
|
|
- CONFIG_SERIAL_8250=y
|
|
|
- CONFIG_SERIAL_8250_CONSOLE=y
|
|
|
- CONFIG_SERIAL_OF_PLATFORM=y
|
|
|
-+CONFIG_SERIAL_8250_DW=y
|
|
|
- CONFIG_I2C=y
|
|
|
- CONFIG_I2C_MV64XXX=y
|
|
|
- CONFIG_GPIOLIB=y
|
|
|
---
|
|
|
-1.7.10.4
|
|
|
-
|