summaryrefslogtreecommitdiff
path: root/cleopatre/devkit/plcdrv
diff options
context:
space:
mode:
authorYacine Belkadi2012-04-13 10:47:51 +0200
committerYacine Belkadi2012-06-13 16:29:04 +0200
commita33f9c8c24aaddb1aae6cd2eb88f1ceee6340122 (patch)
tree91a91aaef850b397d1b523acfe9141a38977f4e1 /cleopatre/devkit/plcdrv
parentb162ffc345d830aa48b9c2753b8ce9429672aa78 (diff)
cleo/devkit/plcdrv: use the new AFE functions, refs #3082
One of the main additions of the new API is the afe_get() function that enables plcdrv to detect the case when no AFE is available.
Diffstat (limited to 'cleopatre/devkit/plcdrv')
-rw-r--r--cleopatre/devkit/plcdrv/src/plcdrv.c40
1 files changed, 24 insertions, 16 deletions
diff --git a/cleopatre/devkit/plcdrv/src/plcdrv.c b/cleopatre/devkit/plcdrv/src/plcdrv.c
index 92de9f475b..513873b2c8 100644
--- a/cleopatre/devkit/plcdrv/src/plcdrv.c
+++ b/cleopatre/devkit/plcdrv/src/plcdrv.c
@@ -101,26 +101,34 @@ static struct net_device *plcdrv_device;
static int
plcdrv_config_afe (const struct net_device *dev)
{
+ struct afe *afe;
int ret;
+ afe = afe_get ();
+ if (afe == NULL)
+ {
+ printk (KERN_ERR "%s: failed to get the AFE.\n", dev->name);
+ return -EFAULT;
+ }
+
#ifdef CONFIG_MACH_ARIZONA
- ret = afe_write_reg (0x03, 0x04)
- || afe_write_reg (0x04, 0x35)
- || afe_write_reg (0x06, 0x44)
- || afe_write_reg (0x0A, 0x7F)
- || afe_write_reg (0x0C, 0x43)
- || afe_write_reg (0x0D, 0x01)
- || afe_write_reg (0x0E, 0x80);
+ ret = afe_write (afe, 0x03, 0x04)
+ || afe_write (afe, 0x04, 0x35)
+ || afe_write (afe, 0x06, 0x44)
+ || afe_write (afe, 0x0A, 0x7F)
+ || afe_write (afe, 0x0C, 0x43)
+ || afe_write (afe, 0x0D, 0x01)
+ || afe_write (afe, 0x0E, 0x80);
#else
- ret = afe_write_reg (0x04, 0x16)
- || afe_write_reg (0x05, 0x80)
- || afe_write_reg (0x07, 0x20)
- || afe_write_reg (0x0A, 0x7F) // TODO: check diff values 9865 / 9867
- || afe_write_reg (0x0B, 0x20)
- || afe_write_reg (0x0C, 0x51) // TODO: check diff values 9865 / 9867
- || afe_write_reg (0x0D, 0x01)
- || afe_write_reg (0x0E, 0x08)
- || afe_write_reg (0x03, 0xF8);
+ ret = afe_write (afe, 0x04, 0x16)
+ || afe_write (afe, 0x05, 0x80)
+ || afe_write (afe, 0x07, 0x20)
+ || afe_write (afe, 0x0A, 0x7F) //TODO: check diff values 9865 / 9867
+ || afe_write (afe, 0x0B, 0x20)
+ || afe_write (afe, 0x0C, 0x51) //TODO: check diff values 9865 / 9867
+ || afe_write (afe, 0x0D, 0x01)
+ || afe_write (afe, 0x0E, 0x08)
+ || afe_write (afe, 0x03, 0xF8);
#endif
if (ret)