• MyungJoo Ham's avatar
    Extcon: support multiple states at a device. · 806d9dd7
    MyungJoo Ham authored
    One switch device (e.g., MUIC(MAX8997, MAX77686, ...), and some 30-pin
    devices) may have multiple cables attached. For example, one
    30-pin port may inhabit a USB cable, an HDMI cable, and a mic.
    Thus, one switch device requires multiple state bits each representing
    a type of cable.
    
    For such purpose, we use the 32bit state variable; thus, up to 32
    different type of cables may be defined for a switch device. The list of
    possible cables is defined by the array of cable names in the switch_dev
    struct given to the class.
    Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    
    --
    Changes from V7
    - Bugfixed in _call_per_cable() (incorrect nb) (Chanwoo Choi)
    - Compiler error in header for !CONFIG_EXTCON (Chanwoo Choi)
    
    Changes from V5
    - Sysfs style reformed: subdirectory per cable.
    - Updated standard cable names
    - Removed unnecessary printf
    - Bugfixes after testing
    
    Changes from V4
    - Bugfixes after more testing at Exynos4412 boards with userspace
      processses.
    
    Changes from V3
    - Bugfixes after more testing at Exynos4412 boards.
    
    Changes from V2
    - State can be stored by user
    - Documentation updated
    
    Changes from RFC
    - Switch is renamed to extcon
    - Added kerneldoc comments
    - Added APIs to support "standard" cable names
    - Added helper APIs to support notifier block registration with cable
      name.
    - Regrouped function list in the header file.
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    806d9dd7
extcon_class.c 19.6 KB