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