Home
last modified time | relevance | path

Searched full:mux (Results 1 – 25 of 1733) sorted by relevance

12345678910>>...70

/Linux-v5.10/Documentation/devicetree/bindings/mux/
Dmux-controller.txt4 A multiplexer (or mux) controller will have one, or several, consumer devices
5 that uses the mux controller. Thus, a mux controller can possibly control
7 multiplexer needed by each consumer, but a single mux controller can of course
10 A mux controller provides a number of states to its consumers, and the state
18 Mux controller consumers should specify a list of mux controllers that they
19 want to use with a property containing a 'mux-ctrl-list':
21 mux-ctrl-list ::= <single-mux-ctrl> [mux-ctrl-list]
22 single-mux-ctrl ::= <mux-ctrl-phandle> [mux-ctrl-specifier]
23 mux-ctrl-phandle : phandle to mux controller node
24 mux-ctrl-specifier : array of #mux-control-cells specifying the
[all …]
Dreg-mux.txt8 "reg-mux" : if parent device of mux controller is not syscon device
9 "mmio-mux" : if parent device of mux controller is syscon device
10 - #mux-control-cells : <1>
11 - mux-reg-masks : an array of register offset and pre-shifted bitfield mask
12 pairs, each describing a single mux control.
13 * Standard mux-controller bindings as decribed in mux-controller.txt
21 pair in the mux-reg-masks array.
24 The parent device of mux controller is not a syscon device.
32 mux: mux-controller {
33 compatible = "reg-mux";
[all …]
Dadi,adg792a.txt5 - #mux-control-cells : <0> if parallel (the three muxes are bound together
6 with a single mux controller controlling all three muxes), or <1> if
7 not (one mux controller for each mux).
8 * Standard mux-controller bindings as described in mux-controller.txt
18 - idle-state : if present, array of states that the mux controllers will have
27 * Three independent mux controllers (of which one is used).
28 * Mux 0 is disconnected when idle, mux 1 idles in the previously
29 * selected state and mux 2 idles with signal B.
32 mux: mux-controller@50 {
35 #mux-control-cells = <1>;
[all …]
/Linux-v5.10/drivers/clk/mediatek/
Dclk-mux.c13 #include "clk-mux.h"
22 struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); in mtk_clk_mux_enable() local
23 u32 mask = BIT(mux->data->gate_shift); in mtk_clk_mux_enable()
25 return regmap_update_bits(mux->regmap, mux->data->mux_ofs, in mtk_clk_mux_enable()
31 struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); in mtk_clk_mux_disable() local
32 u32 mask = BIT(mux->data->gate_shift); in mtk_clk_mux_disable()
34 regmap_update_bits(mux->regmap, mux->data->mux_ofs, mask, mask); in mtk_clk_mux_disable()
39 struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); in mtk_clk_mux_enable_setclr() local
41 return regmap_write(mux->regmap, mux->data->clr_ofs, in mtk_clk_mux_enable_setclr()
42 BIT(mux->data->gate_shift)); in mtk_clk_mux_enable_setclr()
[all …]
Dclk-cpumux.c21 struct mtk_clk_cpumux *mux = to_mtk_clk_cpumux(hw); in clk_cpumux_get_parent() local
24 regmap_read(mux->regmap, mux->reg, &val); in clk_cpumux_get_parent()
26 val >>= mux->shift; in clk_cpumux_get_parent()
27 val &= mux->mask; in clk_cpumux_get_parent()
34 struct mtk_clk_cpumux *mux = to_mtk_clk_cpumux(hw); in clk_cpumux_set_parent() local
37 val = index << mux->shift; in clk_cpumux_set_parent()
38 mask = mux->mask << mux->shift; in clk_cpumux_set_parent()
40 return regmap_update_bits(mux->regmap, mux->reg, mask, val); in clk_cpumux_set_parent()
49 mtk_clk_register_cpumux(const struct mtk_composite *mux, in mtk_clk_register_cpumux() argument
60 init.name = mux->name; in mtk_clk_register_cpumux()
[all …]
/Linux-v5.10/drivers/i2c/muxes/
Di2c-mux-reg.c10 #include <linux/i2c-mux.h>
15 #include <linux/platform_data/i2c-mux-reg.h>
23 static int i2c_mux_reg_set(const struct regmux *mux, unsigned int chan_id) in i2c_mux_reg_set() argument
25 if (!mux->data.reg) in i2c_mux_reg_set()
34 switch (mux->data.reg_size) { in i2c_mux_reg_set()
36 if (mux->data.little_endian) in i2c_mux_reg_set()
37 iowrite32(chan_id, mux->data.reg); in i2c_mux_reg_set()
39 iowrite32be(chan_id, mux->data.reg); in i2c_mux_reg_set()
40 if (!mux->data.write_only) in i2c_mux_reg_set()
41 ioread32(mux->data.reg); in i2c_mux_reg_set()
[all …]
Di2c-mux-gpio.c9 #include <linux/i2c-mux.h>
10 #include <linux/platform_data/i2c-mux-gpio.h>
25 static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val) in i2c_mux_gpio_set() argument
31 gpiod_set_array_value_cansleep(mux->ngpios, mux->gpios, NULL, values); in i2c_mux_gpio_set()
36 struct gpiomux *mux = i2c_mux_priv(muxc); in i2c_mux_gpio_select() local
38 i2c_mux_gpio_set(mux, chan); in i2c_mux_gpio_select()
45 struct gpiomux *mux = i2c_mux_priv(muxc); in i2c_mux_gpio_deselect() local
47 i2c_mux_gpio_set(mux, mux->data.idle); in i2c_mux_gpio_deselect()
53 static int i2c_mux_gpio_probe_dt(struct gpiomux *mux, in i2c_mux_gpio_probe_dt() argument
75 mux->data.parent = i2c_adapter_id(adapter); in i2c_mux_gpio_probe_dt()
[all …]
Di2c-mux-gpmux.c11 #include <linux/i2c-mux.h>
13 #include <linux/mux/consumer.h>
17 struct mux { struct
25 struct mux *mux = i2c_mux_priv(muxc); in i2c_mux_select() argument
28 ret = mux_control_select(mux->control, chan); in i2c_mux_select()
29 mux->do_not_deselect = ret < 0; in i2c_mux_select()
36 struct mux *mux = i2c_mux_priv(muxc); in i2c_mux_deselect() local
38 if (mux->do_not_deselect) in i2c_mux_deselect()
41 return mux_control_deselect(mux->control); in i2c_mux_deselect()
64 { .compatible = "i2c-mux", },
[all …]
/Linux-v5.10/drivers/clk/ti/
Dmux.c31 struct clk_omap_mux *mux = to_clk_omap_mux(hw); in ti_clk_mux_get_parent() local
36 * FIXME need a mux-specific flag to determine if val is bitwise or in ti_clk_mux_get_parent()
42 val = ti_clk_ll_ops->clk_readl(&mux->reg) >> mux->shift; in ti_clk_mux_get_parent()
43 val &= mux->mask; in ti_clk_mux_get_parent()
45 if (mux->table) { in ti_clk_mux_get_parent()
49 if (mux->table[i] == val) in ti_clk_mux_get_parent()
54 if (val && (mux->flags & CLK_MUX_INDEX_BIT)) in ti_clk_mux_get_parent()
57 if (val && (mux->flags & CLK_MUX_INDEX_ONE)) in ti_clk_mux_get_parent()
68 struct clk_omap_mux *mux = to_clk_omap_mux(hw); in ti_clk_mux_set_parent() local
71 if (mux->table) { in ti_clk_mux_set_parent()
[all …]
/Linux-v5.10/drivers/mux/
Dcore.c10 #define pr_fmt(fmt) "mux-core: " fmt
18 #include <linux/mux/consumer.h>
19 #include <linux/mux/driver.h>
32 .name = "mux",
59 .name = "mux-chip",
64 * mux_chip_alloc() - Allocate a mux-chip.
65 * @dev: The parent device implementing the mux interface.
66 * @controllers: The number of mux controllers to allocate for this chip.
69 * After allocating the mux-chip with the desired number of mux controllers
70 * but before registering the chip, the mux driver is required to configure
[all …]
/Linux-v5.10/drivers/iio/multiplexer/
Diio-mux.c15 #include <linux/mux/consumer.h>
28 struct mux { struct
38 static int iio_mux_select(struct mux *mux, int idx) in iio_mux_select() argument
40 struct mux_child *child = &mux->child[idx]; in iio_mux_select()
41 struct iio_chan_spec const *chan = &mux->chan[idx]; in iio_mux_select()
45 ret = mux_control_select(mux->control, chan->channel); in iio_mux_select()
47 mux->cached_state = -1; in iio_mux_select()
51 if (mux->cached_state == chan->channel) in iio_mux_select()
64 ret = iio_write_channel_ext_info(mux->parent, attr, in iio_mux_select()
69 mux_control_deselect(mux->control); in iio_mux_select()
[all …]
/Linux-v5.10/sound/soc/codecs/
Dtas5086.c551 /* Input mux controls */
576 /* Output mux controls */
578 { "Channel 1 Mux", "Channel 2 Mux", "Channel 3 Mux",
579 "Channel 4 Mux", "Channel 5 Mux", "Channel 6 Mux" };
616 SND_SOC_DAPM_MUX("Channel 1 Mux", SND_SOC_NOPM, 0, 0,
618 SND_SOC_DAPM_MUX("Channel 2 Mux", SND_SOC_NOPM, 0, 0,
620 SND_SOC_DAPM_MUX("Channel 3 Mux", SND_SOC_NOPM, 0, 0,
622 SND_SOC_DAPM_MUX("Channel 4 Mux", SND_SOC_NOPM, 0, 0,
624 SND_SOC_DAPM_MUX("Channel 5 Mux", SND_SOC_NOPM, 0, 0,
626 SND_SOC_DAPM_MUX("Channel 6 Mux", SND_SOC_NOPM, 0, 0,
[all …]
Drt5665.c956 SOC_DAPM_ENUM("IF1_1 01 ADC Swap Mux", rt5665_if1_1_01_adc_enum);
959 SOC_DAPM_ENUM("IF1_1 23 ADC Swap Mux", rt5665_if1_1_23_adc_enum);
962 SOC_DAPM_ENUM("IF1_1 45 ADC Swap Mux", rt5665_if1_1_45_adc_enum);
965 SOC_DAPM_ENUM("IF1_1 67 ADC Swap Mux", rt5665_if1_1_67_adc_enum);
968 SOC_DAPM_ENUM("IF1_2 01 ADC Swap Mux", rt5665_if1_2_01_adc_enum);
971 SOC_DAPM_ENUM("IF1_2 23 ADC1 Swap Mux", rt5665_if1_2_23_adc_enum);
974 SOC_DAPM_ENUM("IF1_2 45 ADC1 Swap Mux", rt5665_if1_2_45_adc_enum);
977 SOC_DAPM_ENUM("IF1_2 67 ADC1 Swap Mux", rt5665_if1_2_67_adc_enum);
1880 "DD Mux", "ADC"
1948 SOC_DAPM_ENUM("Stereo1 DMIC Mux", rt5665_sto1_dmic_enum);
[all …]
Drt5677.c1739 /* Mux */
2886 /* ADC Mux */
2887 SND_SOC_DAPM_MUX("Stereo1 DMIC Mux", SND_SOC_NOPM, 0, 0,
2889 SND_SOC_DAPM_MUX("Stereo1 ADC1 Mux", SND_SOC_NOPM, 0, 0,
2891 SND_SOC_DAPM_MUX("Stereo1 ADC2 Mux", SND_SOC_NOPM, 0, 0,
2893 SND_SOC_DAPM_MUX("Stereo2 DMIC Mux", SND_SOC_NOPM, 0, 0,
2895 SND_SOC_DAPM_MUX("Stereo2 ADC1 Mux", SND_SOC_NOPM, 0, 0,
2897 SND_SOC_DAPM_MUX("Stereo2 ADC2 Mux", SND_SOC_NOPM, 0, 0,
2899 SND_SOC_DAPM_MUX("Stereo2 ADC LR Mux", SND_SOC_NOPM, 0, 0,
2901 SND_SOC_DAPM_MUX("Stereo3 DMIC Mux", SND_SOC_NOPM, 0, 0,
[all …]
/Linux-v5.10/drivers/clk/
Dclk-mux.c26 static inline u32 clk_mux_readl(struct clk_mux *mux) in clk_mux_readl() argument
28 if (mux->flags & CLK_MUX_BIG_ENDIAN) in clk_mux_readl()
29 return ioread32be(mux->reg); in clk_mux_readl()
31 return readl(mux->reg); in clk_mux_readl()
34 static inline void clk_mux_writel(struct clk_mux *mux, u32 val) in clk_mux_writel() argument
36 if (mux->flags & CLK_MUX_BIG_ENDIAN) in clk_mux_writel()
37 iowrite32be(val, mux->reg); in clk_mux_writel()
39 writel(val, mux->reg); in clk_mux_writel()
89 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_get_parent() local
92 val = clk_mux_readl(mux) >> mux->shift; in clk_mux_get_parent()
[all …]
/Linux-v5.10/include/linux/mux/
Ddriver.h3 * mux/driver.h - definitions for the multiplexer driver interface
13 #include <dt-bindings/mux/mux.h>
21 * struct mux_control_ops - Mux controller operations for a mux chip.
22 * @set: Set the state of the given mux controller.
25 int (*set)(struct mux_control *mux, int state);
29 * struct mux_control - Represents a mux controller.
30 * @lock: Protects the mux controller state.
31 * @chip: The mux chip that is handling this mux controller.
32 * @cached_state: The current mux controller state, or -1 if none.
33 * @states: The number of mux controller states.
[all …]
/Linux-v5.10/Documentation/devicetree/bindings/net/
Dmdio-mux-multiplexer.txt3 This is a special case of MDIO mux when MDIO mux is defined as a consumer
4 of a mux producer device. The mux producer can be of any type like mmio mux
5 producer, gpio mux producer or generic register based mux producer.
9 - compatible : should be "mmio-mux-multiplexer"
10 - mux-controls : mux controller node to use for operating the mux
17 Documentation/devicetree/bindings/mux/mux-controller.txt
18 and Documentation/devicetree/bindings/net/mdio-mux.txt
21 In below example the Mux producer and consumer are separate nodes.
29 mux: mux-controller { // Mux Producer
30 compatible = "reg-mux";
[all …]
/Linux-v5.10/include/dt-bindings/clock/
Dtegra186-clock.h384 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S2 */
386 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_I2S3 */
388 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SPDF_IN */
392 /** @clkdesc{spi_clks, out, mux, CLK_RST_CONTROLLER_CLK_SOURCE_SPI3} */
394 /** @clkdesc{i2c_clks, out, mux, CLK_RST_CONTROLLER_CLK_SOURCE_I2C1} */
396 /** @clkdesc{i2c_clks, out, mux, CLK_RST_CONTROLLER_CLK_SOURCE_I2C5} */
398 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SPI1 */
400 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_ISP */
402 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_VI */
404 /** @brief output of mux controlled by CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC1 */
[all …]
/Linux-v5.10/Documentation/i2c/
Di2c-topology.rst8 1. A mux may be needed on the bus to prevent address collisions.
23 I2C transfers, and all adapters with a parent are part of an "i2c-mux"
26 Depending of the particular mux driver, something happens when there is
27 an I2C transfer on one of its child adapters. The mux driver can
28 obviously operate a mux, but it can also do arbitration with an external
29 bus master or open a gate. The mux driver has two operations for this,
38 mux-locked or parent-locked muxes. As is evident from below, it can be
39 useful to know if a mux is mux-locked or if it is parent-locked. The
46 i2c-mux-gpio Normally parent-locked, mux-locked iff
48 same I2C root adapter that they mux.
[all …]
/Linux-v5.10/drivers/pinctrl/sirf/
Dpinctrl-atlas7.c29 /* Definition of Pad&Mux Properties */
174 * @mux_reg: The mux register offset.
175 * This register contains the mux.
180 * @mux_bit: The start bit of mux register.
224 * struct atlas7_pad_mux - Atlas7 mux
227 * @func: The mux func on this Pad.
245 #define MUX(b, pad, f, dr, db, dvr, dvb) \ macro
1529 MUX(1, 119, 0, N, N, N, N),
1530 MUX(1, 120, 0, N, N, N, N),
1531 MUX(1, 121, 0, N, N, N, N),
[all …]
/Linux-v5.10/Documentation/devicetree/bindings/i2c/
Di2c-mux-gpmux.txt1 General Purpose I2C Bus Mux
3 This binding describes an I2C bus multiplexer that uses a mux controller
4 from the mux subsystem to route the I2C signals.
11 | .------. | .------+ child bus A, on MUX value set to 0
12 | | I2C |-|--| Mux |
13 | '------' | '--+---+ child bus B, on MUX value set to 1
15 | | MUX- | | | | | |
21 - compatible: i2c-mux
24 - mux-controls: The phandle of the mux controller to use for operating the
25 mux.
[all …]
/Linux-v5.10/drivers/clk/uniphier/
Dclk-uniphier-mux.c25 struct uniphier_clk_mux *mux = to_uniphier_clk_mux(hw); in uniphier_clk_mux_set_parent() local
27 return regmap_write_bits(mux->regmap, mux->reg, mux->masks[index], in uniphier_clk_mux_set_parent()
28 mux->vals[index]); in uniphier_clk_mux_set_parent()
33 struct uniphier_clk_mux *mux = to_uniphier_clk_mux(hw); in uniphier_clk_mux_get_parent() local
39 ret = regmap_read(mux->regmap, mux->reg, &val); in uniphier_clk_mux_get_parent()
44 if ((mux->masks[i] & val) == mux->vals[i]) in uniphier_clk_mux_get_parent()
61 struct uniphier_clk_mux *mux; in uniphier_clk_register_mux() local
65 mux = devm_kzalloc(dev, sizeof(*mux), GFP_KERNEL); in uniphier_clk_register_mux()
66 if (!mux) in uniphier_clk_register_mux()
75 mux->regmap = regmap; in uniphier_clk_register_mux()
[all …]
/Linux-v5.10/Documentation/devicetree/bindings/iio/multiplexer/
Dio-channel-mux.txt7 - compatible : "io-channel-mux"
13 - mux-controls : Mux controller node to use for operating the mux
14 - channels : List of strings, labeling the mux controller states.
18 the list of strings in the channels property, and also matches the mux
19 controller state. The mux controller state is described in
20 ../mux/mux-controller.txt
23 mux: mux-controller {
24 compatible = "gpio-mux";
25 #mux-control-cells = <0>;
27 mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
[all …]
/Linux-v5.10/drivers/usb/typec/
Dmux.c183 return dev_fwnode(dev) == fwnode && dev_name_ends_with(dev, "-mux"); in mux_fwnode_match()
249 * Finds a mux linked to the caller. This function is primarily meant for the
250 * Type-C drivers. Returns a reference to the mux on success, NULL if no
252 * was found but the mux has not been enumerated yet.
257 struct typec_mux *mux; in fwnode_typec_mux_get() local
259 mux = fwnode_connection_find_match(fwnode, "mode-switch", (void *)desc, in fwnode_typec_mux_get()
261 if (!IS_ERR_OR_NULL(mux)) in fwnode_typec_mux_get()
262 WARN_ON(!try_module_get(mux->dev.parent->driver->owner)); in fwnode_typec_mux_get()
264 return mux; in fwnode_typec_mux_get()
270 * @mux: USB Type-C Connector Multiplexer/DeMultiplexer
[all …]
/Linux-v5.10/arch/arm64/boot/dts/amlogic/
Dmeson-gxbb.dtsi98 reg-names = "mux", "pull", "gpio";
105 mux {
113 mux {
122 mux {
130 mux {
139 mux {
147 mux {
156 mux {
164 mux {
172 mux {
[all …]

12345678910>>...70