1*5917112cSSimon Glass /* 2*5917112cSSimon Glass * Copyright (c) 2015 Google, Inc 3*5917112cSSimon Glass * Written by Simon Glass <sjg@chromium.org> 4*5917112cSSimon Glass * 5*5917112cSSimon Glass * SPDX-License-Identifier: GPL-2.0+ 6*5917112cSSimon Glass */ 7*5917112cSSimon Glass 8*5917112cSSimon Glass #ifndef __LED_H 9*5917112cSSimon Glass #define __LED_H 10*5917112cSSimon Glass 11*5917112cSSimon Glass /** 12*5917112cSSimon Glass * struct led_uclass_plat - Platform data the uclass stores about each device 13*5917112cSSimon Glass * 14*5917112cSSimon Glass * @label: LED label 15*5917112cSSimon Glass */ 16*5917112cSSimon Glass struct led_uclass_plat { 17*5917112cSSimon Glass const char *label; 18*5917112cSSimon Glass }; 19*5917112cSSimon Glass 20*5917112cSSimon Glass struct led_ops { 21*5917112cSSimon Glass /** 22*5917112cSSimon Glass * set_on() - set the state of an LED 23*5917112cSSimon Glass * 24*5917112cSSimon Glass * @dev: LED device to change 25*5917112cSSimon Glass * @on: 1 to turn the LED on, 0 to turn it off 26*5917112cSSimon Glass * @return 0 if OK, -ve on error 27*5917112cSSimon Glass */ 28*5917112cSSimon Glass int (*set_on)(struct udevice *dev, int on); 29*5917112cSSimon Glass }; 30*5917112cSSimon Glass 31*5917112cSSimon Glass #define led_get_ops(dev) ((struct led_ops *)(dev)->driver->ops) 32*5917112cSSimon Glass 33*5917112cSSimon Glass /** 34*5917112cSSimon Glass * led_get_by_label() - Find an LED device by label 35*5917112cSSimon Glass * 36*5917112cSSimon Glass * @label: LED label to look up 37*5917112cSSimon Glass * @devp: Returns the associated device, if found 38*5917112cSSimon Glass * @return 0 if found, -ve on error 39*5917112cSSimon Glass */ 40*5917112cSSimon Glass int led_get_by_label(const char *label, struct udevice **devp); 41*5917112cSSimon Glass 42*5917112cSSimon Glass /** 43*5917112cSSimon Glass * led_set_on() - set the state of an LED 44*5917112cSSimon Glass * 45*5917112cSSimon Glass * @dev: LED device to change 46*5917112cSSimon Glass * @on: 1 to turn the LED on, 0 to turn it off 47*5917112cSSimon Glass * @return 0 if OK, -ve on error 48*5917112cSSimon Glass */ 49*5917112cSSimon Glass int led_set_on(struct udevice *dev, int on); 50*5917112cSSimon Glass 51*5917112cSSimon Glass #endif 52