sunxi: various fixes - DT: update USB vbus from 3.3v to 5v - emac: add missing free_irq - DT: add emac aliases - DT: fix interrupts on A20 - modules: add watchdog module - don't compile in mac80211 - don't compile in usbnet
Thanks to Hans de Goede, Zalan Blenessy et al. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu> SVN-Revision: 39204master
parent
e0027ed4ab
commit
ba05c97e5e
@ -0,0 +1,109 @@ |
||||
From b0a614458fb67fdb53e1b5518dabb85d688b196e Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 17 Dec 2013 22:59:17 +0100
|
||||
Subject: [PATCH] ARM: dts: sunxi: usb Vbus is 5v not 3.3v
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10-a1000.dts | 8 ++++----
|
||||
arch/arm/boot/dts/sun4i-a10-cubieboard.dts | 8 ++++----
|
||||
arch/arm/boot/dts/sun5i-a13-olinuxino.dts | 4 ++--
|
||||
arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | 8 ++++----
|
||||
4 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
|
||||
index e3bfc59..315e607 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
|
||||
@@ -147,8 +147,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_vbus_pin>;
|
||||
regulator-name = "usb1-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 6 0>;
|
||||
};
|
||||
@@ -158,8 +158,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb2_vbus_pin>;
|
||||
regulator-name = "usb2-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 3 0>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
|
||||
index 48864a4..0bd2aae 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
|
||||
@@ -158,8 +158,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_vbus_pin>;
|
||||
regulator-name = "usb1-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 6 0>;
|
||||
};
|
||||
@@ -169,8 +169,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb2_vbus_pin>;
|
||||
regulator-name = "usb2-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 3 0>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
|
||||
index 4b73e3e..b255d1b 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
|
||||
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
|
||||
@@ -104,8 +104,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_vbus_pin>;
|
||||
regulator-name = "usb1-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 6 11 0>;
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
|
||||
index 10ea99d..144b11a 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
|
||||
@@ -141,8 +141,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb1_vbus_pin>;
|
||||
regulator-name = "usb1-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 6 0>;
|
||||
};
|
||||
@@ -152,8 +152,8 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usb2_vbus_pin>;
|
||||
regulator-name = "usb2-vbus";
|
||||
- regulator-min-microvolt = <3300000>;
|
||||
- regulator-max-microvolt = <3300000>;
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
gpio = <&pio 7 3 0>;
|
||||
};
|
||||
--
|
||||
1.8.5.1
|
||||
|
@ -0,0 +1,46 @@ |
||||
From e9c56f8d2f851fb6d6ce6794c0f5463b862a878e Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Date: Tue, 10 Dec 2013 19:40:43 +0100
|
||||
Subject: [PATCH] net: allwinner: emac: Add missing free_irq
|
||||
|
||||
The sun4i-emac driver uses devm_request_irq at .ndo_open time, but relies on
|
||||
the managed device mechanism to actually free it. This causes an issue whenever
|
||||
someone wants to restart the interface, the interrupt still being held, and not
|
||||
yet released.
|
||||
|
||||
Fall back to using the regular request_irq at .ndo_open time, and introduce a
|
||||
free_irq during .ndo_stop.
|
||||
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Cc: stable@vger.kernel.org # 3.11+
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/allwinner/sun4i-emac.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/allwinner/sun4i-emac.c b/drivers/net/ethernet/allwinner/sun4i-emac.c
|
||||
index 50b853a..46dfb13 100644
|
||||
--- a/drivers/net/ethernet/allwinner/sun4i-emac.c
|
||||
+++ b/drivers/net/ethernet/allwinner/sun4i-emac.c
|
||||
@@ -717,8 +717,7 @@ static int emac_open(struct net_device *dev)
|
||||
if (netif_msg_ifup(db))
|
||||
dev_dbg(db->dev, "enabling %s\n", dev->name);
|
||||
|
||||
- if (devm_request_irq(db->dev, dev->irq, &emac_interrupt,
|
||||
- 0, dev->name, dev))
|
||||
+ if (request_irq(dev->irq, &emac_interrupt, 0, dev->name, dev))
|
||||
return -EAGAIN;
|
||||
|
||||
/* Initialize EMAC board */
|
||||
@@ -774,6 +773,8 @@ static int emac_stop(struct net_device *ndev)
|
||||
|
||||
emac_shutdown(ndev);
|
||||
|
||||
+ free_irq(ndev->irq, ndev);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.5.1
|
||||
|
@ -0,0 +1,70 @@ |
||||
From e751cce9b7b106b62c6d2c4f098c28c7feb10ef6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Emilio=20L=C3=B3pez?= <emilio@elopez.com.ar>
|
||||
Date: Sat, 16 Nov 2013 15:17:29 -0300
|
||||
Subject: [PATCH] ARM: sunxi: dt: add EMAC aliases
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
U-Boot uses the ethernet0 alias to locate the right node to fill in
|
||||
the MAC address of the first ethernet interface. This patch adds the
|
||||
alias on all the sunxi SoCs with EMAC. In this way, people using
|
||||
ethernet in U-Boot (eg, for tftp) can keep a consistent address on both
|
||||
U-Boot and Linux with no additional effort.
|
||||
|
||||
Signed-off-by: Emilio López <emilio@elopez.com.ar>
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun4i-a10.dtsi | 4 ++++
|
||||
arch/arm/boot/dts/sun5i-a10s.dtsi | 4 ++++
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 4 ++++
|
||||
3 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
index f11f292..0bf70ee 100644
|
||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
|
||||
@@ -15,6 +15,10 @@
|
||||
/ {
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
index 5247674..b4764be 100644
|
||||
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
|
||||
@@ -16,6 +16,10 @@
|
||||
/ {
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
cpu@0 {
|
||||
compatible = "arm,cortex-a8";
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index 830fcd5..74bf906 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -16,6 +16,10 @@
|
||||
/ {
|
||||
interrupt-parent = <&gic>;
|
||||
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ };
|
||||
+
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
--
|
||||
1.8.5.1
|
||||
|
@ -0,0 +1,179 @@ |
||||
From 3e52e08e7f8f9cb1137f232e3bfa00f89ed27475 Mon Sep 17 00:00:00 2001
|
||||
From: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Date: Sat, 7 Dec 2013 12:38:32 +0100
|
||||
Subject: [PATCH] ARM: sun7i: dt: Fix interrupt trigger types
|
||||
|
||||
The Allwinner A20 uses the ARM GIC as its internal interrupts controller. The
|
||||
GIC can work on several interrupt triggers, and the A20 was actually setting it
|
||||
up to use a rising edge as a trigger, while it was actually a level high
|
||||
trigger, leading to some interrupts that would be completely ignored if the
|
||||
edge was missed.
|
||||
|
||||
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
||||
Reported-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
arch/arm/boot/dts/sun7i-a20.dtsi | 42 ++++++++++++++++++++--------------------
|
||||
1 file changed, 21 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index f1a6b24..0b7fcc1 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -298,7 +298,7 @@
|
||||
emac: ethernet@01c0b000 {
|
||||
compatible = "allwinner,sun4i-emac";
|
||||
reg = <0x01c0b000 0x1000>;
|
||||
- interrupts = <0 55 1>;
|
||||
+ interrupts = <0 55 4>;
|
||||
clocks = <&ahb_gates 17>;
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -324,7 +324,7 @@
|
||||
pio: pinctrl@01c20800 {
|
||||
compatible = "allwinner,sun7i-a20-pinctrl";
|
||||
reg = <0x01c20800 0x400>;
|
||||
- interrupts = <0 28 1>;
|
||||
+ interrupts = <0 28 4>;
|
||||
clocks = <&apb0_gates 5>;
|
||||
gpio-controller;
|
||||
interrupt-controller;
|
||||
@@ -405,12 +405,12 @@
|
||||
timer@01c20c00 {
|
||||
compatible = "allwinner,sun4i-timer";
|
||||
reg = <0x01c20c00 0x90>;
|
||||
- interrupts = <0 22 1>,
|
||||
- <0 23 1>,
|
||||
- <0 24 1>,
|
||||
- <0 25 1>,
|
||||
- <0 67 1>,
|
||||
- <0 68 1>;
|
||||
+ interrupts = <0 22 4>,
|
||||
+ <0 23 4>,
|
||||
+ <0 24 4>,
|
||||
+ <0 25 4>,
|
||||
+ <0 67 4>,
|
||||
+ <0 68 4>;
|
||||
clocks = <&osc24M>;
|
||||
};
|
||||
|
||||
@@ -432,7 +432,7 @@
|
||||
uart0: serial@01c28000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c28000 0x400>;
|
||||
- interrupts = <0 1 1>;
|
||||
+ interrupts = <0 1 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 16>;
|
||||
@@ -442,7 +442,7 @@
|
||||
uart1: serial@01c28400 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c28400 0x400>;
|
||||
- interrupts = <0 2 1>;
|
||||
+ interrupts = <0 2 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 17>;
|
||||
@@ -452,7 +452,7 @@
|
||||
uart2: serial@01c28800 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c28800 0x400>;
|
||||
- interrupts = <0 3 1>;
|
||||
+ interrupts = <0 3 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 18>;
|
||||
@@ -462,7 +462,7 @@
|
||||
uart3: serial@01c28c00 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c28c00 0x400>;
|
||||
- interrupts = <0 4 1>;
|
||||
+ interrupts = <0 4 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 19>;
|
||||
@@ -472,7 +472,7 @@
|
||||
uart4: serial@01c29000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c29000 0x400>;
|
||||
- interrupts = <0 17 1>;
|
||||
+ interrupts = <0 17 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 20>;
|
||||
@@ -482,7 +482,7 @@
|
||||
uart5: serial@01c29400 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c29400 0x400>;
|
||||
- interrupts = <0 18 1>;
|
||||
+ interrupts = <0 18 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 21>;
|
||||
@@ -492,7 +492,7 @@
|
||||
uart6: serial@01c29800 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c29800 0x400>;
|
||||
- interrupts = <0 19 1>;
|
||||
+ interrupts = <0 19 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 22>;
|
||||
@@ -502,7 +502,7 @@
|
||||
uart7: serial@01c29c00 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x01c29c00 0x400>;
|
||||
- interrupts = <0 20 1>;
|
||||
+ interrupts = <0 20 4>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clocks = <&apb1_gates 23>;
|
||||
@@ -512,7 +512,7 @@
|
||||
i2c0: i2c@01c2ac00 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2ac00 0x400>;
|
||||
- interrupts = <0 7 1>;
|
||||
+ interrupts = <0 7 4>;
|
||||
clocks = <&apb1_gates 0>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@@ -521,7 +521,7 @@
|
||||
i2c1: i2c@01c2b000 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2b000 0x400>;
|
||||
- interrupts = <0 8 1>;
|
||||
+ interrupts = <0 8 4>;
|
||||
clocks = <&apb1_gates 1>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@@ -530,7 +530,7 @@
|
||||
i2c2: i2c@01c2b400 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2b400 0x400>;
|
||||
- interrupts = <0 9 1>;
|
||||
+ interrupts = <0 9 4>;
|
||||
clocks = <&apb1_gates 2>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@@ -539,7 +539,7 @@
|
||||
i2c3: i2c@01c2b800 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2b800 0x400>;
|
||||
- interrupts = <0 88 1>;
|
||||
+ interrupts = <0 88 4>;
|
||||
clocks = <&apb1_gates 3>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
@@ -548,7 +548,7 @@
|
||||
i2c4: i2c@01c2bc00 {
|
||||
compatible = "allwinner,sun4i-i2c";
|
||||
reg = <0x01c2bc00 0x400>;
|
||||
- interrupts = <0 89 1>;
|
||||
+ interrupts = <0 89 4>;
|
||||
clocks = <&apb1_gates 15>;
|
||||
clock-frequency = <100000>;
|
||||
status = "disabled";
|
||||
--
|
||||
1.8.5.1
|
||||
|
Loading…
Reference in new issue