leds: ns2: Absorb platform data

Nothing in the kernel includes the external header
<linux/platform_data/leds-kirkwood-ns2.h> so just push the
contents into the ns2 leds driver. If someone wants to use
platform data or board files to describe this device they
should be able to do so using GPIO machine descriptors but
in any case device tree should be the way forward for these
systems in all cases I can think of, and the driver already
supports that.

Cc: Simon Guinot <simon.guinot@sequanux.org>
Cc: Vincent Donnefort <vdonnefort@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Simon Guinot <simon.guinot@sequanux.org>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
This commit is contained in:
Linus Walleij 2020-01-07 15:10:28 +01:00 committed by Pavel Machek
parent 11a48a5a18
commit c7896490dd
2 changed files with 27 additions and 41 deletions

View File

@ -12,14 +12,38 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/gpio.h>
#include <linux/gpio/consumer.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/platform_data/leds-kirkwood-ns2.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include "leds.h"
enum ns2_led_modes {
NS_V2_LED_OFF,
NS_V2_LED_ON,
NS_V2_LED_SATA,
};
struct ns2_led_modval {
enum ns2_led_modes mode;
int cmd_level;
int slow_level;
};
struct ns2_led {
const char *name;
const char *default_trigger;
unsigned cmd;
unsigned slow;
int num_modes;
struct ns2_led_modval *modval;
};
struct ns2_led_platform_data {
int num_leds;
struct ns2_led *leds;
};
/*
* The Network Space v2 dual-GPIO LED is wired to a CPLD. Three different LED
* modes are available: off, on and SATA activity blinking. The LED modes are

View File

@ -1,38 +0,0 @@
/*
* Platform data structure for Network Space v2 LED driver
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#ifndef __LEDS_KIRKWOOD_NS2_H
#define __LEDS_KIRKWOOD_NS2_H
enum ns2_led_modes {
NS_V2_LED_OFF,
NS_V2_LED_ON,
NS_V2_LED_SATA,
};
struct ns2_led_modval {
enum ns2_led_modes mode;
int cmd_level;
int slow_level;
};
struct ns2_led {
const char *name;
const char *default_trigger;
unsigned cmd;
unsigned slow;
int num_modes;
struct ns2_led_modval *modval;
};
struct ns2_led_platform_data {
int num_leds;
struct ns2_led *leds;
};
#endif /* __LEDS_KIRKWOOD_NS2_H */