Extcon (external connector): import Android's switch class and modify.
authorSyed Rafiuddin <srafiuddin@nvidia.com>
Mon, 3 Sep 2012 09:49:18 +0000 (14:49 +0530)
committerVarun Colbert <vcolbert@nvidia.com>
Tue, 11 Sep 2012 19:43:01 +0000 (12:43 -0700)
commitb97a517238deea0f6653e176bbaa0a7e3be2f804
treea9fdf7de082687d857fb72f222f96115427ec8a2
parentaf6f714c7ab04f5d09219f41a1ead1647005de2a
Extcon (external connector): import Android's switch class and modify.

External connector class (extcon) is based on and an extension of
Android kernel's switch class located at linux/drivers/switch/.

This patch provides the before-extension switch class moved to the
location where the extcon will be located (linux/drivers/extcon/) and
updates to handle class properly.

The before-extension class, switch class of Android kernel, commits
imported are:

switch: switch class and GPIO drivers. (splitted)
Author: Mike Lockwood <lockwood@android.com>

switch: Use device_create instead of device_create_drvdata.
Author: Arve Hjøå<arve@android.com>

In this patch, upon the commits of Android kernel, we have added:
- Relocated and renamed for extcon.
- Comments, module name, and author information are updated
- Code clean for successing patches
- Bugfix: enabling write access without write functions
- Class/device/sysfs create/remove handling
- Added comments about uevents
- Format changes for extcon_dev_register() to have a parent dev.

(cherry picked from commit de55d8716ac50a356cea736c29bb7db5ac3d0190)

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

--
Changes from v7
- Compiler error fixed when it is compiled as a module.
- Removed out-of-date Kconfig entry

Changes from v6
- Updated comment/strings
- Revised "Android-compatible" mode.
   * Automatically activated if CONFIG_ANDROID && !CONFIG_ANDROID_SWITCH
   * Creates /sys/class/switch/*, which is a copy of /sys/class/extcon/*

Changes from v5
- Split the patch
- Style fixes
- "Android-compatible" mode is enabled by Kconfig option.

Changes from v2
- Updated name_show
- Sysfs entries are handled by class itself.
- Updated the method to add/remove devices for the class
- Comments on uevent send
- Able to become a module
- Compatible with Android platform

Changes from RFC
- Renamed to extcon (external connector) from multistate switch
- Added a seperated directory (drivers/extcon)
- Added kerneldoc comments
- Removed unused variables from extcon_gpio.c
- Added ABI Documentation.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Change-Id: I9f5c121924ee6d1d42e7a38e03ac75eaed2e5687
Signed-off-by: Syed Rafiuddin <srafiuddin@nvidia.com>
Reviewed-on: http://git-master/r/130608
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Documentation/ABI/testing/sysfs-class-extcon [new file with mode: 0644]
drivers/Kconfig
drivers/Makefile
drivers/extcon/Kconfig [new file with mode: 0644]
drivers/extcon/Makefile [new file with mode: 0644]
drivers/extcon/extcon_class.c [new file with mode: 0644]
include/linux/extcon.h [new file with mode: 0644]