Skip to content
  • Vasant Hegde's avatar
    leds/powernv: Add driver for PowerNV platform · 84ad6e5c
    Vasant Hegde authored
    
    
    This patch implements LED driver for PowerNV platform using the existing
    generic LED class framework.
    
    PowerNV platform has below type of LEDs:
      - System attention
          Indicates there is a problem with the system that needs attention.
      - Identify
          Helps the user locate/identify a particular FRU or resource in the
          system.
      - Fault
          Indicates there is a problem with the FRU or resource at the
          location with which the indicator is associated.
    
    We register classdev structures for all individual LEDs detected on the
    system through LED specific device tree nodes. Device tree nodes specify
    what all kind of LEDs present on the same location code. It registers
    LED classdev structure for each of them.
    
    All the system LEDs can be found in the same regular path /sys/class/leds/.
    We don't use LED colors. We use LED node and led-types property to form
    LED classdev. Our LEDs have names in this format.
    
            <location_code>:<attention|identify|fault>
    
    Any positive brightness value would turn on the LED and a zero value would
    turn off the LED. The driver will return LED_FULL (255) for any turned on
    LED and LED_OFF (0) for any turned off LED.
    
    The platform level implementation of LED get and set state has been
    achieved through OPAL calls. These calls are made available for the
    driver by exporting from architecture specific codes.
    
    Signed-off-by: default avatarVasant Hegde <hegdevasant@linux.vnet.ibm.com>
    Signed-off-by: default avatarAnshuman Khandual <khandual@linux.vnet.ibm.com>
    Acked-by: default avatarStewart Smith <stewart@linux.vnet.ibm.com>
    Tested-by: default avatarStewart Smith <stewart@linux.vnet.ibm.com>
    Acked-by: default avatarJacek Anaszewski <j.anaszewski@samsung.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    84ad6e5c