Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e71c680 authored by Uwe Kleine-König's avatar Uwe Kleine-König
Browse files

phy: tusb1210: make better use of gpiod API



Since 39b2bbe3 (gpio: add flags argument to gpiod_get*() functions)
which appeared in v3.17-rc1, the gpiod_get* functions take an additional
parameter that allows to specify direction and initial value for output.

Furthermore there is devm_gpiod_get_optional which is designed to get
optional gpios.

Simplify driver accordingly.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
parent 3bfe7680
Loading
Loading
Loading
Loading
+12 −18
Original line number Diff line number Diff line
@@ -61,32 +61,26 @@ static struct phy_ops phy_ops = {

static int tusb1210_probe(struct ulpi *ulpi)
{
	struct gpio_desc *gpio;
	struct tusb1210 *tusb;
	u8 val, reg;
	int ret;

	tusb = devm_kzalloc(&ulpi->dev, sizeof(*tusb), GFP_KERNEL);
	if (!tusb)
		return -ENOMEM;

	gpio = devm_gpiod_get(&ulpi->dev, "reset");
	if (!IS_ERR(gpio)) {
		ret = gpiod_direction_output(gpio, 0);
		if (ret)
			return ret;
		gpiod_set_value_cansleep(gpio, 1);
		tusb->gpio_reset = gpio;
	}
	tusb->gpio_reset = devm_gpiod_get_optional(&ulpi->dev, "reset",
						   GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_reset))
		return PTR_ERR(tusb->gpio_reset);

	gpio = devm_gpiod_get(&ulpi->dev, "cs");
	if (!IS_ERR(gpio)) {
		ret = gpiod_direction_output(gpio, 0);
		if (ret)
			return ret;
		gpiod_set_value_cansleep(gpio, 1);
		tusb->gpio_cs = gpio;
	}
	gpiod_set_value_cansleep(tusb->gpio_reset, 1);

	tusb->gpio_cs = devm_gpiod_get_optional(&ulpi->dev, "cs",
						GPIOD_OUT_LOW);
	if (IS_ERR(tusb->gpio_cs))
		return PTR_ERR(tusb->gpio_cs);

	gpiod_set_value_cansleep(tusb->gpio_cs, 1);

	/*
	 * VENDOR_SPECIFIC2 register in TUSB1210 can be used for configuring eye