| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/mux/ |
| D | mux-controller.txt | 4 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 …]
|
| D | reg-mux.txt | 8 "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 …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/mux/ |
| D | mux-controller.txt | 4 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 …]
|
| /kernel/linux/linux-5.10/drivers/clk/mediatek/ |
| D | clk-mux.c | 13 #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 …]
|
| /kernel/linux/linux-4.19/drivers/i2c/muxes/ |
| D | i2c-mux-gpio.c | 12 #include <linux/i2c-mux.h> 13 #include <linux/platform_data/i2c-mux-gpio.h> 28 static void i2c_mux_gpio_set(const struct gpiomux *mux, unsigned val) in i2c_mux_gpio_set() argument 32 for (i = 0; i < mux->data.n_gpios; i++) in i2c_mux_gpio_set() 33 mux->values[i] = (val >> i) & 1; in i2c_mux_gpio_set() 35 gpiod_set_array_value_cansleep(mux->data.n_gpios, in i2c_mux_gpio_set() 36 mux->gpios, mux->values); in i2c_mux_gpio_set() 41 struct gpiomux *mux = i2c_mux_priv(muxc); in i2c_mux_gpio_select() local 43 i2c_mux_gpio_set(mux, chan); in i2c_mux_gpio_select() 50 struct gpiomux *mux = i2c_mux_priv(muxc); in i2c_mux_gpio_deselect() local [all …]
|
| D | i2c-mux-reg.c | 14 #include <linux/i2c-mux.h> 19 #include <linux/platform_data/i2c-mux-reg.h> 27 static int i2c_mux_reg_set(const struct regmux *mux, unsigned int chan_id) in i2c_mux_reg_set() argument 29 if (!mux->data.reg) in i2c_mux_reg_set() 38 switch (mux->data.reg_size) { in i2c_mux_reg_set() 40 if (mux->data.little_endian) in i2c_mux_reg_set() 41 iowrite32(chan_id, mux->data.reg); in i2c_mux_reg_set() 43 iowrite32be(chan_id, mux->data.reg); in i2c_mux_reg_set() 44 if (!mux->data.write_only) in i2c_mux_reg_set() 45 ioread32(mux->data.reg); in i2c_mux_reg_set() [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/ti/ |
| D | mux.c | 31 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 …]
|
| /kernel/linux/linux-5.10/drivers/i2c/muxes/ |
| D | i2c-mux-reg.c | 10 #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 …]
|
| D | i2c-mux-gpio.c | 9 #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 …]
|
| /kernel/linux/linux-5.10/drivers/clk/ti/ |
| D | mux.c | 31 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 …]
|
| /kernel/linux/linux-5.10/drivers/mux/ |
| D | core.c | 10 #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 …]
|
| /kernel/linux/linux-4.19/drivers/mux/ |
| D | core.c | 10 #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 …]
|
| /kernel/linux/linux-5.10/drivers/iio/multiplexer/ |
| D | iio-mux.c | 15 #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 …]
|
| /kernel/linux/linux-4.19/drivers/iio/multiplexer/ |
| D | iio-mux.c | 18 #include <linux/mux/consumer.h> 31 struct mux { struct 41 static int iio_mux_select(struct mux *mux, int idx) in iio_mux_select() argument 43 struct mux_child *child = &mux->child[idx]; in iio_mux_select() 44 struct iio_chan_spec const *chan = &mux->chan[idx]; in iio_mux_select() 48 ret = mux_control_select(mux->control, chan->channel); in iio_mux_select() 50 mux->cached_state = -1; in iio_mux_select() 54 if (mux->cached_state == chan->channel) in iio_mux_select() 67 ret = iio_write_channel_ext_info(mux->parent, attr, in iio_mux_select() 72 mux_control_deselect(mux->control); in iio_mux_select() [all …]
|
| /kernel/linux/linux-4.19/sound/soc/codecs/ |
| D | tas5086.c | 560 /* Input mux controls */ 585 /* Output mux controls */ 587 { "Channel 1 Mux", "Channel 2 Mux", "Channel 3 Mux", 588 "Channel 4 Mux", "Channel 5 Mux", "Channel 6 Mux" }; 625 SND_SOC_DAPM_MUX("Channel 1 Mux", SND_SOC_NOPM, 0, 0, 627 SND_SOC_DAPM_MUX("Channel 2 Mux", SND_SOC_NOPM, 0, 0, 629 SND_SOC_DAPM_MUX("Channel 3 Mux", SND_SOC_NOPM, 0, 0, 631 SND_SOC_DAPM_MUX("Channel 4 Mux", SND_SOC_NOPM, 0, 0, 633 SND_SOC_DAPM_MUX("Channel 5 Mux", SND_SOC_NOPM, 0, 0, 635 SND_SOC_DAPM_MUX("Channel 6 Mux", SND_SOC_NOPM, 0, 0, [all …]
|
| D | rt5665.c | 959 SOC_DAPM_ENUM("IF1_1 01 ADC Swap Mux", rt5665_if1_1_01_adc_enum); 962 SOC_DAPM_ENUM("IF1_1 23 ADC Swap Mux", rt5665_if1_1_23_adc_enum); 965 SOC_DAPM_ENUM("IF1_1 45 ADC Swap Mux", rt5665_if1_1_45_adc_enum); 968 SOC_DAPM_ENUM("IF1_1 67 ADC Swap Mux", rt5665_if1_1_67_adc_enum); 971 SOC_DAPM_ENUM("IF1_2 01 ADC Swap Mux", rt5665_if1_2_01_adc_enum); 974 SOC_DAPM_ENUM("IF1_2 23 ADC1 Swap Mux", rt5665_if1_2_23_adc_enum); 977 SOC_DAPM_ENUM("IF1_2 45 ADC1 Swap Mux", rt5665_if1_2_45_adc_enum); 980 SOC_DAPM_ENUM("IF1_2 67 ADC1 Swap Mux", rt5665_if1_2_67_adc_enum); 1883 "DD Mux", "ADC" 1951 SOC_DAPM_ENUM("Stereo1 DMIC Mux", rt5665_sto1_dmic_enum); [all …]
|
| D | rt5677.c | 1563 /* Mux */ 2709 /* ADC Mux */ 2710 SND_SOC_DAPM_MUX("Stereo1 DMIC Mux", SND_SOC_NOPM, 0, 0, 2712 SND_SOC_DAPM_MUX("Stereo1 ADC1 Mux", SND_SOC_NOPM, 0, 0, 2714 SND_SOC_DAPM_MUX("Stereo1 ADC2 Mux", SND_SOC_NOPM, 0, 0, 2716 SND_SOC_DAPM_MUX("Stereo2 DMIC Mux", SND_SOC_NOPM, 0, 0, 2718 SND_SOC_DAPM_MUX("Stereo2 ADC1 Mux", SND_SOC_NOPM, 0, 0, 2720 SND_SOC_DAPM_MUX("Stereo2 ADC2 Mux", SND_SOC_NOPM, 0, 0, 2722 SND_SOC_DAPM_MUX("Stereo2 ADC LR Mux", SND_SOC_NOPM, 0, 0, 2724 SND_SOC_DAPM_MUX("Stereo3 DMIC Mux", SND_SOC_NOPM, 0, 0, [all …]
|
| /kernel/linux/linux-5.10/sound/soc/codecs/ |
| D | tas5086.c | 551 /* 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 …]
|
| D | rt5665.c | 956 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 …]
|
| /kernel/linux/linux-5.10/drivers/clk/ |
| D | clk-mux.c | 26 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 …]
|
| /kernel/linux/linux-5.10/include/linux/mux/ |
| D | driver.h | 3 * 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 …]
|
| /kernel/linux/linux-4.19/include/linux/mux/ |
| D | driver.h | 3 * 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 …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/net/ |
| D | mdio-mux-multiplexer.txt | 3 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 …]
|
| /kernel/linux/linux-4.19/Documentation/i2c/ |
| D | i2c-topology | 7 1. A mux may be needed on the bus to prevent address collisions. 21 i2c transfers, and all adapters with a parent are part of an "i2c-mux" 24 Depending of the particular mux driver, something happens when there is 25 an i2c transfer on one of its child adapters. The mux driver can 26 obviously operate a mux, but it can also do arbitration with an external 27 bus master or open a gate. The mux driver has two operations for this, 36 mux-locked or parent-locked muxes. As is evident from below, it can be 37 useful to know if a mux is mux-locked or if it is parent-locked. The 42 i2c-mux-gpio Normally parent-locked, mux-locked iff 44 same i2c root adapter that they mux. [all …]
|
| /kernel/linux/linux-4.19/drivers/clk/ |
| D | clk-mux.c | 76 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_get_parent() local 79 val = clk_readl(mux->reg) >> mux->shift; in clk_mux_get_parent() 80 val &= mux->mask; in clk_mux_get_parent() 82 return clk_mux_val_to_index(hw, mux->table, mux->flags, val); in clk_mux_get_parent() 87 struct clk_mux *mux = to_clk_mux(hw); in clk_mux_set_parent() local 88 u32 val = clk_mux_index_to_val(mux->table, mux->flags, index); in clk_mux_set_parent() 92 if (mux->lock) in clk_mux_set_parent() 93 spin_lock_irqsave(mux->lock, flags); in clk_mux_set_parent() 95 __acquire(mux->lock); in clk_mux_set_parent() 97 if (mux->flags & CLK_MUX_HIWORD_MASK) { in clk_mux_set_parent() [all …]
|