Skip to content

Commit

Permalink
uio: uio_fsl_elbc_gpcm: new driver
Browse files Browse the repository at this point in the history
This driver provides UIO access to memory of a peripheral connected
to the Freescale enhanced local bus controller (eLBC) interface
using the general purpose chip-select mode (GPCM).

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
John Ogness authored and Greg Kroah-Hartman committed Jan 12, 2015
1 parent 02b0384 commit fbc4a8a
Show file tree
Hide file tree
Showing 5 changed files with 536 additions and 5 deletions.
18 changes: 13 additions & 5 deletions Documentation/devicetree/bindings/powerpc/fsl/lbc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,28 @@ Example:
"fsl,pq2-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <f0010100 40>;
reg = <0xf0010100 0x40>;

ranges = <0 0 fe000000 02000000
1 0 f4500000 00008000>;
ranges = <0x0 0x0 0xfe000000 0x02000000
0x1 0x0 0xf4500000 0x00008000
0x2 0x0 0xfd810000 0x00010000>;

flash@0,0 {
compatible = "jedec-flash";
reg = <0 0 2000000>;
reg = <0x0 0x0 0x2000000>;
bank-width = <4>;
device-width = <1>;
};

board-control@1,0 {
reg = <1 0 20>;
reg = <0x1 0x0 0x20>;
compatible = "fsl,mpc8272ads-bcsr";
};

simple-periph@2,0 {
compatible = "fsl,elbc-gpcm-uio";
reg = <0x2 0x0 0x10000>;
elbc-gpcm-br = <0xfd810800>;
elbc-gpcm-or = <0xffff09f7>;
};
};
3 changes: 3 additions & 0 deletions arch/powerpc/include/asm/fsl_lbc.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ struct fsl_lbc_bank {
#define OR_FCM_TRLX_SHIFT 2
#define OR_FCM_EHTR 0x00000002
#define OR_FCM_EHTR_SHIFT 1

#define OR_GPCM_AM 0xFFFF8000
#define OR_GPCM_AM_SHIFT 15
};

struct fsl_lbc_regs {
Expand Down
20 changes: 20 additions & 0 deletions drivers/uio/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,26 @@ config UIO_NETX
To compile this driver as a module, choose M here; the module
will be called uio_netx.

config UIO_FSL_ELBC_GPCM
tristate "eLBC/GPCM driver"
depends on FSL_LBC
help
Generic driver for accessing a peripheral connected to an eLBC port
that is running in GPCM mode. GPCM is an interface for simple lower
performance memories and memory-mapped devices. For devices using
FCM or UPM eLBC modes, other device-specific drivers are available.

config UIO_FSL_ELBC_GPCM_NETX5152
bool "eLBC/GPCM netX 51/52 support"
depends on UIO_FSL_ELBC_GPCM
help
This will add support for netX 51/52 devices connected via eLBC/GPCM.
In particular, it implements interrupt handling. This can be used
together with the userspace netX stack from Hilscher.

Information about this hardware can be found at:
http://www.hilscher.com/netx

config UIO_PRUSS
tristate "Texas Instruments PRUSS driver"
depends on ARCH_DAVINCI_DA850
Expand Down
1 change: 1 addition & 0 deletions drivers/uio/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ obj-$(CONFIG_UIO_PCI_GENERIC) += uio_pci_generic.o
obj-$(CONFIG_UIO_NETX) += uio_netx.o
obj-$(CONFIG_UIO_PRUSS) += uio_pruss.o
obj-$(CONFIG_UIO_MF624) += uio_mf624.o
obj-$(CONFIG_UIO_FSL_ELBC_GPCM) += uio_fsl_elbc_gpcm.o
Loading

0 comments on commit fbc4a8a

Please sign in to comment.