Skip to content
  • William Breathitt Gray's avatar
    counter: Introduce the Generic Counter interface · 0040a390
    William Breathitt Gray authored
    
    
    This patch introduces the Generic Counter interface for supporting
    counter devices.
    
    In the context of the Generic Counter interface, a counter is defined as
    a device that reports one or more "counts" based on the state changes of
    one or more "signals" as evaluated by a defined "count function."
    
    Driver callbacks should be provided to communicate with the device: to
    read and write various Signals and Counts, and to set and get the
    "action mode" and "count function" for various Synapses and Counts
    respectively.
    
    To support a counter device, a driver must first allocate the available
    Counter Signals via counter_signal structures. These Signals should
    be stored as an array and set to the signals array member of an
    allocated counter_device structure before the Counter is registered to
    the system.
    
    Counter Counts may be allocated via counter_count structures, and
    respective Counter Signal associations (Synapses) made via
    counter_synapse structures. Associated counter_synapse structures are
    stored as an array and set to the the synapses array member of the
    respective counter_count structure. These counter_count structures are
    set to the counts array member of an allocated counter_device structure
    before the Counter is registered to the system.
    
    A counter device is registered to the system by passing the respective
    initialized counter_device structure to the counter_register function;
    similarly, the counter_unregister function unregisters the respective
    Counter. The devm_counter_register and devm_counter_unregister functions
    serve as device memory-managed versions of the counter_register and
    counter_unregister functions respectively.
    
    Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: default avatarWilliam Breathitt Gray <vilhelm.gray@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0040a390