Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 289047
b: refs/heads/master
c: b2c04a3
h: refs/heads/master
i:
  289045: 4e48c04
  289043: 3419fb4
  289039: b58b564
v: v3
  • Loading branch information
Jonathan Cameron authored and Greg Kroah-Hartman committed Feb 9, 2012
1 parent 0455fbb commit 990839a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 15bbb7793ad7f6f106ce09fdfa3956c5aff37cf1
refs/heads/master: b2c04a34aa9a1b82af590b7e7cc965e7125ce9fa
53 changes: 32 additions & 21 deletions trunk/drivers/staging/iio/dds/ad9834.c
Original file line number Diff line number Diff line change
Expand Up @@ -281,36 +281,39 @@ static struct attribute *ad9834_attributes[] = {
NULL,
};

static umode_t ad9834_attr_is_visible(struct kobject *kobj,
struct attribute *attr, int n)
{
struct device *dev = container_of(kobj, struct device, kobj);
struct iio_dev *indio_dev = dev_get_drvdata(dev);
struct ad9834_state *st = iio_priv(indio_dev);

umode_t mode = attr->mode;

if (((st->devid == ID_AD9833) || (st->devid == ID_AD9837)) &&
((attr == &iio_dev_attr_dds0_out1_enable.dev_attr.attr) ||
(attr == &iio_dev_attr_dds0_out1_wavetype.dev_attr.attr) ||
(attr ==
&iio_dev_attr_dds0_out1_wavetype_available.dev_attr.attr) ||
(attr == &iio_dev_attr_dds0_pincontrol_en.dev_attr.attr)))
mode = 0;

return mode;
}
static struct attribute *ad9833_attributes[] = {
&iio_dev_attr_dds0_freq0.dev_attr.attr,
&iio_dev_attr_dds0_freq1.dev_attr.attr,
&iio_const_attr_dds0_freq_scale.dev_attr.attr,
&iio_dev_attr_dds0_phase0.dev_attr.attr,
&iio_dev_attr_dds0_phase1.dev_attr.attr,
&iio_const_attr_dds0_phase_scale.dev_attr.attr,
&iio_dev_attr_dds0_freqsymbol.dev_attr.attr,
&iio_dev_attr_dds0_phasesymbol.dev_attr.attr,
&iio_dev_attr_dds0_out_enable.dev_attr.attr,
&iio_dev_attr_dds0_out0_wavetype.dev_attr.attr,
&iio_dev_attr_dds0_out0_wavetype_available.dev_attr.attr,
NULL,
};

static const struct attribute_group ad9834_attribute_group = {
.attrs = ad9834_attributes,
.is_visible = ad9834_attr_is_visible,
};

static const struct attribute_group ad9833_attribute_group = {
.attrs = ad9833_attributes,
};

static const struct iio_info ad9834_info = {
.attrs = &ad9834_attribute_group,
.driver_module = THIS_MODULE,
};

static const struct iio_info ad9833_info = {
.attrs = &ad9833_attribute_group,
.driver_module = THIS_MODULE,
};

static int __devinit ad9834_probe(struct spi_device *spi)
{
struct ad9834_platform_data *pdata = spi->dev.platform_data;
Expand Down Expand Up @@ -344,7 +347,15 @@ static int __devinit ad9834_probe(struct spi_device *spi)
st->reg = reg;
indio_dev->dev.parent = &spi->dev;
indio_dev->name = spi_get_device_id(spi)->name;
indio_dev->info = &ad9834_info;
switch (st->devid) {
case ID_AD9833:
case ID_AD9837:
indio_dev->info = &ad9833_info;
break;
default:
indio_dev->info = &ad9834_info;
break;
}
indio_dev->modes = INDIO_DIRECT_MODE;

/* Setup default messages */
Expand Down

0 comments on commit 990839a

Please sign in to comment.