kernel: adm6996: add support for ADM6996L and GPIO interface

This patch makes it possible to use adm6996.c on first generation 
BCM47XX devices with ADM switches.
The GPIO bit banging protocol implementation was copied from the old 
switch driver and adapted to this driver and changed to the mainline 
kernel GPIO interface.
The ADM6996L is different from the ADM6996M which is supported, for 
both specs are available in the Internet.

This was tested on a WRT54GS version 1.0, thank you Dirk Neukirchen for 
the device.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38698 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
Hauke Mehrtens
2013-11-09 19:27:27 +00:00
parent 966c693361
commit a7735a2d91
3 changed files with 498 additions and 128 deletions

View File

@@ -0,0 +1,30 @@
/*
* ADM6996 GPIO platform data
*
* Copyright (C) 2013 Hauke Mehrtens <hauke@hauke-m.de>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License v2 as published by the
* Free Software Foundation
*/
#ifndef __PLATFORM_ADM6996_GPIO_H
#define __PLATFORM_ADM6996_GPIO_H
#include <linux/kernel.h>
enum adm6996_model {
ADM6996FC = 1,
ADM6996M = 2,
ADM6996L = 3,
};
struct adm6996_gpio_platform_data {
u8 eecs;
u8 eesk;
u8 eedi;
u8 eerc;
enum adm6996_model model;
};
#endif