/linux-6.14.4/drivers/platform/cznic/ |
D | Makefile | 1 # 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
|
D | Kconfig | 1 # 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 …]
|
D | turris-omnia-mcu-trng.c | 1 // 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 …]
|
D | turris-omnia-mcu-watchdog.c | 1 // 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 …]
|
D | turris-omnia-mcu-base.c | 1 // 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 …]
|
D | turris-omnia-mcu-sys-off-wakeup.c | 1 // 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 …]
|
D | turris-omnia-mcu-gpio.c | 1 // 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 …]
|
D | turris-omnia-mcu.h | 1 /* 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/ |
D | cznic,turris-omnia-mcu.yaml | 1 # 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/ |
D | leds-turris-omnia.c | 1 // 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 …]
|
D | Makefile | 1 # 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 …]
|
D | Kconfig | 1 # 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/ |
D | cznic,turris-omnia-leds.yaml | 1 # 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/ |
D | sysfs-bus-i2c-devices-turris-omnia-mcu | 7 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/ |
D | armada-385-turris-omnia.dts | 1 // 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/ |
D | turris-omnia-mcu-interface.h | 1 /* 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/ |
D | MAINTAINERS | 5 --------------------------------------------------- 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 …]
|