aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/Kconfig4
-rw-r--r--drivers/Makefile2
-rw-r--r--drivers/ata/Kconfig37
-rw-r--r--drivers/ata/Makefile3
-rw-r--r--drivers/ata/sata_dwc.c2316
-rw-r--r--drivers/ata/sata_dwc_ncq.c2933
-rwxr-xr-xdrivers/ata/sata_dwc_pmp.c3053
-rw-r--r--drivers/char/hw_random/Kconfig12
-rw-r--r--drivers/char/hw_random/Makefile1
-rw-r--r--drivers/char/hw_random/trng4xx.c336
-rw-r--r--drivers/crypto/Kconfig52
-rw-r--r--drivers/crypto/Makefile2
-rw-r--r--drivers/crypto/amcc/crypto4xx_alg.c3846
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.c2899
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.h365
-rw-r--r--drivers/crypto/amcc/crypto4xx_reg_def.h14
-rw-r--r--drivers/crypto/amcc/crypto4xx_sa.c114
-rw-r--r--drivers/crypto/amcc/crypto4xx_sa.h530
-rw-r--r--drivers/crypto/pka_4xx.c1333
-rw-r--r--drivers/crypto/pka_4xx_access.c201
-rw-r--r--drivers/crypto/pka_4xx_access.h86
-rw-r--r--drivers/crypto/pka_4xx_firmware.h515
-rw-r--r--drivers/dma/Kconfig40
-rw-r--r--drivers/dma/Makefile4
-rw-r--r--drivers/dma/apm82181-adma.c2433
-rw-r--r--drivers/dma/dmaengine.c11
-rw-r--r--drivers/dma/ppc460ex-adma.c5409
-rw-r--r--drivers/dma/ppc460ex-plbadma.c2009
-rwxr-xr-xdrivers/dma/ppc460ex_4chan_dma.c1103
-rwxr-xr-xdrivers/dma/ppc460ex_4chan_dma.h531
-rwxr-xr-xdrivers/dma/ppc460ex_4chan_sgdma.c1003
-rw-r--r--drivers/input/misc/Makefile2
-rw-r--r--drivers/input/misc/a3g_button.c643
-rw-r--r--drivers/leds/Makefile4
-rw-r--r--drivers/leds/led-class-3g.c281
-rw-r--r--drivers/leds/led-class.c24
-rw-r--r--drivers/leds/leds-apollo3g.c365
-rw-r--r--drivers/leds/leds-gpio.c4
-rw-r--r--drivers/leds/leds.h19
-rw-r--r--drivers/md/Kconfig13
-rw-r--r--drivers/md/Makefile4
-rw-r--r--drivers/md/md.c111
-rw-r--r--drivers/md/md.h14
-rw-r--r--drivers/md/multipath.c2
-rw-r--r--drivers/md/raid0.c2
-rw-r--r--drivers/md/raid10.c2
-rw-r--r--drivers/md/raid5.c179
-rw-r--r--drivers/md/raid5.h8
-rw-r--r--drivers/message/fusion/mptbase.c12
-rw-r--r--drivers/message/fusion/mptbase.h4
-rw-r--r--[-rwxr-xr-x]drivers/mtd/chips/cfi_util.c0
-rw-r--r--[-rwxr-xr-x]drivers/mtd/inftlcore.c0
-rw-r--r--drivers/mtd/maps/physmap_of.c9
-rw-r--r--drivers/mtd/nand/Kconfig7
-rw-r--r--drivers/mtd/nand/ndfc.c7
-rw-r--r--drivers/net/ibm_newemac/Kconfig53
-rw-r--r--drivers/net/ibm_newemac/core.c761
-rw-r--r--drivers/net/ibm_newemac/core.h22
-rw-r--r--drivers/net/ibm_newemac/emac.h21
-rw-r--r--drivers/net/ibm_newemac/mal.c487
-rw-r--r--drivers/net/ibm_newemac/mal.h108
-rw-r--r--drivers/net/ibm_newemac/phy.c188
-rw-r--r--drivers/net/ibm_newemac/rgmii.c2
-rw-r--r--drivers/net/ibm_newemac/tah.c4
-rw-r--r--drivers/net/ibm_newemac/zmii.c2
-rw-r--r--drivers/pci/pcie/Kconfig12
-rw-r--r--drivers/rtc/Kconfig7
-rw-r--r--drivers/rtc/Makefile1
-rw-r--r--drivers/rtc/ibm_rtc.c479
-rwxr-xr-xdrivers/scp/Kconfig12
-rwxr-xr-xdrivers/scp/Makefile5
-rwxr-xr-xdrivers/scp/scp-dev.c654
-rwxr-xr-xdrivers/scp/scp-dev.h196
-rwxr-xr-xdrivers/scp/spi_eeprom.c350
-rw-r--r--drivers/serial/8250.c4
-rw-r--r--drivers/test/Kconfig20
-rw-r--r--drivers/test/Makefile6
-rw-r--r--drivers/test/l2cache/Makefile6
-rw-r--r--drivers/test/l2cache/ppc4xx_l2cache_test_module.c389
-rw-r--r--drivers/usb/gadget/Kconfig103
-rw-r--r--drivers/usb/gadget/Makefile1
-rw-r--r--drivers/usb/gadget/dwc_otg/Makefile12
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_attr.c785
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_attr.h67
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_cil.c3237
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_cil.h991
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_cil_intr.c701
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_driver.c1345
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_driver.h82
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_hcd.c2900
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_hcd.h660
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_hcd_intr.c1746
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_hcd_queue.c696
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_pcd.c1408
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_pcd.h209
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_pcd_intr.c2519
-rw-r--r--drivers/usb/gadget/dwc_otg/dwc_otg_regs.h3606
-rw-r--r--drivers/usb/gadget/dwc_otg/linux/dwc_otg_plat.h304
-rw-r--r--drivers/usb/gadget/dwc_otg/ppc4xx_dma.c735
-rw-r--r--drivers/usb/gadget/dwc_otg/ppc4xx_dma.h620
-rw-r--r--drivers/usb/gadget/gadget_chips.h8
-rw-r--r--drivers/usb/gadget/u_ether.c27
-rw-r--r--drivers/usb/host/Kconfig2
103 files changed, 59242 insertions, 224 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 48bbdbe43e6..2db8a713a24 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -54,6 +54,8 @@ source "drivers/spi/Kconfig"
source "drivers/pps/Kconfig"
+source "drivers/scp/Kconfig"
+
source "drivers/gpio/Kconfig"
source "drivers/w1/Kconfig"
@@ -113,4 +115,6 @@ source "drivers/xen/Kconfig"
source "drivers/staging/Kconfig"
source "drivers/platform/Kconfig"
+
+source "drivers/test/Kconfig"
endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index 6ee53c7a57a..1c20084726b 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -53,6 +53,7 @@ obj-y += ieee1394/
obj-$(CONFIG_UIO) += uio/
obj-y += cdrom/
obj-y += auxdisplay/
+obj-$(CONFIG_SCP) += scp/
obj-$(CONFIG_PCCARD) += pcmcia/
obj-$(CONFIG_DIO) += dio/
obj-$(CONFIG_SBUS) += sbus/
@@ -111,3 +112,4 @@ obj-$(CONFIG_VLYNQ) += vlynq/
obj-$(CONFIG_STAGING) += staging/
obj-y += platform/
obj-y += ieee802154/
+obj-$(CONFIG_PPC4xx_TEST) += test/
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index f2df6e2a224..1a3fcdffa00 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -103,6 +103,43 @@ config ATA_SFF
if ATA_SFF
+config SATA_DWC
+ tristate "DesignWare Cores SATA support"
+ depends on 460EX || APM82181
+ help
+ This option enables support for the Synopsys DesignWare Cores SATA
+ controller.
+ It can be found on the AMCC 460EX.
+ If unsure, say N.
+
+config SATA_DWC_PMP
+ tristate "DesignWare Cores SATA with PMP support"
+ depends on 460EX || APM82181
+ help
+ This option enables support for the Synopsys DesignWare Cores SATA
+ controller.
+ It can be found on the AMCC 460EX.
+ If unsure, say N.
+
+config SATA_DWC_NCQ
+ tristate "DesignWare Cores SATA with PMP and NCQ support"
+ depends on 460EX || APM82181
+ help
+ This option enables support for the Synopsys DesignWare Cores SATA
+ controller.
+ It can be found on the AMCC 460EX.
+ If unsure, say N.
+
+config SATA_DWC_DEBUG
+ bool "Enable debug output"
+ depends on SATA_DWC || SATA_DWC_PMP || SATA_DWC_NCQ
+ default n
+
+config SATA_DWC_VDEBUG
+ bool "Enable verbose debug output"
+ depends on ( SATA_DWC || SATA_DWC_PMP || SATA_DWC_NCQ ) && SATA_DWC_DEBUG
+ default n
+
config SATA_SVW
tristate "ServerWorks Frodo / Apple K2 SATA support"
depends on PCI
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 01e126f343b..576dd780794 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -18,6 +18,9 @@ obj-$(CONFIG_SATA_MV) += sata_mv.o
obj-$(CONFIG_SATA_INIC162X) += sata_inic162x.o
obj-$(CONFIG_PDC_ADMA) += pdc_adma.o
obj-$(CONFIG_SATA_FSL) += sata_fsl.o
+obj-$(CONFIG_SATA_DWC) += sata_dwc.o
+obj-$(CONFIG_SATA_DWC_PMP) += sata_dwc_pmp.o
+obj-$(CONFIG_SATA_DWC_NCQ) += sata_dwc_ncq.o
obj-$(CONFIG_PATA_ALI) += pata_ali.o
obj-$(CONFIG_PATA_AMD) += pata_amd.o
diff --git a/drivers/ata/sata_dwc.c b/drivers/ata/sata_dwc.c
new file mode 100644
index 00000000000..8e5405c71a4
--- /dev/null
+++ b/drivers/ata/sata_dwc.c
@@ -0,0 +1,2316 @@
+/*
+ * drivers/ata/sata_dwc.c
+ *
+ * Synopsys DesignWare Cores (DWC) SATA host driver
+ *
+ * Author: Mark Miesfeld <mmiesfeld@amcc.com>
+ *
+ * Ported from 2.6.19.2 to 2.6.25/26 by Stefan Roese <sr@denx.de>
+ * Copyright 2008 DENX Software Engineering
+ *
+ * Based on versions provided by AMCC and Synopsys which are:
+ * Copyright 2006 Applied Micro Circuits Corporation
+ * COPYRIGHT (C) 2005 SYNOPSYS, INC. ALL RIGHTS RESERVED
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+#ifdef CONFIG_SATA_DWC_DEBUG
+#define DEBUG
+#endif
+
+#ifdef CONFIG_SATA_DWC_VDEBUG
+#define VERBOSE_DEBUG
+#define DEBUG_NCQ
+#endif
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/device.h>
+#include <linux/of_platform.h>
+#include <linux/libata.h>
+
+#include <scsi/scsi_host.h>
+#include <scsi/scsi_cmnd.h>
+
+#define DRV_NAME "sata-dwc"
+#define DRV_VERSION "1.0"
+
+/* SATA DMA driver Globals */
+#if defined(CONFIG_APM82181)
+#define DMA_NUM_CHANS 2
+#else
+#define DMA_NUM_CHANS 1
+#endif
+
+#define DMA_NUM_CHAN_REGS 8
+
+/* SATA DMA Register definitions */
+#if defined(CONFIG_APM82181)
+#define AHB_DMA_BRST_DFLT 64 /* 16 data items burst length */
+#else
+#define AHB_DMA_BRST_DFLT 64 /* 16 data items burst length */
+#endif
+
+struct dmareg {
+ u32 low; /* Low bits 0-31 */
+ u32 high; /* High bits 32-63 */
+};
+
+/* DMA Per Channel registers */
+
+struct dma_chan_regs {
+ struct dmareg sar; /* Source Address */
+ struct dmareg dar; /* Destination address */
+ struct dmareg llp; /* Linked List Pointer */
+ struct dmareg ctl; /* Control */
+ struct dmareg sstat; /* Source Status not implemented in core */
+ struct dmareg dstat; /* Destination Status not implemented in core */
+ struct dmareg sstatar; /* Source Status Address not impl in core */
+ struct dmareg dstatar; /* Destination Status Address not implemented */
+ struct dmareg cfg; /* Config */
+ struct dmareg sgr; /* Source Gather */
+ struct dmareg dsr; /* Destination Scatter */
+};
+
+/* Generic Interrupt Registers */
+struct dma_interrupt_regs {
+ struct dmareg tfr; /* Transfer Interrupt */
+ struct dmareg block; /* Block Interrupt */
+ struct dmareg srctran; /* Source Transfer Interrupt */
+ struct dmareg dsttran; /* Dest Transfer Interrupt */
+ struct dmareg error; /* Error */
+};
+
+struct ahb_dma_regs {
+ struct dma_chan_regs chan_regs[DMA_NUM_CHAN_REGS];
+ struct dma_interrupt_regs interrupt_raw; /* Raw Interrupt */
+ struct dma_interrupt_regs interrupt_status; /* Interrupt Status */
+ struct dma_interrupt_regs interrupt_mask; /* Interrupt Mask */
+ struct dma_interrupt_regs interrupt_clear; /* Interrupt Clear */
+ struct dmareg statusInt; /* Interrupt combined */
+ struct dmareg rq_srcreg; /* Src Trans Req */
+ struct dmareg rq_dstreg; /* Dst Trans Req */
+ struct dmareg rq_sgl_srcreg; /* Sngl Src Trans Req */
+ struct dmareg rq_sgl_dstreg; /* Sngl Dst Trans Req */
+ struct dmareg rq_lst_srcreg; /* Last Src Trans Req */
+ struct dmareg rq_lst_dstreg; /* Last Dst Trans Req */
+ struct dmareg dma_cfg; /* DMA Config */
+ struct dmareg dma_chan_en; /* DMA Channel Enable */
+ struct dmareg dma_id; /* DMA ID */
+ struct dmareg dma_test; /* DMA Test */
+ struct dmareg res1; /* reserved */
+ struct dmareg res2; /* reserved */
+
+ /* DMA Comp Params
+ * Param 6 = dma_param[0], Param 5 = dma_param[1],
+ * Param 4 = dma_param[2] ...
+ */
+ struct dmareg dma_params[6];
+};
+
+/* Data structure for linked list item */
+struct lli {
+ u32 sar; /* Source Address */
+ u32 dar; /* Destination address */
+ u32 llp; /* Linked List Pointer */
+ struct dmareg ctl; /* Control */
+#if defined(CONFIG_APM82181)
+ u32 dstat; /* Source status is not supported */
+#else
+ struct dmareg dstat; /* Destination Status */
+#endif
+};
+
+#define SATA_DWC_DMAC_LLI_SZ (sizeof(struct lli))
+#define SATA_DWC_DMAC_LLI_NUM 256
+#define SATA_DWC_DMAC_TWIDTH_BYTES 4
+#define SATA_DWC_DMAC_LLI_TBL_SZ \
+ (SATA_DWC_DMAC_LLI_SZ * SATA_DWC_DMAC_LLI_NUM)
+#if defined(CONFIG_APM82181)
+#define SATA_DWC_DMAC_CTRL_TSIZE_MAX \
+ (0x00000800 * SATA_DWC_DMAC_TWIDTH_BYTES)
+#else
+#define SATA_DWC_DMAC_CTRL_TSIZE_MAX \
+ (0x00000800 * SATA_DWC_DMAC_TWIDTH_BYTES)
+#endif
+/* DMA Register Operation Bits */
+#define DMA_EN 0x00000001 /* Enable AHB DMA */
+#define DMA_CHANNEL(ch) (0x00000001 << (ch)) /* Select channel */
+#define DMA_ENABLE_CHAN(ch) ((0x00000001 << (ch)) | \
+ ((0x000000001 << (ch)) << 8))
+#define DMA_DISABLE_CHAN(ch) (0x00000000 | ((0x000000001 << (ch)) << 8))
+
+/* Channel Control Register */
+#define DMA_CTL_BLK_TS(size) ((size) & 0x000000FFF) /* Blk Transfer size */
+#define DMA_CTL_LLP_SRCEN 0x10000000 /* Blk chain enable Src */
+#define DMA_CTL_LLP_DSTEN 0x08000000 /* Blk chain enable Dst */
+/*
+ * This define is used to set block chaining disabled in the control low
+ * register. It is already in little endian format so it can be &'d dirctly.
+ * It is essentially: cpu_to_le32(~(DMA_CTL_LLP_SRCEN | DMA_CTL_LLP_DSTEN))
+ */
+#define DMA_CTL_LLP_DISABLE_LE32 0xffffffe7
+#define DMA_CTL_SMS(num) ((num & 0x3) << 25) /*Src Master Select*/
+#define DMA_CTL_DMS(num) ((num & 0x3) << 23) /*Dst Master Select*/
+#define DMA_CTL_TTFC(type) ((type & 0x7) << 20) /*Type&Flow cntr*/
+#define DMA_CTL_TTFC_P2M_DMAC 0x00000002 /*Per mem,DMAC cntr*/
+#define DMA_CTL_TTFC_M2P_PER 0x00000003 /*Mem per,peri cntr*/
+#define DMA_CTL_SRC_MSIZE(size) ((size & 0x7) << 14) /*Src Burst Len*/
+#define DMA_CTL_DST_MSIZE(size) ((size & 0x7) << 11) /*Dst Burst Len*/
+#define DMA_CTL_SINC_INC 0x00000000 /*Src addr incr*/
+#define DMA_CTL_SINC_DEC 0x00000200
+#define DMA_CTL_SINC_NOCHANGE 0x00000400
+#define DMA_CTL_DINC_INC 0x00000000 /*Dst addr incr*/
+#define DMA_CTL_DINC_DEC 0x00000080
+#define DMA_CTL_DINC_NOCHANGE 0x00000100
+#de