diff options
Diffstat (limited to 'arch/blackfin/include')
28 files changed, 105 insertions, 739 deletions
diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild index 127826f8a37..0d93b9a79ca 100644 --- a/arch/blackfin/include/asm/Kbuild +++ b/arch/blackfin/include/asm/Kbuild @@ -10,6 +10,7 @@ generic-y += emergency-restart.h  generic-y += errno.h  generic-y += fb.h  generic-y += futex.h +generic-y += hash.h  generic-y += hw_irq.h  generic-y += ioctl.h  generic-y += ipcbuf.h @@ -17,14 +18,16 @@ generic-y += irq_regs.h  generic-y += kdebug.h  generic-y += kmap_types.h  generic-y += kvm_para.h -generic-y += local64.h  generic-y += local.h +generic-y += local64.h +generic-y += mcs_spinlock.h  generic-y += mman.h  generic-y += msgbuf.h  generic-y += mutex.h  generic-y += param.h  generic-y += percpu.h  generic-y += pgalloc.h +generic-y += preempt.h  generic-y += resource.h  generic-y += scatterlist.h  generic-y += sembuf.h diff --git a/arch/blackfin/include/asm/barrier.h b/arch/blackfin/include/asm/barrier.h index ebb189507dd..42000687799 100644 --- a/arch/blackfin/include/asm/barrier.h +++ b/arch/blackfin/include/asm/barrier.h @@ -23,26 +23,13 @@  # define rmb()	do { barrier(); smp_check_barrier(); } while (0)  # define wmb()	do { barrier(); smp_mark_barrier(); } while (0)  # define read_barrier_depends()	do { barrier(); smp_check_barrier(); } while (0) -#else -# define mb()	barrier() -# define rmb()	barrier() -# define wmb()	barrier() -# define read_barrier_depends()	do { } while (0)  #endif -#else /* !CONFIG_SMP */ - -#define mb()	barrier() -#define rmb()	barrier() -#define wmb()	barrier() -#define read_barrier_depends()	do { } while (0) -  #endif /* !CONFIG_SMP */ -#define smp_mb()  mb() -#define smp_rmb() rmb() -#define smp_wmb() wmb() -#define set_mb(var, value) do { var = value; mb(); } while (0) -#define smp_read_barrier_depends()	read_barrier_depends() +#define smp_mb__before_atomic()	barrier() +#define smp_mb__after_atomic()	barrier() + +#include <asm-generic/barrier.h>  #endif /* _BLACKFIN_BARRIER_H */ diff --git a/arch/blackfin/include/asm/bfin_crc.h b/arch/blackfin/include/asm/bfin_crc.h deleted file mode 100644 index 75cef4dc85a..00000000000 --- a/arch/blackfin/include/asm/bfin_crc.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * bfin_crc.h - interface to Blackfin CRC controllers - * - * Copyright 2012 Analog Devices Inc. - * - * Licensed under the GPL-2 or later. - */ - -#ifndef __BFIN_CRC_H__ -#define __BFIN_CRC_H__ - -/* Function driver which use hardware crc must initialize the structure */ -struct crc_info { -	/* Input data address */ -	unsigned char *in_addr; -	/* Output data address */ -	unsigned char *out_addr; -	/* Input or output bytes */ -	unsigned long datasize; -	union { -	/* CRC to compare with that of input buffer */ -	unsigned long crc_compare; -	/* Value to compare with input data */ -	unsigned long val_verify; -	/* Value to fill */ -	unsigned long val_fill; -	}; -	/* Value to program the 32b CRC Polynomial */ -	unsigned long crc_poly; -	union { -	/* CRC calculated from the input data */ -	unsigned long crc_result; -	/* First failed position to verify input data */ -	unsigned long pos_verify; -	}; -	/* CRC mirror flags */ -	unsigned int bitmirr:1; -	unsigned int bytmirr:1; -	unsigned int w16swp:1; -	unsigned int fdsel:1; -	unsigned int rsltmirr:1; -	unsigned int polymirr:1; -	unsigned int cmpmirr:1; -}; - -/* Userspace interface */ -#define CRC_IOC_MAGIC		'C' -#define CRC_IOC_CALC_CRC	_IOWR('C', 0x01, unsigned int) -#define CRC_IOC_MEMCPY_CRC	_IOWR('C', 0x02, unsigned int) -#define CRC_IOC_VERIFY_VAL	_IOWR('C', 0x03, unsigned int) -#define CRC_IOC_FILL_VAL	_IOWR('C', 0x04, unsigned int) - - -#ifdef __KERNEL__ - -#include <linux/types.h> -#include <linux/spinlock.h> -#include <linux/miscdevice.h> - -struct crc_register { -	u32 control; -	u32 datacnt; -	u32 datacntrld; -	u32 __pad_1[2]; -	u32 compare; -	u32 fillval; -	u32 datafifo; -	u32 intren; -	u32 intrenset; -	u32 intrenclr; -	u32 poly; -	u32 __pad_2[4]; -	u32 status; -	u32 datacntcap; -	u32 __pad_3; -	u32 result; -	u32 curresult; -	u32 __pad_4[3]; -	u32 revid; -}; - -/* CRC_STATUS Masks */ -#define CMPERR			0x00000002	/* Compare error */ -#define DCNTEXP			0x00000010	/* datacnt register expired */ -#define IBR			0x00010000	/* Input buffer ready */ -#define OBR			0x00020000	/* Output buffer ready */ -#define IRR			0x00040000	/* Immediate result readt */ -#define LUTDONE			0x00080000	/* Look-up table generation done */ -#define FSTAT			0x00700000	/* FIFO status */ -#define MAX_FIFO		4		/* Max fifo size */ - -/* CRC_CONTROL Masks */ -#define BLKEN			0x00000001	/* Block enable */ -#define OPMODE			0x000000F0	/* Operation mode */ -#define OPMODE_OFFSET		4		/* Operation mode mask offset*/ -#define MODE_DMACPY_CRC		1		/* MTM CRC compute and compare */ -#define MODE_DATA_FILL		2		/* MTM data fill */ -#define MODE_CALC_CRC		3		/* MSM CRC compute and compare */ -#define MODE_DATA_VERIFY	4		/* MSM data verify */ -#define AUTOCLRZ		0x00000100	/* Auto clear to zero */ -#define AUTOCLRF		0x00000200	/* Auto clear to one */ -#define OBRSTALL		0x00001000	/* Stall on output buffer ready */ -#define IRRSTALL		0x00002000	/* Stall on immediate result ready */ -#define BITMIRR			0x00010000	/* Mirror bits within each byte of 32-bit input data */ -#define BITMIRR_OFFSET		16		/* Mirror bits offset */ -#define BYTMIRR			0x00020000	/* Mirror bytes of 32-bit input data */ -#define BYTMIRR_OFFSET		17		/* Mirror bytes offset */ -#define W16SWP			0x00040000	/* Mirror uppper and lower 16-bit word of 32-bit input data */ -#define W16SWP_OFFSET		18		/* Mirror 16-bit word offset */ -#define FDSEL			0x00080000	/* FIFO is written after input data is mirrored */ -#define FDSEL_OFFSET		19		/* Mirror FIFO offset */ -#define RSLTMIRR		0x00100000	/* CRC result registers are mirrored. */ -#define RSLTMIRR_OFFSET		20		/* Mirror CRC result offset. */ -#define POLYMIRR		0x00200000	/* CRC poly register is mirrored. */ -#define POLYMIRR_OFFSET		21		/* Mirror CRC poly offset. */ -#define CMPMIRR			0x00400000	/* CRC compare register is mirrored. */ -#define CMPMIRR_OFFSET		22		/* Mirror CRC compare offset. */ - -/* CRC_INTREN Masks */ -#define CMPERRI 		0x02		/* CRC_ERROR_INTR */ -#define DCNTEXPI 		0x10		/* CRC_STATUS_INTR */ - -#endif - -#endif diff --git a/arch/blackfin/include/asm/bfin_spi3.h b/arch/blackfin/include/asm/bfin_spi3.h deleted file mode 100644 index 0957e65a54b..00000000000 --- a/arch/blackfin/include/asm/bfin_spi3.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Analog Devices SPI3 controller driver - * - * Copyright (c) 2011 Analog Devices Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef _SPI_CHANNEL_H_ -#define _SPI_CHANNEL_H_ - -#include <linux/types.h> - -/* SPI_CONTROL */ -#define SPI_CTL_EN                  0x00000001    /* Enable */ -#define SPI_CTL_MSTR                0x00000002    /* Master/Slave */ -#define SPI_CTL_PSSE                0x00000004    /* controls modf error in master mode */ -#define SPI_CTL_ODM                 0x00000008    /* Open Drain Mode */ -#define SPI_CTL_CPHA                0x00000010    /* Clock Phase */ -#define SPI_CTL_CPOL                0x00000020    /* Clock Polarity */ -#define SPI_CTL_ASSEL               0x00000040    /* Slave Select Pin Control */ -#define SPI_CTL_SELST               0x00000080    /* Slave Select Polarity in-between transfers */ -#define SPI_CTL_EMISO               0x00000100    /* Enable MISO */ -#define SPI_CTL_SIZE                0x00000600    /* Word Transfer Size */ -#define SPI_CTL_SIZE08              0x00000000    /* SIZE: 8 bits */ -#define SPI_CTL_SIZE16              0x00000200    /* SIZE: 16 bits */ -#define SPI_CTL_SIZE32              0x00000400    /* SIZE: 32 bits */ -#define SPI_CTL_LSBF                0x00001000    /* LSB First */ -#define SPI_CTL_FCEN                0x00002000    /* Flow-Control Enable */ -#define SPI_CTL_FCCH                0x00004000    /* Flow-Control Channel Selection */ -#define SPI_CTL_FCPL                0x00008000    /* Flow-Control Polarity */ -#define SPI_CTL_FCWM                0x00030000    /* Flow-Control Water-Mark */ -#define SPI_CTL_FIFO0               0x00000000    /* FCWM: TFIFO empty or RFIFO Full */ -#define SPI_CTL_FIFO1               0x00010000    /* FCWM: TFIFO 75% or more empty or RFIFO 75% or more full */ -#define SPI_CTL_FIFO2               0x00020000    /* FCWM: TFIFO 50% or more empty or RFIFO 50% or more full */ -#define SPI_CTL_FMODE               0x00040000    /* Fast-mode Enable */ -#define SPI_CTL_MIOM                0x00300000    /* Multiple I/O Mode */ -#define SPI_CTL_MIO_DIS             0x00000000    /* MIOM: Disable */ -#define SPI_CTL_MIO_DUAL            0x00100000    /* MIOM: Enable DIOM (Dual I/O Mode) */ -#define SPI_CTL_MIO_QUAD            0x00200000    /* MIOM: Enable QUAD (Quad SPI Mode) */ -#define SPI_CTL_SOSI                0x00400000    /* Start on MOSI */ -/* SPI_RX_CONTROL */ -#define SPI_RXCTL_REN               0x00000001    /* Receive Channel Enable */ -#define SPI_RXCTL_RTI               0x00000004    /* Receive Transfer Initiate */ -#define SPI_RXCTL_RWCEN             0x00000008    /* Receive Word Counter Enable */ -#define SPI_RXCTL_RDR               0x00000070    /* Receive Data Request */ -#define SPI_RXCTL_RDR_DIS           0x00000000    /* RDR: Disabled */ -#define SPI_RXCTL_RDR_NE            0x00000010    /* RDR: RFIFO not empty */ -#define SPI_RXCTL_RDR_25            0x00000020    /* RDR: RFIFO 25% full */ -#define SPI_RXCTL_RDR_50            0x00000030    /* RDR: RFIFO 50% full */ -#define SPI_RXCTL_RDR_75            0x00000040    /* RDR: RFIFO 75% full */ -#define SPI_RXCTL_RDR_FULL          0x00000050    /* RDR: RFIFO full */ -#define SPI_RXCTL_RDO               0x00000100    /* Receive Data Over-Run */ -#define SPI_RXCTL_RRWM              0x00003000    /* FIFO Regular Water-Mark */ -#define SPI_RXCTL_RWM_0             0x00000000    /* RRWM: RFIFO Empty */ -#define SPI_RXCTL_RWM_25            0x00001000    /* RRWM: RFIFO 25% full */ -#define SPI_RXCTL_RWM_50            0x00002000    /* RRWM: RFIFO 50% full */ -#define SPI_RXCTL_RWM_75            0x00003000    /* RRWM: RFIFO 75% full */ -#define SPI_RXCTL_RUWM              0x00070000    /* FIFO Urgent Water-Mark */ -#define SPI_RXCTL_UWM_DIS           0x00000000    /* RUWM: Disabled */ -#define SPI_RXCTL_UWM_25            0x00010000    /* RUWM: RFIFO 25% full */ -#define SPI_RXCTL_UWM_50            0x00020000    /* RUWM: RFIFO 50% full */ -#define SPI_RXCTL_UWM_75            0x00030000    /* RUWM: RFIFO 75% full */ -#define SPI_RXCTL_UWM_FULL          0x00040000    /* RUWM: RFIFO full */ -/* SPI_TX_CONTROL */ -#define SPI_TXCTL_TEN               0x00000001    /* Transmit Channel Enable */ -#define SPI_TXCTL_TTI               0x00000004    /* Transmit Transfer Initiate */ -#define SPI_TXCTL_TWCEN             0x00000008    /* Transmit Word Counter Enable */ -#define SPI_TXCTL_TDR               0x00000070    /* Transmit Data Request */ -#define SPI_TXCTL_TDR_DIS           0x00000000    /* TDR: Disabled */ -#define SPI_TXCTL_TDR_NF            0x00000010    /* TDR: TFIFO not full */ -#define SPI_TXCTL_TDR_25            0x00000020    /* TDR: TFIFO 25% empty */ -#define SPI_TXCTL_TDR_50            0x00000030    /* TDR: TFIFO 50% empty */ -#define SPI_TXCTL_TDR_75            0x00000040    /* TDR: TFIFO 75% empty */ -#define SPI_TXCTL_TDR_EMPTY         0x00000050    /* TDR: TFIFO empty */ -#define SPI_TXCTL_TDU               0x00000100    /* Transmit Data Under-Run */ -#define SPI_TXCTL_TRWM              0x00003000    /* FIFO Regular Water-Mark */ -#define SPI_TXCTL_RWM_FULL          0x00000000    /* TRWM: TFIFO full */ -#define SPI_TXCTL_RWM_25            0x00001000    /* TRWM: TFIFO 25% empty */ -#define SPI_TXCTL_RWM_50            0x00002000    /* TRWM: TFIFO 50% empty */ -#define SPI_TXCTL_RWM_75            0x00003000    /* TRWM: TFIFO 75% empty */ -#define SPI_TXCTL_TUWM              0x00070000    /* FIFO Urgent Water-Mark */ -#define SPI_TXCTL_UWM_DIS           0x00000000    /* TUWM: Disabled */ -#define SPI_TXCTL_UWM_25            0x00010000    /* TUWM: TFIFO 25% empty */ -#define SPI_TXCTL_UWM_50            0x00020000    /* TUWM: TFIFO 50% empty */ -#define SPI_TXCTL_UWM_75            0x00030000    /* TUWM: TFIFO 75% empty */ -#define SPI_TXCTL_UWM_EMPTY         0x00040000    /* TUWM: TFIFO empty */ -/* SPI_CLOCK */ -#define SPI_CLK_BAUD                0x0000FFFF    /* Baud Rate */ -/* SPI_DELAY */ -#define SPI_DLY_STOP                0x000000FF    /* Transfer delay time in multiples of SCK period */ -#define SPI_DLY_LEADX               0x00000100    /* Extended (1 SCK) LEAD Control */ -#define SPI_DLY_LAGX                0x00000200    /* Extended (1 SCK) LAG control */ -/* SPI_SSEL */ -#define SPI_SLVSEL_SSE1             0x00000002    /* SPISSEL1 Enable */ -#define SPI_SLVSEL_SSE2             0x00000004    /* SPISSEL2 Enable */ -#define SPI_SLVSEL_SSE3             0x00000008    /* SPISSEL3 Enable */ -#define SPI_SLVSEL_SSE4             0x00000010    /* SPISSEL4 Enable */ -#define SPI_SLVSEL_SSE5             0x00000020    /* SPISSEL5 Enable */ -#define SPI_SLVSEL_SSE6             0x00000040    /* SPISSEL6 Enable */ -#define SPI_SLVSEL_SSE7             0x00000080    /* SPISSEL7 Enable */ -#define SPI_SLVSEL_SSEL1            0x00000200    /* SPISSEL1 Value */ -#define SPI_SLVSEL_SSEL2            0x00000400    /* SPISSEL2 Value */ -#define SPI_SLVSEL_SSEL3            0x00000800    /* SPISSEL3 Value */ -#define SPI_SLVSEL_SSEL4            0x00001000    /* SPISSEL4 Value */ -#define SPI_SLVSEL_SSEL5            0x00002000    /* SPISSEL5 Value */ -#define SPI_SLVSEL_SSEL6            0x00004000    /* SPISSEL6 Value */ -#define SPI_SLVSEL_SSEL7            0x00008000    /* SPISSEL7 Value */ -/* SPI_RWC */ -#define SPI_RWC_VALUE               0x0000FFFF    /* Received Word-Count */ -/* SPI_RWCR */ -#define SPI_RWCR_VALUE              0x0000FFFF    /* Received Word-Count Reload */ -/* SPI_TWC */ -#define SPI_TWC_VALUE               0x0000FFFF    /* Transmitted Word-Count */ -/* SPI_TWCR */ -#define SPI_TWCR_VALUE              0x0000FFFF    /* Transmitted Word-Count Reload */ -/* SPI_IMASK */ -#define SPI_IMSK_RUWM               0x00000002    /* Receive Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_TUWM               0x00000004    /* Transmit Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_ROM                0x00000010    /* Receive Over-Run Error Interrupt Mask */ -#define SPI_IMSK_TUM                0x00000020    /* Transmit Under-Run Error Interrupt Mask */ -#define SPI_IMSK_TCM                0x00000040    /* Transmit Collision Error Interrupt Mask */ -#define SPI_IMSK_MFM                0x00000080    /* Mode Fault Error Interrupt Mask */ -#define SPI_IMSK_RSM                0x00000100    /* Receive Start Interrupt Mask */ -#define SPI_IMSK_TSM                0x00000200    /* Transmit Start Interrupt Mask */ -#define SPI_IMSK_RFM                0x00000400    /* Receive Finish Interrupt Mask */ -#define SPI_IMSK_TFM                0x00000800    /* Transmit Finish Interrupt Mask */ -/* SPI_IMASKCL */ -#define SPI_IMSK_CLR_RUW            0x00000002    /* Receive Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_CLR_TUWM           0x00000004    /* Transmit Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_CLR_ROM            0x00000010    /* Receive Over-Run Error Interrupt Mask */ -#define SPI_IMSK_CLR_TUM            0x00000020    /* Transmit Under-Run Error Interrupt Mask */ -#define SPI_IMSK_CLR_TCM            0x00000040    /* Transmit Collision Error Interrupt Mask */ -#define SPI_IMSK_CLR_MFM            0x00000080    /* Mode Fault Error Interrupt Mask */ -#define SPI_IMSK_CLR_RSM            0x00000100    /* Receive Start Interrupt Mask */ -#define SPI_IMSK_CLR_TSM            0x00000200    /* Transmit Start Interrupt Mask */ -#define SPI_IMSK_CLR_RFM            0x00000400    /* Receive Finish Interrupt Mask */ -#define SPI_IMSK_CLR_TFM            0x00000800    /* Transmit Finish Interrupt Mask */ -/* SPI_IMASKST */ -#define SPI_IMSK_SET_RUWM           0x00000002    /* Receive Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_SET_TUWM           0x00000004    /* Transmit Urgent Water-Mark Interrupt Mask */ -#define SPI_IMSK_SET_ROM            0x00000010    /* Receive Over-Run Error Interrupt Mask */ -#define SPI_IMSK_SET_TUM            0x00000020    /* Transmit Under-Run Error Interrupt Mask */ -#define SPI_IMSK_SET_TCM            0x00000040    /* Transmit Collision Error Interrupt Mask */ -#define SPI_IMSK_SET_MFM            0x00000080    /* Mode Fault Error Interrupt Mask */ -#define SPI_IMSK_SET_RSM            0x00000100    /* Receive Start Interrupt Mask */ -#define SPI_IMSK_SET_TSM            0x00000200    /* Transmit Start Interrupt Mask */ -#define SPI_IMSK_SET_RFM            0x00000400    /* Receive Finish Interrupt Mask */ -#define SPI_IMSK_SET_TFM            0x00000800    /* Transmit Finish Interrupt Mask */ -/* SPI_STATUS */ -#define SPI_STAT_SPIF               0x00000001    /* SPI Finished */ -#define SPI_STAT_RUWM               0x00000002    /* Receive Urgent Water-Mark Breached */ -#define SPI_STAT_TUWM               0x00000004    /* Transmit Urgent Water-Mark Breached */ -#define SPI_STAT_ROE                0x00000010    /* Receive Over-Run Error Indication */ -#define SPI_STAT_TUE                0x00000020    /* Transmit Under-Run Error Indication */ -#define SPI_STAT_TCE                0x00000040    /* Transmit Collision Error Indication */ -#define SPI_STAT_MODF               0x00000080    /* Mode Fault Error Indication */ -#define SPI_STAT_RS                 0x00000100    /* Receive Start Indication */ -#define SPI_STAT_TS                 0x00000200    /* Transmit Start Indication */ -#define SPI_STAT_RF                 0x00000400    /* Receive Finish Indication */ -#define SPI_STAT_TF                 0x00000800    /* Transmit Finish Indication */ -#define SPI_STAT_RFS                0x00007000    /* SPI_RFIFO status */ -#define SPI_STAT_RFIFO_EMPTY        0x00000000    /* RFS: RFIFO Empty */ -#define SPI_STAT_RFIFO_25           0x00001000    /* RFS: RFIFO 25% Full */ -#define SPI_STAT_RFIFO_50           0x00002000    /* RFS: RFIFO 50% Full */ -#define SPI_STAT_RFIFO_75           0x00003000    /* RFS: RFIFO 75% Full */ -#define SPI_STAT_RFIFO_FULL         0x00004000    /* RFS: RFIFO Full */ -#define SPI_STAT_TFS                0x00070000    /* SPI_TFIFO status */ -#define SPI_STAT_TFIFO_FULL         0x00000000    /* TFS: TFIFO full */ -#define SPI_STAT_TFIFO_25           0x00010000    /* TFS: TFIFO 25% empty */ -#define SPI_STAT_TFIFO_50           0x00020000    /* TFS: TFIFO 50% empty */ -#define SPI_STAT_TFIFO_75           0x00030000    /* TFS: TFIFO 75% empty */ -#define SPI_STAT_TFIFO_EMPTY        0x00040000    /* TFS: TFIFO empty */ -#define SPI_STAT_FCS                0x00100000    /* Flow-Control Stall Indication */ -#define SPI_STAT_RFE                0x00400000    /* SPI_RFIFO Empty */ -#define SPI_STAT_TFF                0x00800000    /* SPI_TFIFO Full */ -/* SPI_ILAT */ -#define SPI_ILAT_RUWMI              0x00000002    /* Receive Urgent Water Mark Interrupt */ -#define SPI_ILAT_TUWMI              0x00000004    /* Transmit Urgent Water Mark Interrupt */ -#define SPI_ILAT_ROI                0x00000010    /* Receive Over-Run Error Indication */ -#define SPI_ILAT_TUI                0x00000020    /* Transmit Under-Run Error Indication */ -#define SPI_ILAT_TCI                0x00000040    /* Transmit Collision Error Indication */ -#define SPI_ILAT_MFI                0x00000080    /* Mode Fault Error Indication */ -#define SPI_ILAT_RSI                0x00000100    /* Receive Start Indication */ -#define SPI_ILAT_TSI                0x00000200    /* Transmit Start Indication */ -#define SPI_ILAT_RFI                0x00000400    /* Receive Finish Indication */ -#define SPI_ILAT_TFI                0x00000800    /* Transmit Finish Indication */ -/* SPI_ILATCL */ -#define SPI_ILAT_CLR_RUWMI          0x00000002    /* Receive Urgent Water Mark Interrupt */ -#define SPI_ILAT_CLR_TUWMI          0x00000004    /* Transmit Urgent Water Mark Interrupt */ -#define SPI_ILAT_CLR_ROI            0x00000010    /* Receive Over-Run Error Indication */ -#define SPI_ILAT_CLR_TUI            0x00000020    /* Transmit Under-Run Error Indication */ -#define SPI_ILAT_CLR_TCI            0x00000040    /* Transmit Collision Error Indication */ -#define SPI_ILAT_CLR_MFI            0x00000080    /* Mode Fault Error Indication */ -#define SPI_ILAT_CLR_RSI            0x00000100    /* Receive Start Indication */ -#define SPI_ILAT_CLR_TSI            0x00000200    /* Transmit Start Indication */ -#define SPI_ILAT_CLR_RFI            0x00000400    /* Receive Finish Indication */ -#define SPI_ILAT_CLR_TFI            0x00000800    /* Transmit Finish Indication */ - -/* - * bfin spi3 registers layout - */ -struct bfin_spi_regs { -	u32 revid; -	u32 control; -	u32 rx_control; -	u32 tx_control; -	u32 clock; -	u32 delay; -	u32 ssel; -	u32 rwc; -	u32 rwcr; -	u32 twc; -	u32 twcr; -	u32 reserved0; -	u32 emask; -	u32 emaskcl; -	u32 emaskst; -	u32 reserved1; -	u32 status; -	u32 elat; -	u32 elatcl; -	u32 reserved2; -	u32 rfifo; -	u32 reserved3; -	u32 tfifo; -}; - -#define MAX_CTRL_CS          8  /* cs in spi controller */ - -/* device.platform_data for SSP controller devices */ -struct bfin_spi3_master { -	u16 num_chipselect; -	u16 pin_req[7]; -}; - -/* spi_board_info.controller_data for SPI slave devices, - * copied to spi_device.platform_data ... mostly for dma tuning - */ -struct bfin_spi3_chip { -	u32 control; -	u16 cs_chg_udelay; /* Some devices require 16-bit delays */ -	u32 tx_dummy_val; /* tx value for rx only transfer */ -	bool enable_dma; -}; - -#endif /* _SPI_CHANNEL_H_ */ diff --git a/arch/blackfin/include/asm/bfin_twi.h b/arch/blackfin/include/asm/bfin_twi.h index 90c3c006557..aaa0834d34a 100644 --- a/arch/blackfin/include/asm/bfin_twi.h +++ b/arch/blackfin/include/asm/bfin_twi.h @@ -9,60 +9,7 @@  #ifndef __ASM_BFIN_TWI_H__  #define __ASM_BFIN_TWI_H__ -#include <linux/types.h> -#include <linux/i2c.h> - -/* - * All Blackfin system MMRs are padded to 32bits even if the register - * itself is only 16bits.  So use a helper macro to streamline this. - */ -#define __BFP(m) u16 m; u16 __pad_##m - -/* - * bfin twi registers layout - */ -struct bfin_twi_regs { -	__BFP(clkdiv); -	__BFP(control); -	__BFP(slave_ctl); -	__BFP(slave_stat); -	__BFP(slave_addr); -	__BFP(master_ctl); -	__BFP(master_stat); -	__BFP(master_addr); -	__BFP(int_stat); -	__BFP(int_mask); -	__BFP(fifo_ctl); -	__BFP(fifo_stat); -	u32 __pad[20]; -	__BFP(xmt_data8); -	__BFP(xmt_data16); -	__BFP(rcv_data8); -	__BFP(rcv_data16); -}; - -#undef __BFP - -struct bfin_twi_iface { -	int			irq; -	spinlock_t		lock; -	char			read_write; -	u8			command; -	u8			*transPtr; -	int			readNum; -	int			writeNum; -	int			cur_mode; -	int			manual_stop; -	int			result; -	struct i2c_adapter	adap; -	struct completion	complete; -	struct i2c_msg		*pmsg; -	int			msg_num; -	int			cur_msg; -	u16			saved_clkdiv; -	u16			saved_control; -	struct bfin_twi_regs __iomem *regs_base; -}; +#include <asm/blackfin.h>  #define DEFINE_TWI_REG(reg_name, reg) \  static inline u16 read_##reg_name(struct bfin_twi_iface *iface) \ @@ -71,7 +18,6 @@ static inline void write_##reg_name(struct bfin_twi_iface *iface, u16 v) \  	{ bfin_write16(&iface->regs_base->reg, v); }  DEFINE_TWI_REG(CLKDIV, clkdiv) -DEFINE_TWI_REG(CONTROL, control)  DEFINE_TWI_REG(SLAVE_CTL, slave_ctl)  DEFINE_TWI_REG(SLAVE_STAT, slave_stat)  DEFINE_TWI_REG(SLAVE_ADDR, slave_addr) @@ -80,7 +26,6 @@ DEFINE_TWI_REG(MASTER_STAT, master_stat)  DEFINE_TWI_REG(MASTER_ADDR, master_addr)  DEFINE_TWI_REG(INT_STAT, int_stat)  DEFINE_TWI_REG(INT_MASK, int_mask) -DEFINE_TWI_REG(FIFO_CTL, fifo_ctl)  DEFINE_TWI_REG(FIFO_STAT, fifo_stat)  DEFINE_TWI_REG(XMT_DATA8, xmt_data8)  DEFINE_TWI_REG(XMT_DATA16, xmt_data16) @@ -113,75 +58,25 @@ static inline u16 read_RCV_DATA16(struct bfin_twi_iface *iface)  }  #endif +static inline u16 read_FIFO_CTL(struct bfin_twi_iface *iface) +{ +	return bfin_read16(&iface->regs_base->fifo_ctl); +} -/*  ********************  TWO-WIRE INTERFACE (TWI) MASKS  ***********************/ -/* TWI_CLKDIV Macros (Use: *pTWI_CLKDIV = CLKLOW(x)|CLKHI(y);  )				*/ -#define	CLKLOW(x)	((x) & 0xFF)	/* Periods Clock Is Held Low                    */ -#define CLKHI(y)	(((y)&0xFF)<<0x8)	/* Periods Before New Clock Low                 */ - -/* TWI_PRESCALE Masks															*/ -#define	PRESCALE	0x007F	/* SCLKs Per Internal Time Reference (10MHz)    */ -#define	TWI_ENA		0x0080	/* TWI Enable                                                                   */ -#define	SCCB		0x0200	/* SCCB Compatibility Enable                                    */ - -/* TWI_SLAVE_CTL Masks															*/ -#define	SEN			0x0001	/* Slave Enable                                                                 */ -#define	SADD_LEN	0x0002	/* Slave Address Length                                                 */ -#define	STDVAL		0x0004	/* Slave Transmit Data Valid                                    */ -#define	NAK			0x0008	/* NAK/ACK* Generated At Conclusion Of Transfer */ -#define	GEN			0x0010	/* General Call Address Matching Enabled                */ - -/* TWI_SLAVE_STAT Masks															*/ -#define	SDIR		0x0001	/* Slave Transfer Direction (Transmit/Receive*) */ -#define GCALL		0x0002	/* General Call Indicator                                               */ - -/* TWI_MASTER_CTL Masks													*/ -#define	MEN			0x0001	/* Master Mode Enable                                           */ -#define	MADD_LEN	0x0002	/* Master Address Length                                        */ -#define	MDIR		0x0004	/* Master Transmit Direction (RX/TX*)           */ -#define	FAST		0x0008	/* Use Fast Mode Timing Specs                           */ -#define	STOP		0x0010	/* Issue Stop Condition                                         */ -#define	RSTART		0x0020	/* Repeat Start or Stop* At End Of Transfer     */ -#define	DCNT		0x3FC0	/* Data Bytes To Transfer                                       */ -#define	SDAOVR		0x4000	/* Serial Data Override                                         */ -#define	SCLOVR		0x8000	/* Serial Clock Override                                        */ - -/* TWI_MASTER_STAT Masks														*/ -#define	MPROG		0x0001	/* Master Transfer In Progress                                  */ -#define	LOSTARB		0x0002	/* Lost Arbitration Indicator (Xfer Aborted)    */ -#define	ANAK		0x0004	/* Address Not Acknowledged                                             */ -#define	DNAK		0x0008	/* Data Not Acknowledged                                                */ -#define	BUFRDERR	0x0010	/* Buffer Read Error                                                    */ -#define	BUFWRERR	0x0020	/* Buffer Write Error                                                   */ -#define	SDASEN		0x0040	/* Serial Data Sense                                                    */ -#define	SCLSEN		0x0080	/* Serial Clock Sense                                                   */ -#define	BUSBUSY		0x0100	/* Bus Busy Indicator                                                   */ - -/* TWI_INT_SRC and TWI_INT_ENABLE Masks						*/ -#define	SINIT		0x0001	/* Slave Transfer Initiated     */ -#define	SCOMP		0x0002	/* Slave Transfer Complete      */ -#define	SERR		0x0004	/* Slave Transfer Error         */ -#define	SOVF		0x0008	/* Slave Overflow                       */ -#define	MCOMP		0x0010	/* Master Transfer Complete     */ -#define	MERR		0x0020	/* Master Transfer Error        */ -#define	XMTSERV		0x0040	/* Transmit FIFO Service        */ -#define	RCVSERV		0x0080	/* Receive FIFO Service         */ - -/* TWI_FIFO_CTRL Masks												*/ -#define	XMTFLUSH	0x0001	/* Transmit Buffer Flush                        */ -#define	RCVFLUSH	0x0002	/* Receive Buffer Flush                         */ -#define	XMTINTLEN	0x0004	/* Transmit Buffer Interrupt Length     */ -#define	RCVINTLEN	0x0008	/* Receive Buffer Interrupt Length      */ - -/* TWI_FIFO_STAT Masks															*/ -#define	XMTSTAT		0x0003	/* Transmit FIFO Status                                                 */ -#define	XMT_EMPTY	0x0000	/*              Transmit FIFO Empty                                             */ -#define	XMT_HALF	0x0001	/*              Transmit FIFO Has 1 Byte To Write               */ -#define	XMT_FULL	0x0003	/*              Transmit FIFO Full (2 Bytes To Write)   */ +static inline void write_FIFO_CTL(struct bfin_twi_iface *iface, u16 v) +{ +	bfin_write16(&iface->regs_base->fifo_ctl, v); +	SSYNC(); +} -#define	RCVSTAT		0x000C	/* Receive FIFO Status                                                  */ -#define	RCV_EMPTY	0x0000	/*              Receive FIFO Empty                                              */ -#define	RCV_HALF	0x0004	/*              Receive FIFO Has 1 Byte To Read                 */ -#define	RCV_FULL	0x000C	/*              Receive FIFO Full (2 Bytes To Read)             */ +static inline u16 read_CONTROL(struct bfin_twi_iface *iface) +{ +	return bfin_read16(&iface->regs_base->control); +} +static inline void write_CONTROL(struct bfin_twi_iface *iface, u16 v) +{ +	SSYNC(); +	bfin_write16(&iface->regs_base->control, v); +}  #endif diff --git a/arch/blackfin/include/asm/bitops.h b/arch/blackfin/include/asm/bitops.h index 0ca40dd4472..b298b654a26 100644 --- a/arch/blackfin/include/asm/bitops.h +++ b/arch/blackfin/include/asm/bitops.h @@ -27,21 +27,17 @@  #include <asm-generic/bitops/ext2-atomic.h> +#include <asm/barrier.h> +  #ifndef CONFIG_SMP  #include <linux/irqflags.h> -  /*   * clear_bit may not imply a memory barrier   */ -#ifndef smp_mb__before_clear_bit -#define smp_mb__before_clear_bit()	smp_mb() -#define smp_mb__after_clear_bit()	smp_mb() -#endif  #include <asm-generic/bitops/atomic.h>  #include <asm-generic/bitops/non-atomic.h>  #else -#include <asm/barrier.h>  #include <asm/byteorder.h>	/* swab32 */  #include <linux/linkage.h> @@ -101,12 +97,6 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)  	return __raw_bit_test_toggle_asm(a, nr & 0x1f);  } -/* - * clear_bit() doesn't provide any barrier for the compiler. - */ -#define smp_mb__before_clear_bit()	barrier() -#define smp_mb__after_clear_bit()	barrier() -  #define test_bit __skip_test_bit  #include <asm-generic/bitops/non-atomic.h>  #undef test_bit diff --git a/arch/blackfin/include/asm/clkdev.h b/arch/blackfin/include/asm/clkdev.h index 9053beda8c5..7ac2436856a 100644 --- a/arch/blackfin/include/asm/clkdev.h +++ b/arch/blackfin/include/asm/clkdev.h @@ -8,7 +8,9 @@ static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size)  	return kzalloc(size, GFP_KERNEL);  } +#ifndef CONFIG_COMMON_CLK  #define __clk_put(clk)  #define __clk_get(clk) ({ 1; }) +#endif  #endif diff --git a/arch/blackfin/include/asm/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h index ca67145c6a4..c5c8d8a3a5f 100644 --- a/arch/blackfin/include/asm/def_LPBlackfin.h +++ b/arch/blackfin/include/asm/def_LPBlackfin.h @@ -544,6 +544,7 @@ do { \  #define DCBS_P			0x04	/* L1 Data Cache Bank Select */  #define PORT_PREF0_P		0x12	/* DAG0 Port Preference */  #define PORT_PREF1_P		0x13	/* DAG1 Port Preference */ +#define RDCHK			0x9	/* Enable L1 Parity Check */  /* Masks */  #define ENDM               0x00000001	/* (doesn't really exist) Enable diff --git a/arch/blackfin/include/asm/ftrace.h b/arch/blackfin/include/asm/ftrace.h index 8a029505d7b..2f1c3c2657a 100644 --- a/arch/blackfin/include/asm/ftrace.h +++ b/arch/blackfin/include/asm/ftrace.h @@ -66,16 +66,7 @@ extern inline void *return_address(unsigned int level)  #endif /* CONFIG_FRAME_POINTER */ -#define HAVE_ARCH_CALLER_ADDR - -/* inline function or macro may lead to unexpected result */ -#define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) -#define CALLER_ADDR1 ((unsigned long)return_address(1)) -#define CALLER_ADDR2 ((unsigned long)return_address(2)) -#define CALLER_ADDR3 ((unsigned long)return_address(3)) -#define CALLER_ADDR4 ((unsigned long)return_address(4)) -#define CALLER_ADDR5 ((unsigned long)return_address(5)) -#define CALLER_ADDR6 ((unsigned long)return_address(6)) +#define ftrace_return_address(n) return_address(n)  #endif /* __ASSEMBLY__ */ diff --git a/arch/blackfin/include/asm/gpio.h b/arch/blackfin/include/asm/gpio.h index 98d0133346b..99d338ca2ea 100644 --- a/arch/blackfin/include/asm/gpio.h +++ b/arch/blackfin/include/asm/gpio.h @@ -25,8 +25,12 @@  #ifndef __ASSEMBLY__ +#ifndef CONFIG_PINCTRL +  #include <linux/compiler.h> -#include <linux/gpio.h> +#include <asm/blackfin.h> +#include <asm/portmux.h> +#include <asm/irq_handler.h>  /***********************************************************  * @@ -45,7 +49,6 @@  * MODIFICATION HISTORY :  **************************************************************/ -#if !BFIN_GPIO_PINT  void set_gpio_dir(unsigned, unsigned short);  void set_gpio_inen(unsigned, unsigned short);  void set_gpio_polar(unsigned, unsigned short); @@ -115,7 +118,6 @@ struct gpio_port_t {  	unsigned short dummy16;  	unsigned short inen;  }; -#endif  #ifdef BFIN_SPECIAL_GPIO_BANKS  void bfin_special_gpio_free(unsigned gpio); @@ -127,25 +129,21 @@ void bfin_special_gpio_pm_hibernate_suspend(void);  #endif  #ifdef CONFIG_PM -int bfin_pm_standby_ctrl(unsigned ctrl); +void bfin_gpio_pm_hibernate_restore(void); +void bfin_gpio_pm_hibernate_suspend(void); +int bfin_gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl); +int bfin_gpio_pm_standby_ctrl(unsigned ctrl);  static inline int bfin_pm_standby_setup(void)  { -	return bfin_pm_standby_ctrl(1); +	return bfin_gpio_pm_standby_ctrl(1);  }  static inline void bfin_pm_standby_restore(void)  { -	bfin_pm_standby_ctrl(0); +	bfin_gpio_pm_standby_ctrl(0);  } -void bfin_gpio_pm_hibernate_restore(void); -void bfin_gpio_pm_hibernate_suspend(void); -void bfin_pint_suspend(void); -void bfin_pint_resume(void); - -# if !BFIN_GPIO_PINT -int gpio_pm_wakeup_ctrl(unsigned gpio, unsigned ctrl);  struct gpio_port_s {  	unsigned short data; @@ -161,7 +159,6 @@ struct gpio_port_s {  	unsigned short reserved;  	unsigned short mux;  }; -# endif  #endif /*CONFIG_PM*/  /*********************************************************** @@ -178,36 +175,29 @@ struct gpio_port_s {  *************************************************************  * MODIFICATION HISTORY :  **************************************************************/ - -int bfin_gpio_request(unsigned gpio, const char *label); -void bfin_gpio_free(unsigned gpio);  int bfin_gpio_irq_request(unsigned gpio, const char *label);  void bfin_gpio_irq_free(unsigned gpio); -int bfin_gpio_direction_input(unsigned gpio); -int bfin_gpio_direction_output(unsigned gpio, int value); -int bfin_gpio_get_value(unsigned gpio); -void bfin_gpio_set_value(unsigned gpio, int value); +void bfin_gpio_irq_prepare(unsigned gpio); + +static inline int irq_to_gpio(unsigned irq) +{ +	return irq - GPIO_IRQ_BASE; +} +#endif /* CONFIG_PINCTRL */  #include <asm/irq.h>  #include <asm/errno.h> -#ifdef CONFIG_GPIOLIB  #include <asm-generic/gpio.h>		/* cansleep wrappers */  static inline int gpio_get_value(unsigned int gpio)  { -	if (gpio < MAX_BLACKFIN_GPIOS) -		return bfin_gpio_get_value(gpio); -	else -		return __gpio_get_value(gpio); +	return __gpio_get_value(gpio);  }  static inline void gpio_set_value(unsigned int gpio, int value)  { -	if (gpio < MAX_BLACKFIN_GPIOS) -		bfin_gpio_set_value(gpio, value); -	else -		__gpio_set_value(gpio, value); +	__gpio_set_value(gpio, value);  }  static inline int gpio_cansleep(unsigned int gpio) @@ -219,113 +209,6 @@ static inline int gpio_to_irq(unsigned gpio)  {  	return __gpio_to_irq(gpio);  } - -#else /* !CONFIG_GPIOLIB */ - -static inline int gpio_request(unsigned gpio, const char *label) -{ -	return bfin_gpio_request(gpio, label); -} - -static inline void gpio_free(unsigned gpio) -{ -	return bfin_gpio_free(gpio); -} - -static inline int gpio_direction_input(unsigned gpio) -{ -	return bfin_gpio_direction_input(gpio); -} - -static inline int gpio_direction_output(unsigned gpio, int value) -{ -	return bfin_gpio_direction_output(gpio, value); -} - -static inline int gpio_set_debounce(unsigned gpio, unsigned debounce) -{ -	return -EINVAL; -} - -static inline int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) -{ -	int err; - -	err = bfin_gpio_request(gpio, label); -	if (err) -		return err; - -	if (flags & GPIOF_DIR_IN) -		err = bfin_gpio_direction_input(gpio); -	else -		err = bfin_gpio_direction_output(gpio, -			(flags & GPIOF_INIT_HIGH) ? 1 : 0); - -	if (err) -		bfin_gpio_free(gpio); - -	return err; -} - -static inline int gpio_request_array(const struct gpio *array, size_t num) -{ -	int i, err; - -	for (i = 0; i < num; i++, array++) { -		err = gpio_request_one(array->gpio, array->flags, array->label); -		if (err) -			goto err_free; -	} -	return 0; - -err_free: -	while (i--) -		bfin_gpio_free((--array)->gpio); -	return err; -} - -static inline void gpio_free_array(const struct gpio *array, size_t num) -{ -	while (num--) -		bfin_gpio_free((array++)->gpio); -} - -static inline int __gpio_get_value(unsigned gpio) -{ -	return bfin_gpio_get_value(gpio); -} - -static inline void __gpio_set_value(unsigned gpio, int value) -{ -	return bfin_gpio_set_value(gpio, value); -} - -static inline int gpio_get_value(unsigned gpio) -{ -	return __gpio_get_value(gpio); -} - -static inline void gpio_set_value(unsigned gpio, int value) -{ -	return __gpio_set_value(gpio, value); -} - -static inline int gpio_to_irq(unsigned gpio) -{ -	if (likely(gpio < MAX_BLACKFIN_GPIOS)) -		return gpio + GPIO_IRQ_BASE; - -	return -EINVAL; -} - -#include <asm-generic/gpio.h>		/* cansleep wrappers */ -#endif	/* !CONFIG_GPIOLIB */ - -static inline int irq_to_gpio(unsigned irq) -{ -	return (irq - GPIO_IRQ_BASE); -} -  #endif /* __ASSEMBLY__ */  #endif /* __ARCH_BLACKFIN_GPIO_H__ */ diff --git a/arch/blackfin/include/asm/hardirq.h b/arch/blackfin/include/asm/hardirq.h index c078dd78d99..58b54a6d5a1 100644 --- a/arch/blackfin/include/asm/hardirq.h +++ b/arch/blackfin/include/asm/hardirq.h @@ -12,9 +12,6 @@  extern void ack_bad_irq(unsigned int irq);  #define ack_bad_irq ack_bad_irq -/* Define until common code gets sane defaults */ -#define HARDIRQ_BITS 9 -  #include <asm-generic/hardirq.h>  #endif diff --git a/arch/blackfin/include/asm/irq.h b/arch/blackfin/include/asm/irq.h index 4ae1144a457..89de539ed01 100644 --- a/arch/blackfin/include/asm/irq.h +++ b/arch/blackfin/include/asm/irq.h @@ -20,16 +20,6 @@  /* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */  #include <mach/irq.h> -/* - * pm save bfin pint registers - */ -struct bfin_pm_pint_save { -	u32 mask_set; -	u32 assign; -	u32 edge_set; -	u32 invert_set; -}; -  #if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)  # define NOP_PAD_ANOMALY_05000244 "nop; nop;"  #else diff --git a/arch/blackfin/include/asm/irq_handler.h b/arch/blackfin/include/asm/irq_handler.h index 4fbf83575db..4b2a992794d 100644 --- a/arch/blackfin/include/asm/irq_handler.h +++ b/arch/blackfin/include/asm/irq_handler.h @@ -12,11 +12,11 @@  #include <mach/irq.h>  /* init functions only */ -extern int __init init_arch_irq(void); +extern int init_arch_irq(void);  extern void init_exception_vectors(void); -extern void __init program_IAR(void); +extern void program_IAR(void);  #ifdef init_mach_irq -extern void __init init_mach_irq(void); +extern void init_mach_irq(void);  #else  # define init_mach_irq()  #endif diff --git a/arch/blackfin/include/asm/pci.h b/arch/blackfin/include/asm/pci.h index 74352c4597d..c737909fba4 100644 --- a/arch/blackfin/include/asm/pci.h +++ b/arch/blackfin/include/asm/pci.h @@ -10,9 +10,4 @@  #define PCIBIOS_MIN_IO 0x00001000  #define PCIBIOS_MIN_MEM 0x10000000 -static inline void pcibios_penalize_isa_irq(int irq) -{ -	/* We don't do dynamic PCI IRQ allocation */ -} -  #endif				/* _ASM_BFIN_PCI_H */ diff --git a/arch/blackfin/include/asm/portmux.h b/arch/blackfin/include/asm/portmux.h index 9b1e2c37b32..c8f0939419b 100644 --- a/arch/blackfin/include/asm/portmux.h +++ b/arch/blackfin/include/asm/portmux.h @@ -17,14 +17,27 @@  #define P_MAYSHARE	0x2000  #define P_DONTCARE	0x1000 +#ifdef CONFIG_PINCTRL +int bfin_internal_set_wake(unsigned int irq, unsigned int state); +#define gpio_pint_regs bfin_pint_regs +#define adi_internal_set_wake bfin_internal_set_wake + +#define peripheral_request(per, label) (0) +#define peripheral_free(per) +#define peripheral_request_list(per, label) (0) +#define peripheral_free_list(per) +#else  int peripheral_request(unsigned short per, const char *label);  void peripheral_free(unsigned short per);  int peripheral_request_list(const unsigned short per[], const char *label);  void peripheral_free_list(const unsigned short per[]); +#endif -#include <asm/gpio.h> +#include <linux/err.h> +#include <linux/pinctrl/pinctrl.h>  #include <mach/portmux.h> +#include <mach/gpio.h>  #ifndef P_SPORT2_TFS  #define P_SPORT2_TFS P_UNDEF diff --git a/arch/blackfin/include/asm/thread_info.h b/arch/blackfin/include/asm/thread_info.h index 3894005337b..55f473bdad3 100644 --- a/arch/blackfin/include/asm/thread_info.h +++ b/arch/blackfin/include/asm/thread_info.h @@ -88,8 +88,6 @@ static inline struct thread_info *current_thread_info(void)  #define TI_CPU		12  #define TI_PREEMPT	16 -#define	PREEMPT_ACTIVE	0x4000000 -  /*   * thread information flag bit numbers   */ diff --git a/arch/blackfin/include/asm/unistd.h b/arch/blackfin/include/asm/unistd.h index c35414bdf7b..c8c8ff9eff6 100644 --- a/arch/blackfin/include/asm/unistd.h +++ b/arch/blackfin/include/asm/unistd.h @@ -12,7 +12,6 @@  #define __ARCH_WANT_SYS_ALARM  #define __ARCH_WANT_SYS_GETHOSTNAME  #define __ARCH_WANT_SYS_PAUSE -#define __ARCH_WANT_SYS_SGETMASK  #define __ARCH_WANT_SYS_TIME  #define __ARCH_WANT_SYS_FADVISE64  #define __ARCH_WANT_SYS_GETPGRP diff --git a/arch/blackfin/include/uapi/asm/byteorder.h b/arch/blackfin/include/uapi/asm/byteorder.h index 9558416d578..3b125da5dcb 100644 --- a/arch/blackfin/include/uapi/asm/byteorder.h +++ b/arch/blackfin/include/uapi/asm/byteorder.h @@ -1 +1,6 @@ +#ifndef _UAPI__BFIN_ASM_BYTEORDER_H +#define _UAPI__BFIN_ASM_BYTEORDER_H +  #include <linux/byteorder/little_endian.h> + +#endif /* _UAPI__BFIN_ASM_BYTEORDER_H */ diff --git a/arch/blackfin/include/uapi/asm/cachectl.h b/arch/blackfin/include/uapi/asm/cachectl.h index 03255df6c1e..4fdab75dee1 100644 --- a/arch/blackfin/include/uapi/asm/cachectl.h +++ b/arch/blackfin/include/uapi/asm/cachectl.h @@ -7,8 +7,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef	_ASM_CACHECTL -#define	_ASM_CACHECTL +#ifndef _UAPI_ASM_CACHECTL +#define _UAPI_ASM_CACHECTL  /*   * Options for cacheflush system call @@ -17,4 +17,4 @@  #define	DCACHE	(1<<1)		/* writeback and flush data cache */  #define	BCACHE	(ICACHE|DCACHE)	/* flush both caches              */ -#endif	/* _ASM_CACHECTL */ +#endif /* _UAPI_ASM_CACHECTL */ diff --git a/arch/blackfin/include/uapi/asm/fcntl.h b/arch/blackfin/include/uapi/asm/fcntl.h index 251c911d59c..f51ad9a4f61 100644 --- a/arch/blackfin/include/uapi/asm/fcntl.h +++ b/arch/blackfin/include/uapi/asm/fcntl.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef _BFIN_FCNTL_H -#define _BFIN_FCNTL_H +#ifndef _UAPI_BFIN_FCNTL_H +#define _UAPI_BFIN_FCNTL_H  #define O_DIRECTORY	 040000	/* must be a directory */  #define O_NOFOLLOW	0100000	/* don't follow links */ @@ -14,4 +14,4 @@  #include <asm-generic/fcntl.h> -#endif +#endif /* _UAPI_BFIN_FCNTL_H */ diff --git a/arch/blackfin/include/uapi/asm/ioctls.h b/arch/blackfin/include/uapi/asm/ioctls.h index eca8d75b0a8..9a41c20fc83 100644 --- a/arch/blackfin/include/uapi/asm/ioctls.h +++ b/arch/blackfin/include/uapi/asm/ioctls.h @@ -1,7 +1,7 @@ -#ifndef __ARCH_BFIN_IOCTLS_H__ -#define __ARCH_BFIN_IOCTLS_H__ +#ifndef _UAPI__ARCH_BFIN_IOCTLS_H__ +#define _UAPI__ARCH_BFIN_IOCTLS_H__  #define FIOQSIZE	0x545E  #include <asm-generic/ioctls.h> -#endif +#endif /* _UAPI__ARCH_BFIN_IOCTLS_H__ */ diff --git a/arch/blackfin/include/uapi/asm/poll.h b/arch/blackfin/include/uapi/asm/poll.h index 072d8966c5c..99c7d6816da 100644 --- a/arch/blackfin/include/uapi/asm/poll.h +++ b/arch/blackfin/include/uapi/asm/poll.h @@ -5,12 +5,12 @@   *   */ -#ifndef __BFIN_POLL_H -#define __BFIN_POLL_H +#ifndef _UAPI__BFIN_POLL_H +#define _UAPI__BFIN_POLL_H  #define POLLWRNORM	4 /* POLLOUT */  #define POLLWRBAND	256  #include <asm-generic/poll.h> -#endif +#endif /* _UAPI__BFIN_POLL_H */ diff --git a/arch/blackfin/include/uapi/asm/posix_types.h b/arch/blackfin/include/uapi/asm/posix_types.h index 1bd3436db6a..9608ef64dc4 100644 --- a/arch/blackfin/include/uapi/asm/posix_types.h +++ b/arch/blackfin/include/uapi/asm/posix_types.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef __ARCH_BFIN_POSIX_TYPES_H -#define __ARCH_BFIN_POSIX_TYPES_H +#ifndef _UAPI__ARCH_BFIN_POSIX_TYPES_H +#define _UAPI__ARCH_BFIN_POSIX_TYPES_H  typedef unsigned short __kernel_mode_t;  #define __kernel_mode_t __kernel_mode_t @@ -27,4 +27,4 @@ typedef unsigned short __kernel_old_dev_t;  #include <asm-generic/posix_types.h> -#endif +#endif /* _UAPI__ARCH_BFIN_POSIX_TYPES_H */ diff --git a/arch/blackfin/include/uapi/asm/sigcontext.h b/arch/blackfin/include/uapi/asm/sigcontext.h index 906bdc1f5fd..b58f12dc27b 100644 --- a/arch/blackfin/include/uapi/asm/sigcontext.h +++ b/arch/blackfin/include/uapi/asm/sigcontext.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef _ASM_BLACKFIN_SIGCONTEXT_H -#define _ASM_BLACKFIN_SIGCONTEXT_H +#ifndef _UAPI_ASM_BLACKFIN_SIGCONTEXT_H +#define _UAPI_ASM_BLACKFIN_SIGCONTEXT_H  /* Add new entries at the end of the structure only.  */  struct sigcontext { @@ -58,4 +58,4 @@ struct sigcontext {  	unsigned long sc_seqstat;  }; -#endif +#endif /* _UAPI_ASM_BLACKFIN_SIGCONTEXT_H */ diff --git a/arch/blackfin/include/uapi/asm/siginfo.h b/arch/blackfin/include/uapi/asm/siginfo.h index 3e81306394e..c72f4e6e386 100644 --- a/arch/blackfin/include/uapi/asm/siginfo.h +++ b/arch/blackfin/include/uapi/asm/siginfo.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef _BFIN_SIGINFO_H -#define _BFIN_SIGINFO_H +#ifndef _UAPI_BFIN_SIGINFO_H +#define _UAPI_BFIN_SIGINFO_H  #include <linux/types.h>  #include <asm-generic/siginfo.h> @@ -38,4 +38,4 @@   */  #define SEGV_STACKFLOW	(__SI_FAULT|3)	/* stack overflow */ -#endif +#endif /* _UAPI_BFIN_SIGINFO_H */ diff --git a/arch/blackfin/include/uapi/asm/signal.h b/arch/blackfin/include/uapi/asm/signal.h index 77a3bf37b69..f0a0d8b6663 100644 --- a/arch/blackfin/include/uapi/asm/signal.h +++ b/arch/blackfin/include/uapi/asm/signal.h @@ -1,7 +1,7 @@ -#ifndef _BLACKFIN_SIGNAL_H -#define _BLACKFIN_SIGNAL_H +#ifndef _UAPI_BLACKFIN_SIGNAL_H +#define _UAPI_BLACKFIN_SIGNAL_H  #define SA_RESTORER 0x04000000  #include <asm-generic/signal.h> -#endif +#endif /* _UAPI_BLACKFIN_SIGNAL_H */ diff --git a/arch/blackfin/include/uapi/asm/stat.h b/arch/blackfin/include/uapi/asm/stat.h index 2e27665c4e9..d3068a750b9 100644 --- a/arch/blackfin/include/uapi/asm/stat.h +++ b/arch/blackfin/include/uapi/asm/stat.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2.   */ -#ifndef _BFIN_STAT_H -#define _BFIN_STAT_H +#ifndef _UAPI_BFIN_STAT_H +#define _UAPI_BFIN_STAT_H  struct stat {  	unsigned short st_dev; @@ -66,4 +66,4 @@ struct stat64 {  	unsigned long long st_ino;  }; -#endif				/* _BFIN_STAT_H */ +#endif /* _UAPI_BFIN_STAT_H */ diff --git a/arch/blackfin/include/uapi/asm/swab.h b/arch/blackfin/include/uapi/asm/swab.h index 89de6507ca2..f5626b77684 100644 --- a/arch/blackfin/include/uapi/asm/swab.h +++ b/arch/blackfin/include/uapi/asm/swab.h @@ -4,8 +4,8 @@   * Licensed under the GPL-2 or later.   */ -#ifndef _BLACKFIN_SWAB_H -#define _BLACKFIN_SWAB_H +#ifndef _UAPI_BLACKFIN_SWAB_H +#define _UAPI_BLACKFIN_SWAB_H  #include <linux/types.h>  #include <asm-generic/swab.h> @@ -47,4 +47,4 @@ static __inline__ __attribute_const__ __u16 __arch_swab16(__u16 xx)  #endif /* __GNUC__ */ -#endif				/* _BLACKFIN_SWAB_H */ +#endif /* _UAPI_BLACKFIN_SWAB_H */  | 
