diff options
Diffstat (limited to 'arch/arm/plat-samsung/include/plat/s3c64xx-spi.h')
-rw-r--r-- | arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h index fa95e9a00972..ceba18d23a5a 100644 --- a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h +++ b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | |||
@@ -18,7 +18,6 @@ struct platform_device; | |||
18 | * @fb_delay: Slave specific feedback delay. | 18 | * @fb_delay: Slave specific feedback delay. |
19 | * Refer to FB_CLK_SEL register definition in SPI chapter. | 19 | * Refer to FB_CLK_SEL register definition in SPI chapter. |
20 | * @line: Custom 'identity' of the CS line. | 20 | * @line: Custom 'identity' of the CS line. |
21 | * @set_level: CS line control. | ||
22 | * | 21 | * |
23 | * This is per SPI-Slave Chipselect information. | 22 | * This is per SPI-Slave Chipselect information. |
24 | * Allocate and initialize one in machine init code and make the | 23 | * Allocate and initialize one in machine init code and make the |
@@ -27,57 +26,41 @@ struct platform_device; | |||
27 | struct s3c64xx_spi_csinfo { | 26 | struct s3c64xx_spi_csinfo { |
28 | u8 fb_delay; | 27 | u8 fb_delay; |
29 | unsigned line; | 28 | unsigned line; |
30 | void (*set_level)(unsigned line_id, int lvl); | ||
31 | }; | 29 | }; |
32 | 30 | ||
33 | /** | 31 | /** |
34 | * struct s3c64xx_spi_info - SPI Controller defining structure | 32 | * struct s3c64xx_spi_info - SPI Controller defining structure |
35 | * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. | 33 | * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. |
36 | * @clk_from_cmu: If the SPI clock/prescalar control block is present | ||
37 | * by the platform's clock-management-unit and not in SPI controller. | ||
38 | * @num_cs: Number of CS this controller emulates. | 34 | * @num_cs: Number of CS this controller emulates. |
39 | * @cfg_gpio: Configure pins for this SPI controller. | 35 | * @cfg_gpio: Configure pins for this SPI controller. |
40 | * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6 | ||
41 | * @rx_lvl_offset: Depends on tx fifo_lvl field and bus number | ||
42 | * @high_speed: If the controller supports HIGH_SPEED_EN bit | ||
43 | * @tx_st_done: Depends on tx fifo_lvl field | ||
44 | */ | 36 | */ |
45 | struct s3c64xx_spi_info { | 37 | struct s3c64xx_spi_info { |
46 | int src_clk_nr; | 38 | int src_clk_nr; |
47 | bool clk_from_cmu; | ||
48 | |||
49 | int num_cs; | 39 | int num_cs; |
50 | 40 | int (*cfg_gpio)(void); | |
51 | int (*cfg_gpio)(struct platform_device *pdev); | ||
52 | |||
53 | /* Following two fields are for future compatibility */ | ||
54 | int fifo_lvl_mask; | ||
55 | int rx_lvl_offset; | ||
56 | int high_speed; | ||
57 | int tx_st_done; | ||
58 | }; | 41 | }; |
59 | 42 | ||
60 | /** | 43 | /** |
61 | * s3c64xx_spi_set_platdata - SPI Controller configure callback by the board | 44 | * s3c64xx_spi_set_platdata - SPI Controller configure callback by the board |
62 | * initialization code. | 45 | * initialization code. |
63 | * @pd: SPI platform data to set. | 46 | * @cfg_gpio: Pointer to gpio setup function. |
64 | * @src_clk_nr: Clock the SPI controller is to use to generate SPI clocks. | 47 | * @src_clk_nr: Clock the SPI controller is to use to generate SPI clocks. |
65 | * @num_cs: Number of elements in the 'cs' array. | 48 | * @num_cs: Number of elements in the 'cs' array. |
66 | * | 49 | * |
67 | * Call this from machine init code for each SPI Controller that | 50 | * Call this from machine init code for each SPI Controller that |
68 | * has some chips attached to it. | 51 | * has some chips attached to it. |
69 | */ | 52 | */ |
70 | extern void s3c64xx_spi0_set_platdata(struct s3c64xx_spi_info *pd, | 53 | extern void s3c64xx_spi0_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, |
71 | int src_clk_nr, int num_cs); | 54 | int num_cs); |
72 | extern void s3c64xx_spi1_set_platdata(struct s3c64xx_spi_info *pd, | 55 | extern void s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, |
73 | int src_clk_nr, int num_cs); | 56 | int num_cs); |
74 | extern void s3c64xx_spi2_set_platdata(struct s3c64xx_spi_info *pd, | 57 | extern void s3c64xx_spi2_set_platdata(int (*cfg_gpio)(void), int src_clk_nr, |
75 | int src_clk_nr, int num_cs); | 58 | int num_cs); |
76 | 59 | ||
77 | /* defined by architecture to configure gpio */ | 60 | /* defined by architecture to configure gpio */ |
78 | extern int s3c64xx_spi0_cfg_gpio(struct platform_device *dev); | 61 | extern int s3c64xx_spi0_cfg_gpio(void); |
79 | extern int s3c64xx_spi1_cfg_gpio(struct platform_device *dev); | 62 | extern int s3c64xx_spi1_cfg_gpio(void); |
80 | extern int s3c64xx_spi2_cfg_gpio(struct platform_device *dev); | 63 | extern int s3c64xx_spi2_cfg_gpio(void); |
81 | 64 | ||
82 | extern struct s3c64xx_spi_info s3c64xx_spi0_pdata; | 65 | extern struct s3c64xx_spi_info s3c64xx_spi0_pdata; |
83 | extern struct s3c64xx_spi_info s3c64xx_spi1_pdata; | 66 | extern struct s3c64xx_spi_info s3c64xx_spi1_pdata; |