/kernel/linux/linux-5.10/drivers/clk/mediatek/ |
D | clk-mux.c | 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() 47 struct mtk_clk_mux *mux = to_mtk_clk_mux(hw); in mtk_clk_mux_disable_setclr() local [all …]
|
D | clk-cpumux.c | 21 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 …]
|
/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 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() 72 index = mux->table[index]; in ti_clk_mux_set_parent() [all …]
|
/kernel/linux/linux-5.10/drivers/i2c/muxes/ |
D | i2c-mux-reg.c | 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() 44 if (mux->data.little_endian) in i2c_mux_reg_set() 45 iowrite16(chan_id, mux->data.reg); in i2c_mux_reg_set() [all …]
|
D | i2c-mux-gpio.c | 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() 78 mux->data.n_values = of_get_child_count(np); in i2c_mux_gpio_probe_dt() 81 mux->data.n_values, sizeof(*mux->data.values), in i2c_mux_gpio_probe_dt() [all …]
|
D | i2c-mux-gpmux.c | 17 struct mux { struct 25 struct mux *mux = i2c_mux_priv(muxc); in i2c_mux_select() local 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() 75 struct mux *mux; in i2c_mux_probe() local 83 mux = devm_kzalloc(dev, sizeof(*mux), GFP_KERNEL); in i2c_mux_probe() 84 if (!mux) in i2c_mux_probe() [all …]
|
/kernel/liteos_a/testsuites/kernel/sample/kernel_base/ipc/ |
D | BUILD.gn | 32 sources = [ "mux/It_los_mux.c" ] 35 "mux/full/It_los_mutex_006.c", 36 "mux/full/It_los_mutex_007.c", 37 "mux/full/It_los_mutex_008.c", 38 "mux/full/It_los_mutex_009.c", 39 "mux/full/It_los_mutex_010.c", 40 "mux/full/It_los_mutex_011.c", 41 "mux/full/It_los_mutex_012.c", 42 "mux/full/It_los_mutex_013.c", 43 "mux/full/It_los_mutex_015.c", [all …]
|
/kernel/linux/linux-5.10/drivers/iio/multiplexer/ |
D | iio-mux.c | 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() 70 mux->cached_state = -1; in iio_mux_select() [all …]
|
/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 …]
|
D | adi,adg792a.txt | 5 - #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 …]
|
D | gpio-mux.txt | 7 - compatible : "gpio-mux" 8 - mux-gpios : list of gpios used to control the multiplexer, least 10 - #mux-control-cells : <0> 11 * Standard mux-controller bindings as decribed in mux-controller.txt 14 - idle-state : if present, the state the mux will have when idle. The 23 mux: mux-controller { 24 compatible = "gpio-mux"; 25 #mux-control-cells = <0>; 27 mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, 31 adc-mux { [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/drivers/mux/ |
D | core.c | 89 controllers * sizeof(*mux_chip->mux) + in mux_chip_alloc() 94 mux_chip->mux = (struct mux_control *)(mux_chip + 1); in mux_chip_alloc() 113 struct mux_control *mux = &mux_chip->mux[i]; in mux_chip_alloc() local 115 mux->chip = mux_chip; in mux_chip_alloc() 116 sema_init(&mux->lock, 1); in mux_chip_alloc() 117 mux->cached_state = MUX_CACHE_UNKNOWN; in mux_chip_alloc() 118 mux->idle_state = MUX_IDLE_AS_IS; in mux_chip_alloc() 127 static int mux_control_set(struct mux_control *mux, int state) in mux_control_set() argument 129 int ret = mux->chip->ops->set(mux, state); in mux_control_set() 131 mux->cached_state = ret < 0 ? MUX_CACHE_UNKNOWN : state; in mux_control_set() [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 29 mux: mux-controller { // Mux Producer 30 compatible = "reg-mux"; 31 #mux-control-cells = <1>; [all …]
|
/kernel/linux/linux-5.10/drivers/clk/uniphier/ |
D | clk-uniphier-mux.c | 25 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 …]
|
/kernel/linux/linux-5.10/drivers/clk/qcom/ |
D | clk-krait.c | 21 static void __krait_mux_set_sel(struct krait_mux_clk *mux, int sel) in __krait_mux_set_sel() argument 27 regval = krait_get_l2_indirect_reg(mux->offset); in __krait_mux_set_sel() 28 regval &= ~(mux->mask << mux->shift); in __krait_mux_set_sel() 29 regval |= (sel & mux->mask) << mux->shift; in __krait_mux_set_sel() 30 if (mux->lpl) { in __krait_mux_set_sel() 31 regval &= ~(mux->mask << (mux->shift + LPL_SHIFT)); in __krait_mux_set_sel() 32 regval |= (sel & mux->mask) << (mux->shift + LPL_SHIFT); in __krait_mux_set_sel() 34 krait_set_l2_indirect_reg(mux->offset, regval); in __krait_mux_set_sel() 49 struct krait_mux_clk *mux = to_krait_mux_clk(hw); in krait_mux_set_parent() local 52 sel = clk_mux_index_to_val(mux->parent_map, 0, index); in krait_mux_set_parent() [all …]
|
D | krait-cc.c | 38 struct krait_mux_clk *mux = container_of(nb, struct krait_mux_clk, in krait_notifier_cb() local 42 mux->old_index = krait_mux_clk_ops.get_parent(&mux->hw); in krait_notifier_cb() 43 ret = krait_mux_clk_ops.set_parent(&mux->hw, mux->safe_sel); in krait_notifier_cb() 44 mux->reparent = false; in krait_notifier_cb() 51 if (!mux->reparent) in krait_notifier_cb() 52 ret = krait_mux_clk_ops.set_parent(&mux->hw, in krait_notifier_cb() 53 mux->old_index); in krait_notifier_cb() 60 struct krait_mux_clk *mux) in krait_notifier_register() argument 64 mux->clk_nb.notifier_call = krait_notifier_cb; in krait_notifier_register() 65 ret = clk_notifier_register(clk, &mux->clk_nb); in krait_notifier_register() [all …]
|
D | clk-regmap-mux.c | 20 struct clk_regmap_mux *mux = to_clk_regmap_mux(hw); in mux_get_parent() local 22 unsigned int mask = GENMASK(mux->width - 1, 0); in mux_get_parent() 25 regmap_read(clkr->regmap, mux->reg, &val); in mux_get_parent() 27 val >>= mux->shift; in mux_get_parent() 30 if (mux->parent_map) in mux_get_parent() 31 return qcom_find_cfg_index(hw, mux->parent_map, val); in mux_get_parent() 38 struct clk_regmap_mux *mux = to_clk_regmap_mux(hw); in mux_set_parent() local 40 unsigned int mask = GENMASK(mux->width + mux->shift - 1, mux->shift); in mux_set_parent() 43 if (mux->parent_map) in mux_set_parent() 44 index = mux->parent_map[index].cfg; in mux_set_parent() [all …]
|
/kernel/linux/linux-5.10/drivers/usb/typec/ |
D | mux.c | 261 struct typec_mux *mux; in fwnode_typec_mux_get() local 263 mux = fwnode_connection_find_match(fwnode, "mode-switch", (void *)desc, in fwnode_typec_mux_get() 265 if (!IS_ERR_OR_NULL(mux)) in fwnode_typec_mux_get() 266 WARN_ON(!try_module_get(mux->dev.parent->driver->owner)); in fwnode_typec_mux_get() 268 return mux; in fwnode_typec_mux_get() 278 void typec_mux_put(struct typec_mux *mux) in typec_mux_put() argument 280 if (!IS_ERR_OR_NULL(mux)) { in typec_mux_put() 281 module_put(mux->dev.parent->driver->owner); in typec_mux_put() 282 put_device(&mux->dev); in typec_mux_put() 287 int typec_mux_set(struct typec_mux *mux, struct typec_mux_state *state) in typec_mux_set() argument [all …]
|
/kernel/linux/linux-5.10/net/kcm/ |
D | kcmsock.c | 57 struct kcm_mux *mux = psock->mux; in kcm_abort_tx_psock() local 61 spin_lock_bh(&mux->lock); in kcm_abort_tx_psock() 64 spin_unlock_bh(&mux->lock); in kcm_abort_tx_psock() 85 spin_unlock_bh(&mux->lock); in kcm_abort_tx_psock() 92 static void kcm_update_rx_mux_stats(struct kcm_mux *mux, in kcm_update_rx_mux_stats() argument 95 STRP_STATS_ADD(mux->stats.rx_bytes, in kcm_update_rx_mux_stats() 98 mux->stats.rx_msgs += in kcm_update_rx_mux_stats() 104 static void kcm_update_tx_mux_stats(struct kcm_mux *mux, in kcm_update_tx_mux_stats() argument 107 KCM_STATS_ADD(mux->stats.tx_bytes, in kcm_update_tx_mux_stats() 109 mux->stats.tx_msgs += in kcm_update_tx_mux_stats() [all …]
|
/kernel/linux/linux-5.10/drivers/clk/imx/ |
D | clk-fixup-mux.c | 23 struct clk_mux mux; member 30 struct clk_mux *mux = to_clk_mux(hw); in to_clk_fixup_mux() local 32 return container_of(mux, struct clk_fixup_mux, mux); in to_clk_fixup_mux() 39 return fixup_mux->ops->get_parent(&fixup_mux->mux.hw); in clk_fixup_mux_get_parent() 45 struct clk_mux *mux = to_clk_mux(hw); in clk_fixup_mux_set_parent() local 49 spin_lock_irqsave(mux->lock, flags); in clk_fixup_mux_set_parent() 51 val = readl(mux->reg); in clk_fixup_mux_set_parent() 52 val &= ~(mux->mask << mux->shift); in clk_fixup_mux_set_parent() 53 val |= index << mux->shift; in clk_fixup_mux_set_parent() 55 writel(val, mux->reg); in clk_fixup_mux_set_parent() [all …]
|
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/iio/multiplexer/ |
D | io-channel-mux.txt | 7 - 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 …]
|
/kernel/linux/linux-5.10/drivers/clk/sprd/ |
D | mux.c | 15 const struct sprd_mux_ssel *mux) in sprd_mux_helper_get_parent() argument 23 parent = reg >> mux->shift; in sprd_mux_helper_get_parent() 24 parent &= (1 << mux->width) - 1; in sprd_mux_helper_get_parent() 26 if (!mux->table) in sprd_mux_helper_get_parent() 32 if (parent >= mux->table[i] && parent < mux->table[i + 1]) in sprd_mux_helper_get_parent() 43 return sprd_mux_helper_get_parent(&cm->common, &cm->mux); in sprd_mux_get_parent() 47 const struct sprd_mux_ssel *mux, in sprd_mux_helper_set_parent() argument 52 if (mux->table) in sprd_mux_helper_set_parent() 53 index = mux->table[index]; in sprd_mux_helper_set_parent() 56 reg &= ~GENMASK(mux->width + mux->shift - 1, mux->shift); in sprd_mux_helper_set_parent() [all …]
|
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/i2c/ |
D | i2c-mux-gpmux.txt | 3 This binding describes an I2C bus multiplexer that uses a mux controller 4 from the mux subsystem to route the I2C signals. 21 - compatible: i2c-mux 24 - mux-controls: The phandle of the mux controller to use for operating the 25 mux. 26 * Standard I2C mux properties. See i2c-mux.txt in this directory. 27 * I2C child bus nodes. See i2c-mux.txt in this directory. The sub-bus number 28 is also the mux-controller state described in ../mux/mux-controller.txt 31 - mux-locked: If present, explicitly allow unrelated I2C transactions on the 41 If mux-locked is not present, the multiplexer is assumed to be parent-locked. [all …]
|