Hi, On 27 March 2017 at 08:38, <techping.c...@gmail.com> wrote: > From: Ziping Chen <techping.c...@gmail.com> > > Sometimes we need to read back the status of a LED. > > Add a led_get_status function for DM LED support, and add a get_status > function for the driver to implement this function. > > Signed-off-by: Ziping Chen <techping.c...@gmail.com> > --- > drivers/led/led-uclass.c | 10 ++++++++++ > include/led.h | 15 +++++++++++++++ > 2 files changed, 25 insertions(+)
I'm very sorry to say I just duplicated some of your work in my attempt at cleaning up board_f :-( Anyway could you please look at my patches which I think go a little further than yours in some areas? > > diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c > index 784ac87..304b92a 100644 > --- a/drivers/led/led-uclass.c > +++ b/drivers/led/led-uclass.c > @@ -42,6 +42,16 @@ int led_set_on(struct udevice *dev, int on) > return ops->set_on(dev, on); > } > > +int led_get_status(struct udevice *dev) > +{ > + struct led_ops *ops = led_get_ops(dev); > + > + if (!ops->get_status) > + return -ENOSYS; > + > + return ops->get_status(dev); > +} > + > UCLASS_DRIVER(led) = { > .id = UCLASS_LED, > .name = "led", > diff --git a/include/led.h b/include/led.h > index b929d0c..cd6fe98 100644 > --- a/include/led.h > +++ b/include/led.h > @@ -26,6 +26,13 @@ struct led_ops { > * @return 0 if OK, -ve on error > */ > int (*set_on)(struct udevice *dev, int on); > + /** > + * led_get_status() - get the state of an LED > + * > + * @dev: LED device to query > + * @return 0 if LED off, 1 if LED on, -ve on error > + */ > + int (*get_status)(struct udevice *dev); > }; > > #define led_get_ops(dev) ((struct led_ops *)(dev)->driver->ops) > @@ -48,4 +55,12 @@ int led_get_by_label(const char *label, struct udevice > **devp); > */ > int led_set_on(struct udevice *dev, int on); > > +/** > + * led_get_status() - get the state of an LED > + * > + * @dev: LED device to query > + * @return 0 if LED off, 1 if LED on, -ve on error > + */ > +int led_get_status(struct udevice *dev); > + > #endif > -- > 2.7.4 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot