xref: /OK3568_Linux_fs/kernel/include/linux/serial_max3100.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  *  Copyright (C) 2007 Christian Pellegrin
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _LINUX_SERIAL_MAX3100_H
9*4882a593Smuzhiyun #define _LINUX_SERIAL_MAX3100_H 1
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun /**
13*4882a593Smuzhiyun  * struct plat_max3100 - MAX3100 SPI UART platform data
14*4882a593Smuzhiyun  * @loopback:            force MAX3100 in loopback
15*4882a593Smuzhiyun  * @crystal:             1 for 3.6864 Mhz, 0 for 1.8432
16*4882a593Smuzhiyun  * @max3100_hw_suspend:  MAX3100 has a shutdown pin. This is a hook
17*4882a593Smuzhiyun  *                       called on suspend and resume to activate it.
18*4882a593Smuzhiyun  * @poll_time:           poll time for CTS signal in ms, 0 disables (so no hw
19*4882a593Smuzhiyun  *                       flow ctrl is possible but you have less CPU usage)
20*4882a593Smuzhiyun  *
21*4882a593Smuzhiyun  * You should use this structure in your machine description to specify
22*4882a593Smuzhiyun  * how the MAX3100 is connected. Example:
23*4882a593Smuzhiyun  *
24*4882a593Smuzhiyun  * static struct plat_max3100 max3100_plat_data = {
25*4882a593Smuzhiyun  *  .loopback = 0,
26*4882a593Smuzhiyun  *  .crystal = 0,
27*4882a593Smuzhiyun  *  .poll_time = 100,
28*4882a593Smuzhiyun  * };
29*4882a593Smuzhiyun  *
30*4882a593Smuzhiyun  * static struct spi_board_info spi_board_info[] = {
31*4882a593Smuzhiyun  * {
32*4882a593Smuzhiyun  *  .modalias	= "max3100",
33*4882a593Smuzhiyun  *  .platform_data	= &max3100_plat_data,
34*4882a593Smuzhiyun  *  .irq		= IRQ_EINT12,
35*4882a593Smuzhiyun  *  .max_speed_hz	= 5*1000*1000,
36*4882a593Smuzhiyun  *  .chip_select	= 0,
37*4882a593Smuzhiyun  * },
38*4882a593Smuzhiyun  * };
39*4882a593Smuzhiyun  *
40*4882a593Smuzhiyun  **/
41*4882a593Smuzhiyun struct plat_max3100 {
42*4882a593Smuzhiyun 	int loopback;
43*4882a593Smuzhiyun 	int crystal;
44*4882a593Smuzhiyun 	void (*max3100_hw_suspend) (int suspend);
45*4882a593Smuzhiyun 	int poll_time;
46*4882a593Smuzhiyun };
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun #endif
49