1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * dds.h - sysfs attributes associated with DDS devices
4  *
5  * Copyright (c) 2010 Analog Devices Inc.
6  */
7 #ifndef IIO_DDS_H_
8 #define IIO_DDS_H_
9 
10 /**
11  * /sys/bus/iio/devices/.../out_altvoltageX_frequencyY
12  */
13 
14 #define IIO_DEV_ATTR_FREQ(_channel, _num, _mode, _show, _store, _addr)	\
15 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_frequency##_num,	\
16 			_mode, _show, _store, _addr)
17 
18 /**
19  * /sys/bus/iio/devices/.../out_altvoltageX_frequencyY_scale
20  */
21 
22 #define IIO_CONST_ATTR_FREQ_SCALE(_channel, _string)			\
23 	IIO_CONST_ATTR(out_altvoltage##_channel##_frequency_scale, _string)
24 
25 /**
26  * /sys/bus/iio/devices/.../out_altvoltageX_frequencysymbol
27  */
28 
29 #define IIO_DEV_ATTR_FREQSYMBOL(_channel, _mode, _show, _store, _addr)	\
30 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_frequencysymbol,	\
31 			_mode, _show, _store, _addr)
32 
33 /**
34  * /sys/bus/iio/devices/.../out_altvoltageX_phaseY
35  */
36 
37 #define IIO_DEV_ATTR_PHASE(_channel, _num, _mode, _show, _store, _addr)	\
38 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_phase##_num,		\
39 			_mode, _show, _store, _addr)
40 
41 /**
42  * /sys/bus/iio/devices/.../out_altvoltageX_phaseY_scale
43  */
44 
45 #define IIO_CONST_ATTR_PHASE_SCALE(_channel, _string)			\
46 	IIO_CONST_ATTR(out_altvoltage##_channel##_phase_scale, _string)
47 
48 /**
49  * /sys/bus/iio/devices/.../out_altvoltageX_phasesymbol
50  */
51 
52 #define IIO_DEV_ATTR_PHASESYMBOL(_channel, _mode, _show, _store, _addr)	\
53 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_phasesymbol,		\
54 			_mode, _show, _store, _addr)
55 
56 /**
57  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_en
58  */
59 
60 #define IIO_DEV_ATTR_PINCONTROL_EN(_channel, _mode, _show, _store, _addr)\
61 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_en,	\
62 			_mode, _show, _store, _addr)
63 
64 /**
65  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_frequency_en
66  */
67 
68 #define IIO_DEV_ATTR_PINCONTROL_FREQ_EN(_channel, _mode, _show, _store, _addr)\
69 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_frequency_en,\
70 			_mode, _show, _store, _addr)
71 
72 /**
73  * /sys/bus/iio/devices/.../out_altvoltageX_pincontrol_phase_en
74  */
75 
76 #define IIO_DEV_ATTR_PINCONTROL_PHASE_EN(_channel, _mode, _show, _store, _addr)\
77 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_pincontrol_phase_en,	\
78 			_mode, _show, _store, _addr)
79 
80 /**
81  * /sys/bus/iio/devices/.../out_altvoltageX_out_enable
82  */
83 
84 #define IIO_DEV_ATTR_OUT_ENABLE(_channel, _mode, _show, _store, _addr)	\
85 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out_enable,		\
86 			_mode, _show, _store, _addr)
87 
88 /**
89  * /sys/bus/iio/devices/.../out_altvoltageX_outY_enable
90  */
91 
92 #define IIO_DEV_ATTR_OUTY_ENABLE(_channel, _output,			\
93 			_mode, _show, _store, _addr)			\
94 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out##_output##_enable,\
95 			_mode, _show, _store, _addr)
96 
97 /**
98  * /sys/bus/iio/devices/.../out_altvoltageX_outY_wavetype
99  */
100 
101 #define IIO_DEV_ATTR_OUT_WAVETYPE(_channel, _output, _store, _addr)	\
102 	IIO_DEVICE_ATTR(out_altvoltage##_channel##_out##_output##_wavetype,\
103 			0200, NULL, _store, _addr)
104 
105 /**
106  * /sys/bus/iio/devices/.../out_altvoltageX_outY_wavetype_available
107  */
108 
109 #define IIO_CONST_ATTR_OUT_WAVETYPES_AVAILABLE(_channel, _output, _modes)\
110 	IIO_CONST_ATTR(							\
111 	out_altvoltage##_channel##_out##_output##_wavetype_available, _modes)
112 
113 #endif /* IIO_DDS_H_ */
114