| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  | /* linux/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2009 Samsung Electronics Ltd. | 
					
						
							|  |  |  |  *	Jaswinder Singh <jassi.brar@samsung.com> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __S3C64XX_PLAT_SPI_H
 | 
					
						
							|  |  |  | #define __S3C64XX_PLAT_SPI_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-11 22:42:03 +02:00
										 |  |  | #include <linux/dmaengine.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-29 18:01:08 +09:00
										 |  |  | struct platform_device; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * struct s3c64xx_spi_csinfo - ChipSelect description | 
					
						
							|  |  |  |  * @fb_delay: Slave specific feedback delay. | 
					
						
							|  |  |  |  *            Refer to FB_CLK_SEL register definition in SPI chapter. | 
					
						
							|  |  |  |  * @line: Custom 'identity' of the CS line. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This is per SPI-Slave Chipselect information. | 
					
						
							|  |  |  |  * Allocate and initialize one in machine init code and make the | 
					
						
							|  |  |  |  * spi_board_info.controller_data point to it. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct s3c64xx_spi_csinfo { | 
					
						
							|  |  |  | 	u8 fb_delay; | 
					
						
							|  |  |  | 	unsigned line; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * struct s3c64xx_spi_info - SPI Controller defining structure | 
					
						
							|  |  |  |  * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. | 
					
						
							|  |  |  |  * @num_cs: Number of CS this controller emulates. | 
					
						
							|  |  |  |  * @cfg_gpio: Configure pins for this SPI controller. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct s3c64xx_spi_info { | 
					
						
							|  |  |  | 	int src_clk_nr; | 
					
						
							|  |  |  | 	int num_cs; | 
					
						
							| 
									
										
										
										
											2012-07-13 07:15:14 +09:00
										 |  |  | 	int (*cfg_gpio)(void); | 
					
						
							| 
									
										
										
										
											2013-04-11 22:42:03 +02:00
										 |  |  | 	dma_filter_fn filter; | 
					
						
							| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2011-12-23 10:14:31 +09:00
										 |  |  |  * s3c64xx_spi_set_platdata - SPI Controller configure callback by the board | 
					
						
							| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  |  *				initialization code. | 
					
						
							| 
									
										
										
										
											2012-07-13 07:15:14 +09:00
										 |  |  |  * @cfg_gpio: Pointer to gpio setup function. | 
					
						
							| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  |  * @src_clk_nr: Clock the SPI controller is to use to generate SPI clocks. | 
					
						
							|  |  |  |  * @num_cs: Number of elements in the 'cs' array. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Call this from machine init code for each SPI Controller that | 
					
						
							|  |  |  |  * has some chips attached to it. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2012-07-13 07:15:14 +09:00
										 |  |  | extern void s3c64xx_spi0_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, | 
					
						
							|  |  |  | 						int num_cs); | 
					
						
							|  |  |  | extern void s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, | 
					
						
							|  |  |  | 						int num_cs); | 
					
						
							|  |  |  | extern void s3c64xx_spi2_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, | 
					
						
							|  |  |  | 						int num_cs); | 
					
						
							| 
									
										
										
										
											2011-12-23 10:14:36 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* defined by architecture to configure gpio */ | 
					
						
							| 
									
										
										
										
											2012-07-13 07:15:14 +09:00
										 |  |  | extern int s3c64xx_spi0_cfg_gpio(void); | 
					
						
							|  |  |  | extern int s3c64xx_spi1_cfg_gpio(void); | 
					
						
							|  |  |  | extern int s3c64xx_spi2_cfg_gpio(void); | 
					
						
							| 
									
										
										
										
											2011-12-23 10:14:36 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | extern struct s3c64xx_spi_info s3c64xx_spi0_pdata; | 
					
						
							|  |  |  | extern struct s3c64xx_spi_info s3c64xx_spi1_pdata; | 
					
						
							| 
									
										
										
										
											2011-12-23 10:14:45 +09:00
										 |  |  | extern struct s3c64xx_spi_info s3c64xx_spi2_pdata; | 
					
						
							| 
									
										
										
										
											2010-01-18 17:45:52 +09:00
										 |  |  | #endif /* __S3C64XX_PLAT_SPI_H */
 |