Lines Matching +full:device +full:- +full:width
1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (C) 2015 - 2016 Xilinx, Inc.
13 #include <asm-generic/gpio.h>
30 u32 width; member
35 u32 width; /* I2C mux width - number of busses */ member
43 .width = 4,
48 .width = 8,
53 .width = 8,
58 .width = 4,
68 return dm_i2c_write(mux, priv->addr, &byte, 1); in pca954x_deselect()
78 if (chip->muxtype == pca954x_ismux) in pca954x_select()
79 byte = channel | chip->enable; in pca954x_select()
83 return dm_i2c_write(mux, priv->addr, &byte, 1); in pca954x_select()
104 priv->addr = dev_read_u32_default(dev, "reg", 0); in pca954x_ofdata_to_platdata()
105 if (!priv->addr) { in pca954x_ofdata_to_platdata()
107 return -ENODEV; in pca954x_ofdata_to_platdata()
109 priv->width = chip->width; in pca954x_ofdata_to_platdata()
111 if (!priv->width) { in pca954x_ofdata_to_platdata()
112 debug("No I2C MUX width specified\n"); in pca954x_ofdata_to_platdata()
113 return -EINVAL; in pca954x_ofdata_to_platdata()
116 debug("Device %s at 0x%x with width %d\n", in pca954x_ofdata_to_platdata()
117 dev->name, priv->addr, priv->width); in pca954x_ofdata_to_platdata()
128 err = gpio_request_by_name(dev, "reset-gpios", 0, in pca954x_probe()
129 &priv->gpio_mux_reset, GPIOD_IS_OUT); in pca954x_probe()
132 if (err && (err != -ENOENT)) in pca954x_probe()
136 if (dm_gpio_is_valid(&priv->gpio_mux_reset)) in pca954x_probe()
137 dm_gpio_set_value(&priv->gpio_mux_reset, 0); in pca954x_probe()
148 if (dm_gpio_is_valid(&priv->gpio_mux_reset)) in pca954x_remove()
149 dm_gpio_free(dev, &priv->gpio_mux_reset); in pca954x_remove()