Home
last modified time | relevance | path

Searched +full:turris +full:- +full:omnia +full:- +full:mcu (Results 1 – 17 of 17) sorted by relevance

/linux-6.14.4/drivers/platform/cznic/
DMakefile1 # SPDX-License-Identifier: GPL-2.0-only
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_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
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
4 # see Documentation/kbuild/kconfig-language.rst.
8 bool "Platform support for CZ.NIC's Turris hardware"
11 Say Y here to be able to choose driver support for CZ.NIC's Turris
17 tristate "Turris Omnia MCU driver"
22 microcontroller on the CZ.NIC's Turris Omnia SOHO router.
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.
[all …]
Dturris-omnia-mcu-trng.c1 // SPDX-License-Identifier: GPL-2.0
3 * 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()
46 return -ERESTARTSYS; in omnia_trng_read()
[all …]
Dturris-omnia-mcu-watchdog.c1 // SPDX-License-Identifier: GPL-2.0
3 * 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()
[all …]
Dturris-omnia-mcu-base.c1 // SPDX-License-Identifier: GPL-2.0
3 * CZ.NIC's Turris Omnia MCU driver
19 #include <linux/turris-omnia-mcu-interface.h>
20 #include "turris-omnia-mcu.h"
33 msgs[0].addr = client->addr; in omnia_cmd_write_read()
40 msgs[1].addr = client->addr; in omnia_cmd_write_read()
47 ret = i2c_transfer(client->adapter, msgs, num); in omnia_cmd_write_read()
51 return -EIO; in omnia_cmd_write_read()
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()
[all …]
Dturris-omnia-mcu-sys-off-wakeup.c1 // SPDX-License-Identifier: GPL-2.0
3 * 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
73 alrm->enabled = !!wakeup; in omnia_read_alarm()
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
[all …]
Dturris-omnia-mcu-gpio.c1 // SPDX-License-Identifier: GPL-2.0
3 * CZ.NIC's Turris Omnia MCU GPIO and IRQ driver
14 #include <linux/devm-helpers.h>
25 #include <linux/turris-omnia-mcu-interface.h>
26 #include "turris-omnia-mcu.h"
32 /* GPIOs with value read from the 16-bit wide status */
35 [6] = "Front USB3 port over-current",
36 [7] = "Rear USB3 port over-current",
41 /* GPIOs with value read from the 32-bit wide extended status */
64 /* GPIOs with value read from the 16-bit wide extended control status */
[all …]
Dturris-omnia-mcu.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * CZ.NIC's Turris Omnia MCU driver
24 * struct omnia_mcu - driver private data structure
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
[all …]
/linux-6.14.4/Documentation/devicetree/bindings/firmware/
Dcznic,turris-omnia-mcu.yaml1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/firmware/cznic,turris-omnia-mcu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: CZ.NIC's Turris Omnia MCU
10 - Marek Behún <[email protected]>
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
27 interrupt-controller: true
[all …]
/linux-6.14.4/drivers/leds/
Dleds-turris-omnia.c1 // SPDX-License-Identifier: GPL-2.0
3 * CZ.NIC's Turris Omnia LEDs driver
9 #include <linux/led-class-multicolor.h>
13 #include <linux/turris-omnia-mcu-interface.h>
18 /* MCU controller I2C address 0x2a, needed for detecting MCU features */
22 * struct omnia_led - per-LED part of driver private data structure
23 * @mc_cdev: multi-color LED class device
24 * @subled_info: per-channel information
25 * @cached_channels: cached values of per-channel brightness that was sent to the MCU
27 * @hwtrig: whether the LED blinking was offloaded to the MCU
[all …]
DMakefile1 # SPDX-License-Identifier: GPL-2.0
4 obj-$(CONFIG_NEW_LEDS) += led-core.o
5 obj-$(CONFIG_LEDS_CLASS) += led-class.o
6 obj-$(CONFIG_LEDS_CLASS_FLASH) += led-class-flash.o
7 obj-$(CONFIG_LEDS_CLASS_MULTICOLOR) += led-class-multicolor.o
8 obj-$(CONFIG_LEDS_TRIGGERS) += led-triggers.o
10 # LED Platform Drivers (keep this sorted, M-| sort)
11 obj-$(CONFIG_LEDS_88PM860X) += leds-88pm860x.o
12 obj-$(CONFIG_LEDS_ACER_A500) += leds-acer-a500.o
13 obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o
[all …]
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
56 See Documentation/ABI/testing/sysfs-class-led for details.
65 This option enables support for on-chip LED drivers found on Marvell
72 This option enables support for the AN30259A 3-channel
76 will be called leds-an30259a.
86 If you're looking for APU2/3, use the pcengines-apu2 driver.
90 module will be called leds-apu.
112 - AW20036 (3x12) 36 LEDs
113 - AW20054 (6x9) 54 LEDs
114 - AW20072 (6x12) 72 LEDs
[all …]
/linux-6.14.4/Documentation/devicetree/bindings/leds/
Dcznic,turris-omnia-leds.yaml1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
3 ---
4 $id: http://devicetree.org/schemas/leds/cznic,turris-omnia-leds.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: CZ.NIC's Turris Omnia LEDs driver
10 - Marek Behún <[email protected]>
14 Turris Omnia router. There are 12 RGB LEDs that are controlled by a
20 const: cznic,turris-omnia-leds
32 "#address-cells":
35 "#size-cells":
[all …]
/linux-6.14.4/Documentation/ABI/testing/
Dsysfs-bus-i2c-devices-turris-omnia-mcu7 Only available if board information is burned in the MCU (older
8 revisions have board information burned in the ATSHA204-A chip).
16 Description: (RO) Contains device first MAC address. Each Turris Omnia is
20 Only available if board information is burned in the MCU (older
21 revisions have board information burned in the ATSHA204-A chip).
29 Description: (RW) The front button on the Turris Omnia router can be
35 - ``mcu`` makes the button press event be handled by the MCU to
37 - ``cpu`` makes the button press event be handled by the CPU.
46 Turris Omnia router support powering off the router into true
63 MCU firmware is too old, this file reads 0x0.
[all …]
/linux-6.14.4/arch/arm/boot/dts/marvell/
Darmada-385-turris-omnia.dts1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Device Tree file for the Turris Omnia
5 * Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
8 * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
11 /dts-v1/;
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/input/input.h>
15 #include <dt-bindings/leds/common.h>
16 #include "armada-385.dtsi"
19 model = "Turris Omnia";
[all …]
/linux-6.14.4/include/linux/
Dturris-omnia-mcu-interface.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 * CZ.NIC's Turris Omnia MCU I2C interface commands definitions
28 OMNIA_CMD_SET_WATCHDOG_STATE = 0x0B, /* 0 - disable
29 * 1 - enable / ping
81 /* available only at address 0x2b (LED-controller) */
86 /* available only at address 0x2b (LED-controller) */
152 * Therefore to consider bits 16 - 31 valid, one bit (20) was reserved
156 /* Bits 16 - 19 correspond to bits 0 - 3 of status word */
/linux-6.14.4/
DMAINTAINERS5 ---------------------------------------------------
21 W: *Web-page* with status/info
23 B: URI for where to file *bugs*. A web-page with detailed bug
28 patches to the given subsystem. This is either an in-tree file,
29 or a URI. See Documentation/maintainer/maintainer-entry-profile.rst
46 N: [^a-z]tegra all files whose path contains tegra
64 ----------------
83 3WARE SAS/SATA-RAID SCSI DRIVERS (3W-XXXX, 3W-9XXX, 3W-SAS)
85 L: linux-[email protected]
88 F: drivers/scsi/3w-*
[all …]