/linux/arch/powerpc/platforms/83xx/ ! |
H A D | mcu_mpc8349emitx.c | 33 struct mcu { struct 40 static struct mcu *glob_mcu; argument 46 struct mcu *mcu = glob_mcu; in shutdown_thread_fn() local 49 ret = i2c_smbus_read_byte_data(mcu->client, MCU_REG_CTRL); in shutdown_thread_fn() 52 mcu->reg_ctrl = ret; in shutdown_thread_fn() 55 if (mcu->reg_ctrl & MCU_CTRL_BTN) { in shutdown_thread_fn() 56 i2c_smbus_write_byte_data(mcu->client, MCU_REG_CTRL, in shutdown_thread_fn() 57 mcu->reg_ctrl & ~MCU_CTRL_BTN); in shutdown_thread_fn() 73 struct mcu *mcu = glob_mcu; in show_status() local 75 ret = i2c_smbus_read_byte_data(mcu->client, MCU_REG_CTRL); in show_status() [all …]
|
/linux/drivers/platform/cznic/ ! |
H A D | turris-omnia-mcu-gpio.c | 234 static int omnia_ctl_cmd_locked(struct omnia_mcu *mcu, u8 cmd, u16 val, u16 mask) in omnia_ctl_cmd_locked() argument 258 return omnia_cmd_write(mcu->client, buf, len); in omnia_ctl_cmd_locked() 261 static int omnia_ctl_cmd(struct omnia_mcu *mcu, u8 cmd, u16 val, u16 mask) in omnia_ctl_cmd() argument 263 guard(mutex)(&mcu->lock); in omnia_ctl_cmd() 265 return omnia_ctl_cmd_locked(mcu, cmd, val, mask); in omnia_ctl_cmd() 278 struct omnia_mcu *mcu = gpiochip_get_data(gc); in omnia_gpio_get_direction() local 283 scoped_guard(mutex, &mcu->lock) { in omnia_gpio_get_direction() 284 val = omnia_cmd_read_bit(mcu->client, in omnia_gpio_get_direction() 306 struct omnia_mcu *mcu = gpiochip_get_data(gc); in omnia_gpio_direction_input() local 309 return omnia_ctl_cmd(mcu, OMNIA_CMD_EXT_CONTROL, in omnia_gpio_direction_input() [all …]
|
H A D | turris-omnia-mcu-keyctl.c | 27 struct omnia_mcu *mcu = dev_id; in omnia_msg_signed_irq_handler() local 30 err = omnia_cmd_read(mcu->client, OMNIA_CMD_CRYPTO_COLLECT_SIGNATURE, in omnia_msg_signed_irq_handler() 35 guard(mutex)(&mcu->sign_lock); in omnia_msg_signed_irq_handler() 37 if (mcu->sign_requested) { in omnia_msg_signed_irq_handler() 38 mcu->sign_err = err; in omnia_msg_signed_irq_handler() 40 memcpy(mcu->signature, &reply[1], in omnia_msg_signed_irq_handler() 42 mcu->sign_requested = false; in omnia_msg_signed_irq_handler() 43 complete(&mcu->msg_signed); in omnia_msg_signed_irq_handler() 52 struct omnia_mcu *mcu = dev_get_drvdata(turris_signing_key_get_dev(key)); in omnia_mcu_sign() local 56 scoped_guard(mutex, &mcu->sign_lock) { in omnia_mcu_sign() [all …]
|
H A D | turris-omnia-mcu-watchdog.c | 32 struct omnia_mcu *mcu = watchdog_get_drvdata(wdt); in omnia_wdt_start() local 34 return omnia_cmd_write_u8(mcu->client, OMNIA_CMD_SET_WATCHDOG_STATE, 1); in omnia_wdt_start() 39 struct omnia_mcu *mcu = watchdog_get_drvdata(wdt); in omnia_wdt_stop() local 41 return omnia_cmd_write_u8(mcu->client, OMNIA_CMD_SET_WATCHDOG_STATE, 0); in omnia_wdt_stop() 46 struct omnia_mcu *mcu = watchdog_get_drvdata(wdt); in omnia_wdt_ping() local 48 return omnia_cmd_write_u8(mcu->client, OMNIA_CMD_SET_WATCHDOG_STATE, 1); in omnia_wdt_ping() 54 struct omnia_mcu *mcu = watchdog_get_drvdata(wdt); in omnia_wdt_set_timeout() local 56 return omnia_cmd_write_u16(mcu->client, OMNIA_CMD_SET_WDT_TIMEOUT, in omnia_wdt_set_timeout() 62 struct omnia_mcu *mcu = watchdog_get_drvdata(wdt); in omnia_wdt_get_timeleft() local 66 err = omnia_cmd_read_u16(mcu->client, OMNIA_CMD_GET_WDT_TIMELEFT, in omnia_wdt_get_timeleft() [all …]
|
H A D | turris-omnia-mcu-base.c | 57 static int omnia_get_version_hash(struct omnia_mcu *mcu, bool bootloader, in omnia_get_version_hash() argument 64 err = omnia_cmd_read(mcu->client, in omnia_get_version_hash() 80 struct omnia_mcu *mcu = dev_get_drvdata(dev); in fw_version_hash_show() local 84 err = omnia_get_version_hash(mcu, bootloader, version); in fw_version_hash_show() 110 struct omnia_mcu *mcu = dev_get_drvdata(dev); in fw_features_show() local 112 return sysfs_emit(buf, "0x%x\n", mcu->features); in fw_features_show() 119 struct omnia_mcu *mcu = dev_get_drvdata(dev); in mcu_type_show() local 121 return sysfs_emit(buf, "%s\n", mcu->type); in mcu_type_show() 143 struct omnia_mcu *mcu = dev_get_drvdata(dev); in serial_number_show() local 145 return sysfs_emit(buf, "%016llX\n", mcu->board_serial_number); in serial_number_show() [all …]
|
H A D | turris-omnia-mcu-sys-off-wakeup.c | 65 struct omnia_mcu *mcu = i2c_get_clientdata(client); in omnia_read_alarm() local 74 rtc_time64_to_tm(wakeup ?: mcu->rtc_alarm, &alrm->time); in omnia_read_alarm() 82 struct omnia_mcu *mcu = i2c_get_clientdata(client); in omnia_set_alarm() local 84 mcu->rtc_alarm = rtc_tm_to_time64(&alrm->time); in omnia_set_alarm() 88 mcu->rtc_alarm); in omnia_set_alarm() 96 struct omnia_mcu *mcu = i2c_get_clientdata(client); in omnia_alarm_irq_enable() local 99 enabled ? mcu->rtc_alarm : 0); in omnia_alarm_irq_enable() 111 struct omnia_mcu *mcu = data->cb_data; in omnia_power_off() local 117 if (mcu->front_button_poweron) in omnia_power_off() 134 err = omnia_cmd_write(mcu->client, cmd, sizeof(cmd)); in omnia_power_off() [all …]
|
H A D | turris-omnia-mcu-trng.c | 25 struct omnia_mcu *mcu = dev_id; in omnia_trng_irq_handler() local 27 complete(&mcu->trng_entropy_ready); in omnia_trng_irq_handler() 34 struct omnia_mcu *mcu = container_of(rng, struct omnia_mcu, trng); in omnia_trng_read() local 38 if (!wait && !completion_done(&mcu->trng_entropy_ready)) in omnia_trng_read() 42 if (wait_for_completion_interruptible(&mcu->trng_entropy_ready)) in omnia_trng_read() 45 err = omnia_cmd_read(mcu->client, in omnia_trng_read() 59 int omnia_mcu_register_trng(struct omnia_mcu *mcu) in omnia_mcu_register_trng() argument 61 struct device *dev = &mcu->client->dev; in omnia_mcu_register_trng() 65 if (!(mcu->features & OMNIA_FEAT_TRNG)) in omnia_mcu_register_trng() 74 err = omnia_cmd_read(mcu->client, OMNIA_CMD_TRNG_COLLECT_ENTROPY, in omnia_mcu_register_trng() [all …]
|
H A D | Makefile | 3 obj-$(CONFIG_TURRIS_OMNIA_MCU) += turris-omnia-mcu.o 4 turris-omnia-mcu-y := turris-omnia-mcu-base.o 5 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_GPIO) += turris-omnia-mcu-gpio.o 6 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_KEYCTL) += turris-omnia-mcu-keyctl.o 7 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_SYSOFF_WAKEUP) += turris-omnia-mcu-sys-off-wakeup.o 8 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_TRNG) += turris-omnia-mcu-trng.o 9 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_WATCHDOG) += turris-omnia-mcu-watchdog.o
|
H A D | turris-omnia-mcu.h | 116 int omnia_mcu_register_gpiochip(struct omnia_mcu *mcu); 117 int omnia_mcu_request_irq(struct omnia_mcu *mcu, u32 spec, 120 static inline int omnia_mcu_register_gpiochip(struct omnia_mcu *mcu) in omnia_mcu_register_gpiochip() argument 127 int omnia_mcu_register_keyctl(struct omnia_mcu *mcu); 129 static inline int omnia_mcu_register_keyctl(struct omnia_mcu *mcu) in omnia_mcu_register_keyctl() argument 137 int omnia_mcu_register_sys_off_and_wakeup(struct omnia_mcu *mcu); 139 static inline int omnia_mcu_register_sys_off_and_wakeup(struct omnia_mcu *mcu) in omnia_mcu_register_sys_off_and_wakeup() argument 146 int omnia_mcu_register_trng(struct omnia_mcu *mcu); 148 static inline int omnia_mcu_register_trng(struct omnia_mcu *mcu) in omnia_mcu_register_trng() argument 155 int omnia_mcu_register_watchdog(struct omnia_mcu *mcu); [all …]
|
/linux/drivers/mfd/ ! |
H A D | qnap-mcu.c | 81 static int qnap_mcu_write(struct qnap_mcu *mcu, const u8 *data, u8 data_size) in qnap_mcu_write() argument 87 dev_err(&mcu->serdev->dev, "data too big for transmit buffer"); in qnap_mcu_write() 94 serdev_device_write_flush(mcu->serdev); in qnap_mcu_write() 96 return serdev_device_write(mcu->serdev, tx, length, HZ); in qnap_mcu_write() 102 struct qnap_mcu *mcu = dev_get_drvdata(dev); in qnap_mcu_receive_buf() local 103 struct qnap_mcu_reply *reply = &mcu->reply; in qnap_mcu_receive_buf() 145 int qnap_mcu_exec(struct qnap_mcu *mcu, in qnap_mcu_exec() argument 151 struct qnap_mcu_reply *reply = &mcu->reply; in qnap_mcu_exec() 155 dev_err(&mcu->serdev->dev, "expected data too big for receive buffer"); in qnap_mcu_exec() 159 mutex_lock(&mcu->bus_lock); in qnap_mcu_exec() [all …]
|
/linux/drivers/hwmon/ ! |
H A D | sg2042-mcu.c | 41 struct sg2042_mcu_data *mcu = seqf->private; \ 43 ret = i2c_smbus_read_byte_data(mcu->client, (_reg)); \ 60 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in reset_count_show() local 63 ret = i2c_smbus_read_byte_data(mcu->client, REG_RST_COUNT); in reset_count_show() 74 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in uptime_show() local 78 ret = i2c_smbus_read_i2c_block_data(mcu->client, REG_UPTIME, in uptime_show() 91 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in reset_reason_show() local 94 ret = i2c_smbus_read_byte_data(mcu->client, REG_RESET_REASON); in reset_reason_show() 105 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in repower_policy_show() local 109 ret = i2c_smbus_read_byte_data(mcu->client, REG_REPOWER_POLICY); in repower_policy_show() [all …]
|
H A D | qnap-mcu-hwmon.c | 17 struct qnap_mcu *mcu; member 39 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_rpm() 57 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_pwm() 73 return qnap_mcu_exec_with_ack(hwm->mcu, cmd, sizeof(cmd)); in qnap_mcu_hwmon_set_pwm() 83 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_temp() 294 struct qnap_mcu *mcu = dev_get_drvdata(pdev->dev.parent); in qnap_mcu_hwmon_probe() local 306 hwm->mcu = mcu; in qnap_mcu_hwmon_probe()
|
/linux/drivers/leds/ ! |
H A D | leds-qnap-mcu.c | 23 struct qnap_mcu *mcu; member 49 return qnap_mcu_exec_with_ack(err_led->mcu, cmd, sizeof(cmd)); in qnap_mcu_err_led_set() 75 return qnap_mcu_exec_with_ack(err_led->mcu, cmd, sizeof(cmd)); in qnap_mcu_err_led_blink_set() 78 static int qnap_mcu_register_err_led(struct device *dev, struct qnap_mcu *mcu, int num_err_led) in qnap_mcu_register_err_led() argument 87 err_led->mcu = mcu; in qnap_mcu_register_err_led() 113 struct qnap_mcu *mcu; member 142 return qnap_mcu_exec_with_ack(usb_led->mcu, cmd, sizeof(cmd)); in qnap_mcu_usb_led_set() 166 return qnap_mcu_exec_with_ack(usb_led->mcu, cmd, sizeof(cmd)); in qnap_mcu_usb_led_blink_set() 169 static int qnap_mcu_register_usb_led(struct device *dev, struct qnap_mcu *mcu) in qnap_mcu_register_usb_led() argument 178 usb_led->mcu = mcu; in qnap_mcu_register_usb_led() [all …]
|
/linux/drivers/net/wireless/mediatek/mt76/ ! |
H A D | mt76x02_usb_mcu.c | 26 WARN_ON_ONCE(len / 8 != usb->mcu.rp_len); in mt76x02u_multiple_mcu_reads() 28 for (i = 0; i < usb->mcu.rp_len; i++) { in mt76x02u_multiple_mcu_reads() 29 u32 reg = get_unaligned_le32(data + 8 * i) - usb->mcu.base; in mt76x02u_multiple_mcu_reads() 32 WARN_ON_ONCE(usb->mcu.rp[i].reg != reg); in mt76x02u_multiple_mcu_reads() 33 usb->mcu.rp[i].value = val; in mt76x02u_multiple_mcu_reads() 40 u8 *data = usb->mcu.data; in mt76x02u_mcu_wait_resp() 52 if (usb->mcu.rp) in mt76x02u_mcu_wait_resp() 83 seq = ++dev->mcu.msg_seq & 0xf; in __mt76x02u_mcu_send_msg() 85 seq = ++dev->mcu.msg_seq & 0xf; in __mt76x02u_mcu_send_msg() 120 mutex_lock(&dev->mcu.mutex); in mt76x02u_mcu_send_msg() [all …]
|
H A D | mcu.c | 41 wait_event_timeout(dev->mcu.wait, in mt76_mcu_get_response() 42 (!skb_queue_empty(&dev->mcu.res_q) || in mt76_mcu_get_response() 45 return skb_dequeue(&dev->mcu.res_q); in mt76_mcu_get_response() 51 skb_queue_tail(&dev->mcu.res_q, skb); in mt76_mcu_rx_event() 52 wake_up(&dev->mcu.wait); in mt76_mcu_rx_event() 88 mutex_lock(&dev->mcu.mutex); in mt76_mcu_skb_send_and_get_msg() 110 expires = jiffies + dev->mcu.timeout; in mt76_mcu_skb_send_and_get_msg() 132 mutex_unlock(&dev->mcu.mutex); in mt76_mcu_skb_send_and_get_msg()
|
H A D | mt76x02_mcu.c | 51 mutex_lock(&mdev->mcu.mutex); in mt76x02_mcu_msg_send() 53 seq = ++mdev->mcu.msg_seq & 0xf; in mt76x02_mcu_msg_send() 55 seq = ++mdev->mcu.msg_seq & 0xf; in mt76x02_mcu_msg_send() 76 mutex_unlock(&mdev->mcu.mutex); in mt76x02_mcu_msg_send() 153 while ((skb = skb_dequeue(&dev->mt76.mcu.res_q)) != NULL) in mt76x02_mcu_cleanup()
|
H A D | sdio_txrx.c | 188 mt76s_tx_pick_quota(struct mt76_sdio *sdio, bool mcu, int buf_sz, in mt76s_tx_pick_quota() argument 196 if (mcu && sdio->hw_ver == MT76_CONNAC2_SDIO) in mt76s_tx_pick_quota() 199 if (mcu) { in mt76s_tx_pick_quota() 215 mt76s_tx_update_quota(struct mt76_sdio *sdio, bool mcu, int pse_size, in mt76s_tx_update_quota() argument 218 if (mcu) { in mt76s_tx_update_quota() 248 bool mcu = q == dev->q_mcu[MT_MCUQ_WM]; in mt76s_tx_run_queue() local 279 if (mt76s_tx_pick_quota(sdio, mcu, e->buf_sz, &pse_sz, in mt76s_tx_run_queue() 308 mt76s_tx_update_quota(sdio, mcu, pse_sz, ple_sz); in mt76s_tx_run_queue()
|
/linux/drivers/net/wireless/mediatek/mt7601u/ ! |
H A D | mcu.c | 70 struct urb *urb = dev->mcu.resp.urb; in mt7601u_mcu_wait_resp() 75 if (!wait_for_completion_timeout(&dev->mcu.resp_cmpl, in mt7601u_mcu_wait_resp() 82 rxfce = get_unaligned_le32(dev->mcu.resp.buf); in mt7601u_mcu_wait_resp() 86 &dev->mcu.resp, GFP_KERNEL, in mt7601u_mcu_wait_resp() 88 &dev->mcu.resp_cmpl); in mt7601u_mcu_wait_resp() 124 mutex_lock(&dev->mcu.mutex); in mt7601u_mcu_msg_send() 128 seq = ++dev->mcu.msg_seq & 0xf; in mt7601u_mcu_msg_send() 132 if (dev->mcu.resp_cmpl.done) in mt7601u_mcu_msg_send() 148 mutex_unlock(&dev->mcu.mutex); in mt7601u_mcu_msg_send() 495 mutex_init(&dev->mcu.mutex); in mt7601u_mcu_init() [all …]
|
/linux/drivers/input/misc/ ! |
H A D | qnap-mcu-input.c | 24 struct qnap_mcu *mcu; member 39 ret = qnap_mcu_exec(idev->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_input_poll() 60 qnap_mcu_exec_with_ack(idev->mcu, cmd, sizeof(cmd)); in qnap_mcu_input_beeper_work() 94 struct qnap_mcu *mcu = dev_get_drvdata(pdev->dev.parent); in qnap_mcu_input_probe() local 110 idev->mcu = mcu; in qnap_mcu_input_probe()
|
/linux/drivers/thermal/ ! |
H A D | khadas_mcu_fan.c | 20 struct khadas_mcu *mcu; member 30 ret = regmap_write(ctx->mcu->regmap, KHADAS_MCU_CMD_FAN_STATUS_CTRL_REG, in khadas_mcu_fan_set_level() 81 struct khadas_mcu *mcu = dev_get_drvdata(pdev->dev.parent); in khadas_mcu_fan_probe() local 90 ctx->mcu = mcu; in khadas_mcu_fan_probe()
|
/linux/include/linux/mfd/ ! |
H A D | qnap-mcu.h | 20 int qnap_mcu_exec(struct qnap_mcu *mcu, 23 int qnap_mcu_exec_with_ack(struct qnap_mcu *mcu,
|
/linux/drivers/perf/ ! |
H A D | xgene_pmu.c | 343 XGENE_PMU_EVENT_ATTR(mcu-request, 0x12), 344 XGENE_PMU_EVENT_ATTR(mcu-rd-request, 0x13), 345 XGENE_PMU_EVENT_ATTR(mcu-hp-rd-request, 0x14), 346 XGENE_PMU_EVENT_ATTR(mcu-wr-request, 0x15), 347 XGENE_PMU_EVENT_ATTR(mcu-rd-proceed-all, 0x16), 348 XGENE_PMU_EVENT_ATTR(mcu-rd-proceed-cancel, 0x17), 349 XGENE_PMU_EVENT_ATTR(mcu-rd-response, 0x18), 350 XGENE_PMU_EVENT_ATTR(mcu-rd-proceed-speculative-all, 0x19), 351 XGENE_PMU_EVENT_ATTR(mcu-rd-proceed-speculative-cancel, 0x1a), 352 XGENE_PMU_EVENT_ATTR(mcu-wr-proceed-all, 0x1b), [all …]
|
/linux/arch/riscv/boot/dts/sophgo/ ! |
H A D | sg2044-sophgo-srd3-10.dts | 59 mcu: syscon@17 { label 60 compatible = "sophgo,sg2044-hwmon-mcu", "sophgo,sg2042-hwmon-mcu";
|
H A D | sg2042-milkv-pioneer.dts | 60 mcu: syscon@17 { label 61 compatible = "sophgo,sg2042-hwmon-mcu"; 159 thermal-sensors = <&mcu 0>; 213 thermal-sensors = <&mcu 1>;
|
/linux/arch/arm64/boot/dts/ti/ ! |
H A D | k3-j721s2-common-proc-board.dts | 209 mcu_uart0_pins_default: mcu-uart0-default-pins { 219 mcu_cpsw_pins_default: mcu-cpsw-default-pins { 236 mcu_mdio_pins_default: mcu-mdio-default-pins { 243 mcu_mcan0_pins_default: mcu-mcan0-default-pins { 250 mcu_mcan1_pins_default: mcu-mcan1-default-pins { 257 mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-default-pins { 264 mcu_mcan1_gpio_pins_default: mcu-mcan1-gpio-default-pins { 270 mcu_adc0_pins_default: mcu-adc0-default-pins { 283 mcu_adc1_pins_default: mcu-adc1-default-pins { 298 mcu_fss0_ospi1_pins_default: mcu-fss0-ospi1-default-pins {
|