forked from Minki/linux
19cfd5c09f
Instead of having board code poke directly into the MPP configuration registers, and separately calling orion5x_gpio_set_valid_pins() to indicate which MPP pins can be used as GPIO pins, introduce a helper function for configuring the roles of each of the MPP pins, and have that helper function handle gpio validity internally. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Sylver Bruneau <sylver.bruneau@googlemail.com> Acked-by: Russell King <linux@arm.linux.org.uk>
75 lines
1.4 KiB
C
75 lines
1.4 KiB
C
#ifndef __ARCH_ORION5X_MPP_H
|
|
#define __ARCH_ORION5X_MPP_H
|
|
|
|
enum orion5x_mpp_type {
|
|
/*
|
|
* This MPP is unused.
|
|
*/
|
|
MPP_UNUSED,
|
|
|
|
/*
|
|
* This MPP pin is used as a generic GPIO pin. Valid for
|
|
* MPPs 0-15 and device bus data pins 16-31. On 5182, also
|
|
* valid for MPPs 16-19.
|
|
*/
|
|
MPP_GPIO,
|
|
|
|
/*
|
|
* This MPP is used as PCIe_RST_OUTn pin. Valid for
|
|
* MPP 0 only.
|
|
*/
|
|
MPP_PCIE_RST_OUTn,
|
|
|
|
/*
|
|
* This MPP is used as PCI arbiter pin (REQn/GNTn).
|
|
* Valid for MPPs 0-7 only.
|
|
*/
|
|
MPP_PCI_ARB,
|
|
|
|
/*
|
|
* This MPP is used as PCI_PMEn pin. Valid for MPP 2 only.
|
|
*/
|
|
MPP_PCI_PMEn,
|
|
|
|
/*
|
|
* This MPP is used as GigE half-duplex (COL, CRS) or GMII
|
|
* (RXERR, CRS, TXERR, TXD[7:4], RXD[7:4]) pin. Valid for
|
|
* MPPs 8-19 only.
|
|
*/
|
|
MPP_GIGE,
|
|
|
|
/*
|
|
* This MPP is used as NAND REn/WEn pin. Valid for MPPs
|
|
* 4-7 and 12-17 only, and only on the 5181l/5182/5281.
|
|
*/
|
|
MPP_NAND,
|
|
|
|
/*
|
|
* This MPP is used as a PCI clock output pin. Valid for
|
|
* MPPs 6-7 only, and only on the 5181l.
|
|
*/
|
|
MPP_PCI_CLK,
|
|
|
|
/*
|
|
* This MPP is used as a SATA presence/activity LED.
|
|
* Valid for MPPs 4-7 and 12-15 only, and only on the 5182.
|
|
*/
|
|
MPP_SATA_LED,
|
|
|
|
/*
|
|
* This MPP is used as UART1 RXD/TXD/CTSn/RTSn pin.
|
|
* Valid for MPPs 16-19 only.
|
|
*/
|
|
MPP_UART,
|
|
};
|
|
|
|
struct orion5x_mpp_mode {
|
|
int mpp;
|
|
enum orion5x_mpp_type type;
|
|
};
|
|
|
|
void orion5x_mpp_conf(struct orion5x_mpp_mode *mode);
|
|
|
|
|
|
#endif
|