Home
last modified time | relevance | path

Searched full:mcu (Results 1 – 25 of 404) sorted by relevance

12345678910>>...17

/linux-6.14.4/arch/powerpc/platforms/83xx/
Dmcu_mpc8349emitx.c3 * Power Management and GPIO expander driver for MPC8349E-mITX-compatible MCU
24 * I don't have specifications for the MCU firmware, I found this register
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()
51 pr_err("MCU status reg read failed.\n"); 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()
[all …]
/linux-6.14.4/drivers/platform/cznic/
Dturris-omnia-mcu-watchdog.c3 * CZ.NIC's Turris Omnia MCU watchdog driver
16 #include <linux/turris-omnia-mcu-interface.h>
17 #include "turris-omnia-mcu.h"
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
[all …]
Dturris-omnia-mcu-base.c3 * CZ.NIC's Turris Omnia MCU driver
19 #include <linux/turris-omnia-mcu-interface.h>
20 #include "turris-omnia-mcu.h"
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
[all …]
Dturris-omnia-mcu-gpio.c3 * CZ.NIC's Turris Omnia MCU GPIO and IRQ driver
25 #include <linux/turris-omnia-mcu-interface.h>
26 #include "turris-omnia-mcu.h"
233 static int omnia_ctl_cmd_locked(struct omnia_mcu *mcu, u8 cmd, u16 val, u16 mask) in omnia_ctl_cmd_locked() argument
257 return omnia_cmd_write(mcu->client, buf, len); in omnia_ctl_cmd_locked()
260 static int omnia_ctl_cmd(struct omnia_mcu *mcu, u8 cmd, u16 val, u16 mask) in omnia_ctl_cmd() argument
262 guard(mutex)(&mcu->lock); in omnia_ctl_cmd()
264 return omnia_ctl_cmd_locked(mcu, cmd, val, mask); in omnia_ctl_cmd()
277 struct omnia_mcu *mcu = gpiochip_get_data(gc); in omnia_gpio_get_direction() local
282 scoped_guard(mutex, &mcu->lock) { in omnia_gpio_get_direction()
[all …]
Dturris-omnia-mcu-sys-off-wakeup.c3 * CZ.NIC's Turris Omnia MCU system off and RTC wakeup driver
6 * real-time clock), rather the MCU implements a wakeup from powered off state
7 * at a specified time relative to MCU boot, and we expose this feature via RTC
25 #include <linux/turris-omnia-mcu-interface.h>
26 #include "turris-omnia-mcu.h"
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()
[all …]
Dturris-omnia-mcu-trng.c3 * CZ.NIC's Turris Omnia MCU TRNG driver
21 #include <linux/turris-omnia-mcu-interface.h>
22 #include "turris-omnia-mcu.h"
28 struct omnia_mcu *mcu = dev_id; in omnia_trng_irq_handler() local
30 complete(&mcu->trng_entropy_ready); in omnia_trng_irq_handler()
37 struct omnia_mcu *mcu = container_of(rng, struct omnia_mcu, trng); in omnia_trng_read() local
41 if (!wait && !completion_done(&mcu->trng_entropy_ready)) in omnia_trng_read()
45 if (wait_for_completion_interruptible(&mcu->trng_entropy_ready)) in omnia_trng_read()
48 err = omnia_cmd_read(mcu->client, in omnia_trng_read()
62 int omnia_mcu_register_trng(struct omnia_mcu *mcu) in omnia_mcu_register_trng() argument
[all …]
Dturris-omnia-mcu.h3 * CZ.NIC's Turris Omnia MCU driver
26 * @type: MCU type (STM32, GD32, MKL, or unknown)
27 * @features: bitmap of features supported by the MCU firmware
28 * @board_serial_number: board serial number, if stored in MCU
29 * @board_first_mac: board first MAC address, if stored in MCU
30 * @board_revision: board revision, if stored in MCU
41 * @button_release_emul_work: front button release emulation work, used with old MCU firmware
45 * determine which interrupt events occurred, used with old MCU
52 * @rtc_alarm: RTC alarm that was set for the board to wake up on, in MCU time
53 * (seconds since last MCU reset)
[all …]
DMakefile3 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_SYSOFF_WAKEUP) += turris-omnia-mcu-sys-off-wakeup.o
7 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_TRNG) += turris-omnia-mcu-trng.o
8 turris-omnia-mcu-$(CONFIG_TURRIS_OMNIA_MCU_WATCHDOG) += turris-omnia-mcu-watchdog.o
DKconfig17 tristate "Turris Omnia MCU driver"
26 called turris-omnia-mcu.
31 bool "Turris Omnia MCU GPIOs"
37 Say Y here to add support for controlling MCU GPIO pins and receiving
38 MCU interrupts on CZ.NIC's Turris Omnia.
53 bool "Turris Omnia MCU system off and RTC wakeup"
62 bool "Turris Omnia MCU watchdog"
68 Omnia MCU.
71 bool "Turris Omnia MCU true random number generator"
77 provided by CZ.NIC's Turris Omnia MCU.
/linux-6.14.4/drivers/mfd/
Dqnap-mcu.c12 #include <linux/mfd/qnap-mcu.h>
57 * @version: MCU firmware version
68 * The QNAP-MCU uses a basic XOR checksum.
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
[all …]
/linux-6.14.4/drivers/hwmon/
Dsg2042-mcu.c5 * Sophgo power control mcu for SG2042
17 /* fixed MCU registers */
41 struct sg2042_mcu_data *mcu = seqf->private; \
43 ret = i2c_smbus_read_byte_data(mcu->client, (_reg)); \
63 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in reset_count_show() local
66 ret = i2c_smbus_read_byte_data(mcu->client, REG_RST_COUNT); in reset_count_show()
77 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in uptime_show() local
81 ret = i2c_smbus_read_i2c_block_data(mcu->client, REG_UPTIME, in uptime_show()
94 struct sg2042_mcu_data *mcu = dev_get_drvdata(dev); in reset_reason_show() local
97 ret = i2c_smbus_read_byte_data(mcu->client, REG_RESET_REASON); in reset_reason_show()
[all …]
Dqnap-mcu-hwmon.c4 * Driver for hwmon elements found on QNAP-MCU devices
11 #include <linux/mfd/qnap-mcu.h>
18 struct qnap_mcu *mcu; member
40 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_rpm()
58 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_pwm()
74 return qnap_mcu_exec_with_ack(hwm->mcu, cmd, sizeof(cmd)); in qnap_mcu_hwmon_set_pwm()
84 ret = qnap_mcu_exec(hwm->mcu, cmd, sizeof(cmd), reply, sizeof(reply)); in qnap_mcu_hwmon_get_temp()
295 struct qnap_mcu *mcu = dev_get_drvdata(pdev->dev.parent); in qnap_mcu_hwmon_probe() local
307 hwm->mcu = mcu; in qnap_mcu_hwmon_probe()
342 to_of_node(hwm->fan_node), "qnap-mcu-hwmon", in qnap_mcu_hwmon_probe()
[all …]
/linux-6.14.4/drivers/leds/
Dleds-qnap-mcu.c3 * Driver for LEDs found on QNAP MCU devices
9 #include <linux/mfd/qnap-mcu.h>
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()
[all …]
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/
Dmt76x02_usb_mcu.c26 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()
60 dev_err(dev->dev, "error: MCU resp evt:%lx seq:%hhx-%lx\n", 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()
[all …]
Dmcu.c41 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()
84 mutex_lock(&dev->mcu.mutex); in mt76_mcu_skb_send_and_get_msg()
106 expires = jiffies + dev->mcu.timeout; in mt76_mcu_skb_send_and_get_msg()
128 mutex_unlock(&dev->mcu.mutex); in mt76_mcu_skb_send_and_get_msg()
/linux-6.14.4/Documentation/devicetree/bindings/iio/
Dsamsung,sensorhub-rinato.yaml13 Sensorhub is a MCU which manages several sensors and also plays the role
28 ap-mcu-gpios:
33 mcu-ap-gpios:
38 mcu-reset-gpios:
47 - ap-mcu-gpios
48 - mcu-ap-gpios
49 - mcu-reset-gpios
68 ap-mcu-gpios = <&gpx0 0 0>;
69 mcu-ap-gpios = <&gpx0 4 0>;
70 mcu-reset-gpios = <&gpx0 5 0>;
/linux-6.14.4/drivers/input/misc/
Dqnap-mcu-input.c10 #include <linux/mfd/qnap-mcu.h>
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()
74 /* beep runtime is determined by the MCU */ in qnap_mcu_input_event()
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()
114 input->name = "qnap-mcu"; in qnap_mcu_input_probe()
115 input->phys = "qnap-mcu-input/input0"; in qnap_mcu_input_probe()
145 .name = "qnap-mcu-input",
[all …]
/linux-6.14.4/drivers/thermal/
Dkhadas_mcu_fan.c3 * Khadas MCU Controlled FAN driver
12 #include <linux/mfd/khadas-mcu.h>
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()
94 dev->parent->of_node, "khadas-mcu-fan", ctx, in khadas_mcu_fan_probe()
98 dev_err(dev, "Failed to register khadas-mcu-fan as cooling device: %d\n", in khadas_mcu_fan_probe()
142 { .name = "khadas-mcu-fan-ctrl", },
151 .name = "khadas-mcu-fan-ctrl",
[all …]
/linux-6.14.4/drivers/net/wireless/mediatek/mt7601u/
Dmcu.c16 #include "mcu.h"
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()
93 dev_err(dev->dev, "Error: MCU resp urb failed:%d\n", in mt7601u_mcu_wait_resp()
100 dev_err(dev->dev, "Error: MCU resp evt:%lx seq:%hhx-%lx!\n", 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()
[all …]
/linux-6.14.4/Documentation/devicetree/bindings/thermal/
Dmediatek,lvts-thermal.yaml24 - mediatek,mt8188-lvts-mcu
26 - mediatek,mt8192-lvts-mcu
28 - mediatek,mt8195-lvts-mcu
41 description: LVTS reset for clearing temporary data on AP/MCU.
67 - mediatek,mt8188-lvts-mcu
69 - mediatek,mt8192-lvts-mcu
85 - mediatek,mt8195-lvts-mcu
117 compatible = "mediatek,mt8195-lvts-mcu";
/linux-6.14.4/Documentation/devicetree/bindings/powerpc/fsl/
Dmcu-mpc8349emitx.txt1 Freescale MPC8349E-mITX-compatible Power Management Micro Controller Unit (MCU)
4 - compatible : "fsl,<mcu-chip>-<board>", "fsl,mcu-mpc8349emitx".
11 mcu@a {
14 "fsl,mcu-mpc8349emitx";
/linux-6.14.4/Documentation/hwmon/
Dsg2042-mcu.rst3 Kernel driver sg2042-mcu
8 * Onboard MCU for sg2042
12 Prefix: 'sg2042-mcu'
21 This driver supprts hardware monitoring for onboard MCU with
46 (the MCU device is in i2c subsystem):
52 uptime RO Seconds after the MCU is powered
69 data in ``/sys/kernel/debug/sg2042-mcu/*/``.
74 firmware_version 0x%02x firmware version of the MCU
77 mcu_type %d type of the MCU: 0 is STM32, 1 is GD32
/linux-6.14.4/Documentation/devicetree/bindings/hwmon/
Dnsa320-mcu.txt5 - compatible : "zyxel,nsa320-mcu"
6 - data-gpios : The GPIO pin connected to the data line on the MCU
7 - clk-gpios : The GPIO pin connected to the clock line on the MCU
8 - act-gpios : The GPIO pin connected to the active line on the MCU
13 compatible = "zyxel,nsa320-mcu";
/linux-6.14.4/Documentation/devicetree/bindings/firmware/
Dcznic,turris-omnia-mcu.yaml4 $id: http://devicetree.org/schemas/firmware/cznic,turris-omnia-mcu.yaml#
7 title: CZ.NIC's Turris Omnia MCU
13 The MCU on Turris Omnia acts as a system controller providing additional
18 const: cznic,turris-omnia-mcu
21 description: MCU I2C slave address
74 compatible = "cznic,turris-omnia-mcu";
/linux-6.14.4/drivers/net/ethernet/mediatek/
Dmtk_wed_mcu.c69 wait_event_timeout(wo->mcu.wait, !skb_queue_empty(&wo->mcu.res_q), in mtk_wed_mcu_get_response()
71 return skb_dequeue(&wo->mcu.res_q); in mtk_wed_mcu_get_response()
76 skb_queue_tail(&wo->mcu.res_q, skb); in mtk_wed_mcu_rx_event()
77 wake_up(&wo->mcu.wait); in mtk_wed_mcu_rx_event()
140 wo->mcu.timeout = 20 * HZ; in mtk_wed_mcu_skb_send_msg()
147 u16 seq = ++wo->mcu.seq; in mtk_wed_mcu_skb_send_msg()
150 seq = ++wo->mcu.seq; in mtk_wed_mcu_skb_send_msg()
202 mutex_lock(&wo->mcu.mutex); in mtk_wed_mcu_send_msg()
208 expires = jiffies + wo->mcu.timeout; in mtk_wed_mcu_send_msg()
216 mutex_unlock(&wo->mcu.mutex); in mtk_wed_mcu_send_msg()
[all …]

12345678910>>...17