Commit 0dd37b1c authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Lee Jones
Browse files

leds: pca955x: Get rid of custom led_init_default_state_get()



LED core provides a helper to parse default state from firmware node.
Use it instead of custom implementation.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarLee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230103131256.33894-9-andriy.shevchenko@linux.intel.com
parent 43ee1e3f
Loading
Loading
Loading
Loading
+6 −20
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ struct pca955x_led {
	struct led_classdev	led_cdev;
	int			led_num;	/* 0 .. 15 potentially */
	u32			type;
	int			default_state;
	enum led_default_state	default_state;
	struct fwnode_handle	*fwnode;
};

@@ -437,7 +437,6 @@ pca955x_get_pdata(struct i2c_client *client, struct pca955x_chipdef *chip)
		return ERR_PTR(-ENOMEM);

	device_for_each_child_node(&client->dev, child) {
		const char *state;
		u32 reg;
		int res;

@@ -448,19 +447,9 @@ pca955x_get_pdata(struct i2c_client *client, struct pca955x_chipdef *chip)
		led = &pdata->leds[reg];
		led->type = PCA955X_TYPE_LED;
		led->fwnode = child;
		fwnode_property_read_u32(child, "type", &led->type);
		led->default_state = led_init_default_state_get(child);

		if (!fwnode_property_read_string(child, "default-state",
						 &state)) {
			if (!strcmp(state, "keep"))
				led->default_state = LEDS_GPIO_DEFSTATE_KEEP;
			else if (!strcmp(state, "on"))
				led->default_state = LEDS_GPIO_DEFSTATE_ON;
			else
				led->default_state = LEDS_GPIO_DEFSTATE_OFF;
		} else {
			led->default_state = LEDS_GPIO_DEFSTATE_OFF;
		}
		fwnode_property_read_u32(child, "type", &led->type);
	}

	pdata->num_leds = chip->bits;
@@ -572,13 +561,11 @@ static int pca955x_probe(struct i2c_client *client)
			led->brightness_set_blocking = pca955x_led_set;
			led->brightness_get = pca955x_led_get;

			if (pdata->leds[i].default_state ==
			    LEDS_GPIO_DEFSTATE_OFF) {
			if (pdata->leds[i].default_state == LEDS_DEFSTATE_OFF) {
				err = pca955x_led_set(led, LED_OFF);
				if (err)
					return err;
			} else if (pdata->leds[i].default_state ==
				   LEDS_GPIO_DEFSTATE_ON) {
			} else if (pdata->leds[i].default_state == LEDS_DEFSTATE_ON) {
				err = pca955x_led_set(led, LED_FULL);
				if (err)
					return err;
@@ -617,8 +604,7 @@ static int pca955x_probe(struct i2c_client *client)
			 * brightness to see if it's using PWM1. If so, PWM1
			 * should not be written below.
			 */
			if (pdata->leds[i].default_state ==
			    LEDS_GPIO_DEFSTATE_KEEP) {
			if (pdata->leds[i].default_state == LEDS_DEFSTATE_KEEP) {
				if (led->brightness != LED_FULL &&
				    led->brightness != LED_OFF &&
				    led->brightness != LED_HALF)