Skip to content
  • Przemyslaw Marczak's avatar
    dm: adc: add simple ADC uclass implementation · 5decbf53
    Przemyslaw Marczak authored
    
    
    This commit adds:
    - new uclass id: UCLASS_ADC
    - new uclass driver: drivers/adc/adc-uclass.c
    
    The new uclass's API allows for ADC operation on:
    * single-channel with channel selection by a number
    * multti-channel with channel selection by bit mask
    
    ADC uclass's functions:
    * single-channel:
      - adc_start_channel()        - start channel conversion
      - adc_channel_data()         - get conversion data
      - adc_channel_single_shot()  - start/get conversion data
    * multi-channel:
      - adc_start_channels()       - start selected channels conversion
      - adc_channels_data()        - get conversion data
      - adc_channels_single_shot() - start/get conversion data for channels
                                     selected by bit mask
    * general:
      - adc_stop()      - stop the conversion
      - adc_vdd_value() - positive reference Voltage value with polarity [uV]
      - adc_vss_value() - negative reference Voltage value with polarity [uV]
      - adc_data_mask() - conversion data bit mask
    
    The device tree can provide below constraints/properties:
    - vdd-polarity-negative: if true: Vdd = vdd-microvolts * (-1)
    - vss-polarity-negative: if true: Vss = vss-microvolts * (-1)
    - vdd-supply:            phandle to Vdd regulator's node
    - vss-supply:            phandle to Vss regulator's node
    And optional, checked only if the above corresponding, doesn't exist:
      - vdd-microvolts:      positive reference Voltage [uV]
      - vss-microvolts:      negative reference Voltage [uV]
    
    Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
    Cc: Simon Glass <sjg@chromium.org>
    Signed-off-by: default avatarMinkyu Kang <mk7.kang@samsung.com>
    5decbf53