Commit b24212fb authored by Gregory CLEMENT's avatar Gregory CLEMENT Committed by Jason Cooper

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: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent d1c3ed66
...@@ -50,17 +50,19 @@ soc { ...@@ -50,17 +50,19 @@ soc {
ranges; ranges;
serial@d0012000 { serial@d0012000 {
compatible = "ns16550"; compatible = "snps,dw-apb-uart";
reg = <0xd0012000 0x100>; reg = <0xd0012000 0x100>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <41>; interrupts = <41>;
reg-io-width = <4>;
status = "disabled"; status = "disabled";
}; };
serial@d0012100 { serial@d0012100 {
compatible = "ns16550"; compatible = "snps,dw-apb-uart";
reg = <0xd0012100 0x100>; reg = <0xd0012100 0x100>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <42>; interrupts = <42>;
reg-io-width = <4>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -42,17 +42,19 @@ armada-370-xp-pmsu@d0022000 { ...@@ -42,17 +42,19 @@ armada-370-xp-pmsu@d0022000 {
soc { soc {
serial@d0012200 { serial@d0012200 {
compatible = "ns16550"; compatible = "snps,dw-apb-uart";
reg = <0xd0012200 0x100>; reg = <0xd0012200 0x100>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <43>; interrupts = <43>;
reg-io-width = <4>;
status = "disabled"; status = "disabled";
}; };
serial@d0012300 { serial@d0012300 {
compatible = "ns16550"; compatible = "snps,dw-apb-uart";
reg = <0xd0012300 0x100>; reg = <0xd0012300 0x100>;
reg-shift = <2>; reg-shift = <2>;
interrupts = <44>; interrupts = <44>;
reg-io-width = <4>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -33,9 +33,7 @@ CONFIG_MVNETA=y ...@@ -33,9 +33,7 @@ CONFIG_MVNETA=y
CONFIG_MARVELL_PHY=y CONFIG_MARVELL_PHY=y
CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=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 CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y CONFIG_GPIO_SYSFS=y
# CONFIG_USB_SUPPORT is not set # CONFIG_USB_SUPPORT is not set
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment