aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/at91/patches-3.18
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2016-01-19 10:15:04 +0000
committerJohn Crispin <john@openwrt.org>2016-01-19 10:15:04 +0000
commit373594fb4b8bafb77d93a3ef6e678006f9e25fd3 (patch)
treef137312f8ef740c19a573cf0e5080b1ab21c63f7 /target/linux/at91/patches-3.18
parent999d8c87b2011b8dc03d8cd5111303ae54010416 (diff)
downloadupstream-373594fb4b8bafb77d93a3ef6e678006f9e25fd3.tar.gz
upstream-373594fb4b8bafb77d93a3ef6e678006f9e25fd3.tar.bz2
upstream-373594fb4b8bafb77d93a3ef6e678006f9e25fd3.zip
at91: add 4.4 support
This puts the existing patches and config in a 3.18 folder and introduces a 4.4 config and patches. The USB clock fix patch is no longer necessary, and the patches applying to non DT boards has been dropped as the platform has been converted. 4.4 config was generated by copying 3.18 and running make kernel_menuconfig, scripts/kconfig.pl filled in the gaps. Signed-off-by: Ben Whitten <ben.whitten@gmail.com> SVN-Revision: 48349
Diffstat (limited to 'target/linux/at91/patches-3.18')
-rw-r--r--target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch10
-rw-r--r--target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch10
-rw-r--r--target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch82
-rw-r--r--target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch20
-rw-r--r--target/linux/at91/patches-3.18/805-free_some_portc_pins.patch11
-rw-r--r--target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch60
6 files changed, 193 insertions, 0 deletions
diff --git a/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch b/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch
new file mode 100644
index 0000000000..8852b6a4f0
--- /dev/null
+++ b/target/linux/at91/patches-3.18/100-ARM-at91-build-dtb-for-LMU5000.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -28,6 +28,7 @@ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20.dtb
+ dtb-$(CONFIG_ARCH_AT91) += usb_a9g20_lpw.dtb
+ # sam9g45
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9m10g45ek.dtb
++dtb-$(CONFIG_ARCH_AT91) += lmu5000.dtb
+ dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb
+ # sam9n12
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb
diff --git a/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch b/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch
new file mode 100644
index 0000000000..b5a9b68f3d
--- /dev/null
+++ b/target/linux/at91/patches-3.18/101-ARM-at91-build-dtb-for-q5xr5.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -20,6 +20,7 @@ dtb-$(CONFIG_ARCH_AT91) += tny_a9263.dtb
+ dtb-$(CONFIG_ARCH_AT91) += usb_a9263.dtb
+ # sam9g20
+ dtb-$(CONFIG_ARCH_AT91) += at91-foxg20.dtb
++dtb-$(CONFIG_ARCH_AT91) += at91-q5xr5.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek.dtb
+ dtb-$(CONFIG_ARCH_AT91) += at91sam9g20ek_2mmc.dtb
+ dtb-$(CONFIG_ARCH_AT91) += kizbox.dtb
diff --git a/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch b/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch
new file mode 100644
index 0000000000..32e1ac540d
--- /dev/null
+++ b/target/linux/at91/patches-3.18/200-ARM-at91-udc-clockfix-backport.patch
@@ -0,0 +1,82 @@
+--- a/drivers/usb/gadget/udc/at91_udc.c
++++ b/drivers/usb/gadget/udc/at91_udc.c
+@@ -870,8 +870,6 @@ static void clk_on(struct at91_udc *udc)
+ return;
+ udc->clocked = 1;
+
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- clk_enable(udc->uclk);
+ clk_enable(udc->iclk);
+ clk_enable(udc->fclk);
+ }
+@@ -884,8 +882,6 @@ static void clk_off(struct at91_udc *udc
+ udc->gadget.speed = USB_SPEED_UNKNOWN;
+ clk_disable(udc->fclk);
+ clk_disable(udc->iclk);
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- clk_disable(udc->uclk);
+ }
+
+ /*
+@@ -1766,27 +1762,18 @@ static int at91udc_probe(struct platform
+ udc_reinit(udc);
+
+ /* get interface and function clocks */
+- udc->iclk = clk_get(dev, "udc_clk");
+- udc->fclk = clk_get(dev, "udpck");
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- udc->uclk = clk_get(dev, "usb_clk");
+- if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk) ||
+- (IS_ENABLED(CONFIG_COMMON_CLK) && IS_ERR(udc->uclk))) {
++ udc->iclk = clk_get(dev, "pclk");
++ udc->fclk = clk_get(dev, "hclk");
++ if (IS_ERR(udc->iclk) || IS_ERR(udc->fclk)) {
+ DBG("clocks missing\n");
+ retval = -ENODEV;
+ goto fail1;
+ }
+
+- /* don't do anything until we have both gadget driver and VBUS */
+- if (IS_ENABLED(CONFIG_COMMON_CLK)) {
+- clk_set_rate(udc->uclk, 48000000);
+- retval = clk_prepare(udc->uclk);
+- if (retval)
+- goto fail1;
+- }
++ clk_set_rate(udc->fclk, 48000000);
+ retval = clk_prepare(udc->fclk);
+ if (retval)
+- goto fail1a;
++ goto fail1;
+
+ retval = clk_prepare_enable(udc->iclk);
+ if (retval)
+@@ -1860,12 +1847,7 @@ fail1c:
+ clk_unprepare(udc->iclk);
+ fail1b:
+ clk_unprepare(udc->fclk);
+-fail1a:
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- clk_unprepare(udc->uclk);
+ fail1:
+- if (IS_ENABLED(CONFIG_COMMON_CLK) && !IS_ERR(udc->uclk))
+- clk_put(udc->uclk);
+ if (!IS_ERR(udc->fclk))
+ clk_put(udc->fclk);
+ if (!IS_ERR(udc->iclk))
+@@ -1911,15 +1893,11 @@ static int __exit at91udc_remove(struct
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ release_mem_region(res->start, resource_size(res));
+
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- clk_unprepare(udc->uclk);
+ clk_unprepare(udc->fclk);
+ clk_unprepare(udc->iclk);
+
+ clk_put(udc->iclk);
+ clk_put(udc->fclk);
+- if (IS_ENABLED(CONFIG_COMMON_CLK))
+- clk_put(udc->uclk);
+
+ return 0;
+ }
diff --git a/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch b/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch
new file mode 100644
index 0000000000..d0836286bf
--- /dev/null
+++ b/target/linux/at91/patches-3.18/201-ARM-at91-usb-determine_rate-backport.patch
@@ -0,0 +1,20 @@
+--- a/drivers/clk/at91/clk-usb.c
++++ b/drivers/clk/at91/clk-usb.c
+@@ -59,7 +59,7 @@ static unsigned long at91sam9x5_clk_usb_
+ static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
+ unsigned long rate,
+ unsigned long *best_parent_rate,
+- struct clk_hw **best_parent_hw)
++ struct clk **best_parent_clk)
+ {
+ struct clk *parent = NULL;
+ long best_rate = -EINVAL;
+@@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine
+ best_rate = tmp_rate;
+ best_diff = tmp_diff;
+ *best_parent_rate = tmp_parent_rate;
+- *best_parent_hw = __clk_get_hw(parent);
++ *best_parent_clk = parent;
+ }
+
+ if (!best_diff || tmp_rate < rate)
diff --git a/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch b/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch
new file mode 100644
index 0000000000..a9694d1f01
--- /dev/null
+++ b/target/linux/at91/patches-3.18/805-free_some_portc_pins.patch
@@ -0,0 +1,11 @@
+--- a/arch/arm/mach-at91/at91sam9260_devices.c
++++ b/arch/arm/mach-at91/at91sam9260_devices.c
+@@ -507,7 +507,7 @@ static struct platform_device at91sam926
+ .num_resources = ARRAY_SIZE(spi1_resources),
+ };
+
+-static const unsigned spi1_standard_cs[4] = { AT91_PIN_PB3, AT91_PIN_PC5, AT91_PIN_PC4, AT91_PIN_PC3 };
++static const unsigned spi1_standard_cs[2] = { AT91_PIN_PB3, AT91_PIN_PC5 };
+
+ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
+ {
diff --git a/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch b/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch
new file mode 100644
index 0000000000..1da2e4d4f4
--- /dev/null
+++ b/target/linux/at91/patches-3.18/901-AT91-flexibity-default-leds-to-heartbeat.patch
@@ -0,0 +1,60 @@
+--- a/arch/arm/mach-at91/board-flexibity.c
++++ b/arch/arm/mach-at91/board-flexibity.c
+@@ -90,49 +90,49 @@ static struct gpio_led flexibity_leds[]
+ .name = "usb1:green",
+ .gpio = AT91_PIN_PA12,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb1:red",
+ .gpio = AT91_PIN_PA13,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb2:green",
+ .gpio = AT91_PIN_PB26,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb2:red",
+ .gpio = AT91_PIN_PB27,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb3:green",
+ .gpio = AT91_PIN_PC8,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb3:red",
+ .gpio = AT91_PIN_PC6,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb4:green",
+ .gpio = AT91_PIN_PB4,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ },
+ {
+ .name = "usb4:red",
+ .gpio = AT91_PIN_PB5,
+ .active_low = 1,
+- .default_trigger = "default-on",
++ .default_trigger = "heartbeat",
+ }
+ };
+