Add AVR32 support for linux-2.6.28.2

This commit is contained in:
Ulf Samuelsson 2009-01-29 09:32:45 +00:00
parent d459b1bc3d
commit b47232e869
6 changed files with 16954 additions and 49 deletions

View File

@ -3,70 +3,28 @@ choice
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default BR2_ARCH_AVR32_2_6_27_6 if BR2_LINUX_2_6_27_6
default BR2_ARCH_AVR32_2_6_25_10 if BR2_LINUX_2_6_25
default BR2_ARCH_AVR32_2_6_24 if BR2_LINUX_2_6_24
default BR2_ARCH_AVR32_2_6_23 if BR2_LINUX_2_6_23
default BR2_ARCH_AVR32_2_6_22_10 if BR2_LINUX_2_6_22 || BR2_LINUX_2_6_22_10
default BR2_ARCH_AVR32_2_6_22_1 if BR2_LINUX_2_6_22_1
default BR2_ARCH_AVR32_2_6_21_5 if BR2_LINUX_2_6_21 || BR2_LINUX_2_6_21_5
default BR2_ARCH_AVR32_2_6_20_4 if BR2_LINUX_2_6_20 || BR2_LINUX_2_6_20_4
default BR2_ARCH_AVR32_2_6_24
default BR2_ARCH_AVR32_2_6_28_2
help
Select a patch to add to the Linux kernel
config BR2_ARCH_AVR32_2_6_28_2
bool "2.6.28.2"
help
Apply the avr32 linux-2.6.28.2 patches
config BR2_ARCH_AVR32_2_6_27_6
bool "2.6.27.6"
help
Apply the avr32 linux-2.6.27.6 patches
config BR2_ARCH_AVR32_2_6_25_10
bool "2.6.25.10"
help
Apply the avr32 linux-2.6.25.10 patches
config BR2_ARCH_AVR32_2_6_24
bool "2.6.24"
help
Apply the avr32 linux-2.6.24 patches
config BR2_ARCH_AVR32_2_6_23
bool "2.6.23"
help
Apply the avr32 linux-2.6.23 patches
config BR2_ARCH_AVR32_2_6_22_10
bool "2.6.22.10"
help
Apply the avr32 linux-2.6.22.10 patches
config BR2_ARCH_AVR32_2_6_22_1
bool "2.6.22.1"
help
Apply the avr32 linux-2.6.22.1 patches
config BR2_ARCH_AVR32_2_6_21_5
bool "2.6.21.5"
help
Apply the avr32 linux-2.6.21.5 patches
config BR2_ARCH_AVR32_2_6_20_4
bool "2.6.20.4"
help
Apply the avr32 linux-2.6.20.4 patches
endchoice
config BR2_KERNEL_ARCH_PATCH_VERSION
string
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
depends on BR2_avr32
default "2.6.28.2" if BR2_ARCH_AVR32_2_6_28_2
default "2.6.27.6" if BR2_ARCH_AVR32_2_6_27_6
default "2.6.25.10" if BR2_ARCH_AVR32_2_6_25_10
default "2.6.24" if BR2_ARCH_AVR32_2_6_24
default "2.6.22.10" if BR2_ARCH_AVR32_2_6_22_10
default "2.6.22.1" if BR2_ARCH_AVR32_2_6_22_1
default "2.6.21.5" if BR2_ARCH_AVR32_2_6_21_5
default "2.6.20.4" if BR2_ARCH_AVR32_2_6_20_4
config BR2_KERNEL_ARCH_PATCH_DIR
string

View File

@ -0,0 +1,23 @@
From f26e2224d46430ac4f6c0ddeb518f5766ba62b16 Mon Sep 17 00:00:00 2001
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Date: Wed, 26 Nov 2008 14:10:45 +0100
Subject: [PATCH 2/3] atmel_mpopfb: remove define DEBUG to disable debug output
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
diff --git a/drivers/video/atmel_mpopfb.c b/drivers/video/atmel_mpopfb.c
index 0a07f7b..3b4b668 100644
--- a/drivers/video/atmel_mpopfb.c
+++ b/drivers/video/atmel_mpopfb.c
@@ -8,8 +8,6 @@
* more details.
*/
-#define DEBUG
-
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/dma-mapping.h>
--
1.5.6.3

View File

@ -0,0 +1,43 @@
diff -urN linux-2.6.28.2-0rig//drivers/video/atmel_mpopfb.c linux-2.6.28.2/drivers/video/atmel_mpopfb.c
--- linux-2.6.28.2-0rig//drivers/video/atmel_mpopfb.c 2009-01-29 09:41:04.000000000 +0100
+++ linux-2.6.28.2/drivers/video/atmel_mpopfb.c 2009-01-29 09:43:46.000000000 +0100
@@ -315,6 +315,10 @@
static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
{
if (!sinfo->running) {
+ unsigned int line_cache_disable =
+ sinfo->baseimg_info.line_cache_disable ?
+ ATMEL_MPOP_CR_CACHEDIS_MASK : 0;
+
dev_dbg(sinfo->info->device, " * Starting MPOP.\n");
/* Enable all error interrupts. */
@@ -325,9 +329,9 @@
* reading from the slave interface it will start
* generating a frame.
*/
- mpop_writel(sinfo, ATMEL_MPOP_CR,
- ATMEL_MPOP_CR_EN_MASK
- /*| ATMEL_MPOP_CR_OUT_BGR_MASK */ );
+ mpop_writel(sinfo, ATMEL_MPOP_CR, ATMEL_MPOP_CR_EN_MASK
+ | line_cache_disable
+ | ATMEL_MPOP_CR_OUT_BGR_MASK);
sinfo->running = 1;
}
diff -urN linux-2.6.28.2-0rig//include/linux/atmel_mpopfb.h linux-2.6.28.2/include/linux/atmel_mpopfb.h
--- linux-2.6.28.2-0rig//include/linux/atmel_mpopfb.h 2009-01-29 09:41:04.000000000 +0100
+++ linux-2.6.28.2/include/linux/atmel_mpopfb.h 2009-01-29 09:43:46.000000000 +0100
@@ -42,9 +42,11 @@
unsigned xsize;
unsigned ysize;
- /* Signal that we should flip the video. */
+ /* Signal for flipping the video. */
int flip;
+ /* Signal for disabling the line cache. */
+ int line_cache_disable;
};
enum atmel_mpopfb_overlay_type {

View File

@ -0,0 +1,35 @@
Index: linux-2.6.27.6/arch/avr32/include/asm/byteorder.h
===================================================================
--- linux-2.6.27.6.orig/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:15.000000000 +0100
+++ linux-2.6.27.6/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:31.000000000 +0100
@@ -7,8 +7,9 @@
#include <asm/types.h>
#include <linux/compiler.h>
-#define __BIG_ENDIAN
+#define __BIG_ENDIAN 4321
#define __SWAB_64_THRU_32__
+#define __BYTEORDER_HAS_U64__
#ifdef __CHECKER__
extern unsigned long __builtin_bswap_32(unsigned long x);
@@ -33,5 +34,5 @@
#define __arch_swab32 __arch_swab32
#endif
-#include <linux/byteorder.h>
+#include <linux/byteorder/big_endian.h>
#endif /* __ASM_AVR32_BYTEORDER_H */
Index: linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h
===================================================================
--- linux-2.6.27.6.orig/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:47:58.000000000 +0100
+++ linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:48:15.000000000 +0100
@@ -1,7 +1,7 @@
#ifndef __ASM_AVR32_ARCH_AT32AP_IO_H
#define __ASM_AVR32_ARCH_AT32AP_IO_H
-#include <linux/swab.h>
+#include <linux/byteorder/swabb.h>
#if defined(CONFIG_AP700X_32_BIT_SMC)
# define __swizzle_addr_b(addr) (addr ^ 3UL)

View File

@ -0,0 +1,33 @@
diff -urN linux-2.6.28.2-0rig//arch/avr32/boards/atstk1000/atstk1002.c linux-2.6.28.2/arch/avr32/boards/atstk1000/atstk1002.c
--- linux-2.6.28.2-0rig//arch/avr32/boards/atstk1000/atstk1002.c 2009-01-29 08:39:35.000000000 +0100
+++ linux-2.6.28.2/arch/avr32/boards/atstk1000/atstk1002.c 2009-01-29 09:50:56.000000000 +0100
@@ -99,6 +99,7 @@
static struct atmel_nand_data atstk1006_nand_data __initdata = {
.cle = 21,
.ale = 22,
+ .det_pin = GPIO_PIN_NONE,
.rdy_pin = GPIO_PIN_PB(30),
.enable_pin = GPIO_PIN_PB(29),
.partition_info = nand_part_info,
diff -urN linux-2.6.28.2-0rig//arch/avr32/mach-at32ap/at32ap700x.c linux-2.6.28.2/arch/avr32/mach-at32ap/at32ap700x.c
--- linux-2.6.28.2-0rig//arch/avr32/mach-at32ap/at32ap700x.c 2009-01-29 09:41:04.000000000 +0100
+++ linux-2.6.28.2/arch/avr32/mach-at32ap/at32ap700x.c 2009-01-29 09:50:56.000000000 +0100
@@ -1972,13 +1972,14 @@
goto fail;
hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_NAND_ENABLE);
- if (data->enable_pin)
+
+ if (gpio_is_valid(data->enable_pin))
at32_select_gpio(data->enable_pin,
AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
- if (data->rdy_pin)
- at32_select_gpio(data->rdy_pin, 0);
- if (data->det_pin)
+ if (gpio_is_valid(data->det_pin))
at32_select_gpio(data->det_pin, 0);
+ if (gpio_is_valid(data->rdy_pin))
+ at32_select_gpio(data->rdy_pin, 0);
platform_device_add(pdev);
return pdev;