spi-s3c64xx.h (1548B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3/* 4 * Copyright (C) 2009 Samsung Electronics Ltd. 5 * Jaswinder Singh <jassi.brar@samsung.com> 6 */ 7 8#ifndef __SPI_S3C64XX_H 9#define __SPI_S3C64XX_H 10 11#include <linux/dmaengine.h> 12 13struct platform_device; 14 15/** 16 * struct s3c64xx_spi_csinfo - ChipSelect description 17 * @fb_delay: Slave specific feedback delay. 18 * Refer to FB_CLK_SEL register definition in SPI chapter. 19 * 20 * This is per SPI-Slave Chipselect information. 21 * Allocate and initialize one in machine init code and make the 22 * spi_board_info.controller_data point to it. 23 */ 24struct s3c64xx_spi_csinfo { 25 u8 fb_delay; 26}; 27 28/** 29 * struct s3c64xx_spi_info - SPI Controller defining structure 30 * @src_clk_nr: Clock source index for the CLK_CFG[SPI_CLKSEL] field. 31 * @num_cs: Number of CS this controller emulates. 32 * @cfg_gpio: Configure pins for this SPI controller. 33 */ 34struct s3c64xx_spi_info { 35 int src_clk_nr; 36 int num_cs; 37 bool no_cs; 38 int (*cfg_gpio)(void); 39}; 40 41/** 42 * s3c64xx_spi_set_platdata - SPI Controller configure callback by the board 43 * initialization code. 44 * @src_clk_nr: Clock the SPI controller is to use to generate SPI clocks. 45 * @num_cs: Number of elements in the 'cs' array. 46 * 47 * Call this from machine init code for each SPI Controller that 48 * has some chips attached to it. 49 */ 50extern void s3c64xx_spi0_set_platdata(int src_clk_nr, int num_cs); 51 52/* defined by architecture to configure gpio */ 53extern int s3c64xx_spi0_cfg_gpio(void); 54 55extern struct s3c64xx_spi_info s3c64xx_spi0_pdata; 56#endif /*__SPI_S3C64XX_H */