diff options
Diffstat (limited to 'packages/linux/linux-2.6.26/boc01/008-081105-spi.patch')
-rw-r--r-- | packages/linux/linux-2.6.26/boc01/008-081105-spi.patch | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/packages/linux/linux-2.6.26/boc01/008-081105-spi.patch b/packages/linux/linux-2.6.26/boc01/008-081105-spi.patch deleted file mode 100644 index 0c2ddf3383..0000000000 --- a/packages/linux/linux-2.6.26/boc01/008-081105-spi.patch +++ /dev/null @@ -1,100 +0,0 @@ -diff -Nru linux-2.6.26-officiel/arch/powerpc/platforms/83xx/mpc831x_rdb.c /home/guilig/workspace/kernel-goobie-2.6.26/src/arch/powerpc/platforms/83xx/mpc831x_rdb.c ---- linux-2.6.26-officiel/arch/powerpc/platforms/83xx/mpc831x_rdb.c 2008-07-13 23:51:29.000000000 +0200 -+++ /home/guilig/workspace/kernel-goobie-2.6.26/src/arch/powerpc/platforms/83xx/mpc831x_rdb.c 2008-09-26 11:51:32.000000000 +0200 -@@ -15,16 +15,95 @@ - - #include <linux/pci.h> - #include <linux/of_platform.h> -- -+#include <linux/interrupt.h> -+#include <linux/spi/spi.h> -+#include <linux/spi/mmc_spi.h> -+#include <linux/mmc/host.h> -+#include <linux/of_platform.h> -+#include <sysdev/fsl_soc.h> -+#include <asm/qe.h> -+#include <asm/qe_ic.h> -+#include <asm/time.h> -+#include <asm/ipic.h> -+#include <asm/udbg.h> - #include <asm/time.h> - #include <asm/ipic.h> - #include <asm/udbg.h> -+#include <sysdev/fsl_soc.h> -+ - - #include "mpc83xx.h" - - /* - * Setup the architecture - */ -+struct gpio { -+ __be32 gpdir; -+ __be32 gpodr; -+ __be32 gpdat; -+ __be32 gpier; -+ __be32 gpimr; -+ __be32 gpicr; -+} __attribute__ ((packed)); -+static struct gpio *gpio_regs; -+ -+static void mpc83xx_spi_activate_cs(u8 cs, u8 polarity) -+{ -+ //printk(KERN_INFO "%s %d %d\n", __func__, cs, polarity); -+ if (polarity) -+ setbits32(&gpio_regs->gpdat, 1 << (31 - 13)); -+ else -+ clrbits32(&gpio_regs->gpdat, 1 << (31 - 13)); -+} -+ -+static void mpc83xx_spi_deactivate_cs(u8 cs, u8 polarity) -+{ -+ //printk(KERN_INFO "%s %d %d\n", __func__, cs, polarity); -+ if (polarity) -+ clrbits32(&gpio_regs->gpdat, 1 << (31 - 13)); -+ else -+ setbits32(&gpio_regs->gpdat, 1 << (31 - 13)); -+ -+} -+ -+static struct mmc_spi_platform_data mpc8313_mmc_pdata = { -+ .ocr_mask = MMC_VDD_33_34, -+}; -+ -+static struct spi_board_info mpc8313_spi_boardinfo = { -+ .bus_num = 0x7000, -+ .chip_select = 0, -+ .max_speed_hz = 50000000, -+ .modalias = "spidev", -+ .platform_data = &mpc8313_mmc_pdata, -+}; -+ -+static int __init mpc8313_spi_init(void) -+{ -+ __be32 __iomem *psicrl; -+ -+ /* System I/O Configuration Register Low */ -+ psicrl = ioremap(get_immrbase() + MPC83XX_SICRL_OFFS, 0x4); -+ gpio_regs = ioremap(get_immrbase() + 0xc00, 0x20); -+ if (!psicrl || !gpio_regs) -+ return -ENOMEM; -+ -+ clrbits32(psicrl, 0x03F00000); -+ setbits32(psicrl, 0x30000000); -+ iounmap(psicrl); -+ -+ /* set GPIO13 as output */ -+ setbits32(&gpio_regs->gpdir, 1 << (31 - 13)); -+ clrbits32(&gpio_regs->gpodr, 1 << (31 - 13)); -+ setbits32(&gpio_regs->gpdat, 1 << (31 - 13)); -+ -+ return fsl_spi_init(&mpc8313_spi_boardinfo, 1, -+ mpc83xx_spi_activate_cs, -+ mpc83xx_spi_deactivate_cs); -+} -+ -+device_initcall(mpc8313_spi_init); -+ - static void __init mpc831x_rdb_setup_arch(void) - { - #ifdef CONFIG_PCI |