1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

1934 Commits

Author SHA1 Message Date
Benjamin Valentin
fcece44394 drivers/l3gxxxx: fix check for l3g4200d_ng 2023-04-28 17:24:15 +02:00
Gunar Schorcht
88cabbae64 drivers/usbdev_synopsys_dwc2: set USBDEV_SET_ADDR_AFTER_STATUS
DWC2 core requires that the device address has to be set directly after SETUP stage and not after the associated STATUS stage.
2023-04-16 17:14:08 +02:00
Gunar Schorcht
d675cd7290 drivers/periph_usbdev: define USBDEV_SET_ADDR_AFTER_STATUS
The address in the USB device can be set either directly after the SETUP stage on receipt of the `SET ADDRESS Request` or after the associated status stage. When the USB device address has to be set depends on the hardware. If `USBDEV_SET_ADDR_AFTER_STATUS` has the value 1 (default), the address is only set in the USB device after the status stage. Overwrite it with 0 in `periph_cpu.h` to set the address already directly after the SETUP stage.
2023-04-16 17:14:08 +02:00
Gunar Schorcht
1d4d3e47b8 drivers/mtd_default: expose one SD Card and one MTD emulated 2023-04-12 06:27:12 +02:00
Gunar Schorcht
609c090ceb drivers/mtd_emulatd: MTD emulated in RAM for testing
This driver provides support for MTDs emulated in RAM to test MTD-based applications on boards that do not provide MTDs in hardware.
2023-04-11 17:42:10 +02:00
Gunar Schorcht
756197316d drivers/mtd: small fixes in doc 2023-04-11 17:42:10 +02:00
bors[bot]
513676f6e0
Merge #17086
17086: usbdev: Add dedicated stall functions r=benpicco a=bergzand

### Contribution description

This PR adds dedicated stall functions for usbdev peripherals. Two
functions are added. The first function (usbdev_ep_stall) to enable and
disable the stall condition on generic endpoints. The second function is
a dedicated function to set the stall condition on endpoint zero in both
directions. This status can only be set and should automatically be
cleared by the usbdev implementation (or hardware) after a new setup
request is received from the host.

### Testing procedure

- examples/usbus_minimal should still enumerate correctly on the host side.
- #17085 can be used to demonstrate the ep0_stall function with the `tests/usbus_cdc_acm_stdio/` test

### Issues/PRs references

None

Co-authored-by: Koen Zandberg <koen@bergzand.net>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-03-10 00:12:40 +00:00
Benjamin Valentin
092009e5ae drivers/mtd_default: add helper function for default MTD devices 2023-03-07 00:53:05 +01:00
608322a4ce
usbdev: Add dedicated stall functions
This commit adds dedicated stall functions for usbdev peripherals. Two
functions are added. The first function (usbdev_ep_stall) to enable and
disable the stall condition on generic endpoints. The second function is
a dedicated function to set the stall condition on endpoint zero in both
directions. This status can only be set and should automatically be
cleared by the usbdev implementation (or hardware) after a new setup
request is received from the host.
2023-02-28 11:00:05 +01:00
Marian Buschsieweke
cdcec5b3f9
drivers/saul: use flash_utils 2023-02-27 12:31:04 +01:00
f4d4784034
matrix_keypad: Move documentation to doxygen group 2023-02-23 11:39:11 +01:00
bors[bot]
41b54d8594
Merge #18392
18392: drivers/servo: reimplement with high level interface r=benpicco a=maribu

### Contribution description

The previous servo driver didn't provide any benefit over using PWM directly, as users controlled the servo in terms of PWM duty cycles. This changes the interface to provide a high level interface that abstracts the gory PWM details.

In addition, a SAUL layer and auto-initialization is provided.

### Testing procedure

The test application provides access to the servo driver via the `saul` shell command.

```
> saul
2022-08-02 22:12:31,826 # saul
2022-08-02 22:12:31,827 # ID	Class		Name
2022-08-02 22:12:31,830 # #0	ACT_SWITCH	LD1(green)
2022-08-02 22:12:31,832 # #1	ACT_SWITCH	LD2(blue)
2022-08-02 22:12:31,834 # #2	ACT_SWITCH	LD3(red)
2022-08-02 22:12:31,837 # #3	SENSE_BTN	B1(User button)
2022-08-02 22:12:31,838 # #4	ACT_SERVO	servo
> saul write 4 0
2022-08-02 22:12:41,443 # saul write 4 0
2022-08-02 22:12:41,445 # Writing to device #4 - servo
2022-08-02 22:12:41,447 # Data:	             0 
2022-08-02 22:12:41,450 # [servo] setting 0 to 2949 (0 / 255)
2022-08-02 22:12:41,453 # data successfully written to device #4
> saul write 4 256
2022-08-02 22:12:45,343 # saul write 4 256
2022-08-02 22:12:45,346 # Writing to device #4 - servo
2022-08-02 22:12:45,347 # Data:	           256 
2022-08-02 22:12:45,351 # [servo] setting 0 to 6865 (255 / 255)
2022-08-02 22:12:45,354 # data successfully written to device #4
```

Each write resulted in the MG90S servo that I connected to move to the corresponding position.

### Issues/PRs references

Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
2023-02-22 09:15:59 +00:00
Marian Buschsieweke
6dc2a60597
drivers/servo: reimplement with high level interface
The previous servo driver didn't provide any benefit over using PWM
directly, as users controlled the servo in terms of PWM duty cycles.
This changes the interface to provide a high level interface that
abstracts the gory PWM details.

In addition, a SAUL layer and auto-initialization is provided.

Co-authored-by: benpicco <benpicco@googlemail.com>
2023-02-22 10:00:04 +01:00
bors[bot]
37b64912d4
Merge #19256
19256: pkg/tinyusb: add GD32VF103 support r=gschorcht a=gschorcht

### Contribution description

This PR provides the tinyUSB support for GD32VF103 and enables the `tinyusb_device` feature as well as `stdio_tinyusb_cdc_acm` for GD32VF103 boards.

### Testing procedure

```
BOARD=sipeeed-longan-nano make -C tests/shell flash term
```
should work

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-21 16:53:06 +00:00
Benjamin Valentin
7884d6e7fe drivers/at24cxxx: merge mtd driver with at24cxxx.c 2023-02-17 10:55:21 +01:00
bors[bot]
2221cbfa9b
Merge #19258
19258: drivers/mtd_flashpage: implement pagewise API, don't use raw addresses r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Benjamin Valentin <benjamin.valentin@bht-berlin.de>
Co-authored-by: Benjamin Valentin <benpicco@beuth-hochschule.de>
2023-02-16 15:02:19 +00:00
Benjamin Valentin
5d5d88b271 drivers/mtd_flashpage: implement pagewise API 2023-02-16 15:50:52 +01:00
bors[bot]
5667814d2c
Merge #19270 #19271
19270: drivers/at24cxxx: implement _mtd_at24cxxx_read_page r=benpicco a=HendrikVE

### Contribution description

The function `read_page` was missing which lead to (from a user perspective) undefined behavior on the MTD layer.

### Testing procedure

Any application using MTD in conjunction with a board with an at24cxxx.


19271: core/xfa: disable asan on llvm r=benpicco a=Teufelchen1

### Contribution description
Hi! 🦎

When using llvm and address sanitation, the XFA trip the sanitizer.
This PR attempts to fix this by adding the `no_sanitize` attribute to the XFA macros. Sadly, this attribute is not known by gnu, a guard is hence needed. I'm open for alternatives as I dislike this solution but it is the best I could come up with.

### Testing procedure

Before this patch:

Go to `examples/gnrc_minimal` and run `TOOLCHAIN=llvm make all-asan` and then `make term`.
You should see an error similar to this:
```
==3374719==ERROR: AddressSanitizer: global-buffer-overflow on address 0x080774e0 at pc 0x0804af5e bp 0x0808eb88 sp 0x0808eb78
READ of size 4 at 0x080774e0 thread T0
    #0 0x804af5d in _auto_init_module /RIOT/sys/auto_init/auto_init.c:40
    #1 0x804af5d in auto_init /RIOT/sys/auto_init/auto_init.c:339
    #2 0x804b375 in main_trampoline /RIOT/core/lib/init.c:56
    #3 0xf76bc7b8 in makecontext (/lib32/libc.so.6+0x4a7b8)
...
``` 
After applying this PR, the example can be build and run with llvm or gcc, with or without asan.



Co-authored-by: Hendrik van Essen <hendrik.vanessen@ml-pa.com>
Co-authored-by: Teufelchen1 <bennet.blischke@haw-hamburg.de>
2023-02-15 17:03:30 +00:00
Hendrik van Essen
3837536a73 drivers/at24cxxx: implement read_page for mtd 2023-02-15 11:56:21 +01:00
bors[bot]
1c55118bd8
Merge #18257
18257: drivers/wdt: add periph_wdt_auto_start for early watchdog r=benpicco a=benpicco



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2023-02-13 21:09:07 +00:00
Benjamin Valentin
80fe4e5f26 sys/auto_init: add auto_init_wdt_{event, thread} modules 2023-02-13 15:06:24 +01:00
bors[bot]
f341ad6c9c
Merge #17045 #19243
17045: sys/coding: add XOR based coding module r=benpicco a=benpicco



19243: cpu/gd32v: add periph_gpio_ll and periph_gpio_ll_irq support r=benpicco a=gschorcht

### Contribution description

This PR provides the `periph_gpio_ll` and `periph_gpio_ll_irq` support for GD32VF103. Level triggered interrupts are emulated.

`periph_gpio_ll_irq` could be split off from this PR as a separate PR if necessary.

### Testing procedure

Use any GD32V board and connect PA0 -> PB0 and PA1 -> PB1 where PA is the output port and PB the input port. With these connections `tests/periph_gpio_ll` should work.
```
BOARD=sipeed-longan-nano make -j8 -C tests/periph_gpio_ll flash term
```

If necessary, change the input and output pins by setting the environment variables and connect the corresponding pins, for example for `seeedstudio-gd32` PA1 -> PB8 and PA8 -> PB9:
```
PIN_OUT_0=1 PIN_OUT_1=8  PIN_IN_0=8 PIN_IN_1=9 BOARD=seedstudio-gd32 make -j8 -C tests/periph_gpio_ll flash term
```

### Issues/PRs references


Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-07 17:39:20 +00:00
Gunar Schorcht
7e0d1df9c3 drivers/usbdev_synopsys_dwc2: add config type for GD32V 2023-02-07 00:49:42 +01:00
Gunar Schorcht
5217bc84a7 drivers/periph/gpio_ll: small doc fixes 2023-02-04 11:33:44 +01:00
bors[bot]
f3a487b5e4
Merge #12509
12509: black/white e-Paper/e-Ink display driver r=bergzand a=silkeh



Co-authored-by: Silke Hofstra <silke@slxh.eu>
2023-02-04 09:57:17 +00:00
bors[bot]
0fb6a09598
Merge #18903
18903: pkg/tinyusb: add tinyUSB netdev driver r=dylad a=gschorcht

### Contribution description

This PR adds the tinyUSB netdev driver.

The tinyUSB netdev driver is part of the tinyUSB package and is enabled by module `tinyusb_netdev`. It is available for boards that provide the `tinyusb_device` feature.

**Please note** Since the tinyUSB package is distinct from (and incompatible with) the USB stack provided around USBUS in RIOT (see USB), the tinyUSB netdev driver cannot be used together with with any USBUS device class.

The tinyUSB netdev driver uses Ethernet over USB and supports the following protocols:
- CDC ECM (Ethernet Control Model)
- CDC NCM (Network Control Model)
- RNDIS (Microsoft Remote NDIS)

While Linux and macOS support all these protocols, Microsoft Windows only supports the RNDIS protocol and since Windows version 11 also the CDC NCM protocol. macOS supports the RNDIS protocol since version 10.15 (Catalina).

Which protocol is used is selected by the corresponding pseudomodules `tinyusb_class_net_cdc_ecm`, `tinyusb_class_net_cdc_ncm` and `tinyusb_class_net_rndis`.

The CDC ECM protocol (`tinyusb_class_net_cdc_ecm`) and the RNDIS protocol (`tinyusb_class_net_rndis`) can be used simultaneously to support all operating systems, for example :
```
USEMODULE='tinyusb_netdev tinyusb_class_net_rndis tinyusb_class_net_cdc_ecm' \
BOARD=... make -C ... flash
 ```
In this case, the CDC ECM protocol is the default protocol and the RNDIS protocol the alternative protocol defined as second device configuration. The CDC NCM protocol cannot be used together with the CDC ECM or the RNDIS protocol.

This PR includes PR #18983 for now to be compilable. 

Comparison with USBUS CDC ECM (`nucleo-f767zi` board):
```
   text	   data	    bss	    dec	    hex	filename
  65916	    596	  18728	  85240	  14cf8	tests_pkg_tinyusb_netdev.elf
```
```
   text	   data	    bss	    dec	    hex	filename
  63120	    544	  15444	  79108	  13504	tests_usbus_cdc_ecm.elf

```

### Testing procedure

Use a board that is supported by tinyUSB. Compile and flash the test application for each protocol:

1. RNDIS
    ```
    BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
2. CDC ECM
    ```
    CLASS=tinyusb_class_net_cdc_ecm BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
3. CDC NCM
    ```
    CLASS=tinyusb_class_net_cdc_ncm BOARD=... make -j8 -C tests/pkg_tinyusb_netdev flash
    ```
For each test, a network interface should be added on the host. Use command `ifconfig` on USB device and on the host and check that both have a link local address. In syslog there should be an output like the following:
<details>

```
Nov 13 18:14:46 gunny8 kernel: [4611465.480025] usb 1-2.2: new full-speed USB device number 28 using xhci_hcd
Nov 13 18:14:47 gunny8 kernel: [4611465.581641] usb 1-2.2: New USB device found, idVendor=1209, idProduct=7d01, bcdDevice= 1.00
Nov 13 18:14:47 gunny8 kernel: [4611465.581646] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 13 18:14:47 gunny8 kernel: [4611465.581650] usb 1-2.2: Product: nucleo-f767zi
Nov 13 18:14:47 gunny8 kernel: [4611465.581653] usb 1-2.2: Manufacturer: RIOT-os.org
Nov 13 18:14:47 gunny8 kernel: [4611465.581654] usb 1-2.2: SerialNumber: 6591620BCB270283
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.1066] manager: (usb0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/528)
Nov 13 18:14:47 gunny8 kernel: [4611465.594604] rndis_host 1-2.2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2.2, RNDIS device, fa:db:7c:1b:58:80
Nov 13 18:14:47 gunny8 mtp-probe: checking bus 1, device 28: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2"
Nov 13 18:14:47 gunny8 mtp-probe: bus: 1, device: 28 was not an MTP device
Nov 13 18:14:47 gunny8 systemd-udevd[17796]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 kernel: [4611465.643852] rndis_host 1-2.2:1.0 enp0s20f0u2u2: renamed from usb0
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:usb0 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00001002
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.1833] device (usb0): interface index 508 renamed iface from 'usb0' to 'enp0s20f0u2u2'
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.1
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2037] device (enp0s20f0u2u2): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnetBridge: Adding interface enp0s20f0u2u2 index:508
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2075] device (enp0s20f0u2u2): carrier: link connected
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2129] settings: (enp0s20f0u2u2): created default wired connection 'Kabelgebundene Verbindung 2'
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <warn>  [1668359687.2142] device (enp0s20f0u2u2): connectivity: "/proc/sys/net/ipv4/conf/enp0s20f0u2u2/rp_filter" is set to "1". This might break connectivity checking for IPv4 on this device
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2151] device (enp0s20f0u2u2): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 upowerd[2845]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2
Nov 13 18:14:47 gunny8 systemd-udevd[17796]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2403] policy: auto-activating connection 'Kabelgebundene Verbindung 2' (0b1ae45e-c76e-3efb-a2cd-138ca2b2a59c)
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2414] device (enp0s20f0u2u2): Activation: starting connection 'Kabelgebundene Verbindung 2' (0b1ae45e-c76e-3efb-a2cd-138ca2b2a59c)
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2419] device (enp0s20f0u2u2): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2429] device (enp0s20f0u2u2): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2440] device (enp0s20f0u2u2): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
Nov 13 18:14:47 gunny8 NetworkManager[24229]: <info>  [1668359687.2445] dhcp4 (enp0s20f0u2u2): activation: beginning transaction (timeout in 45 seconds)
Nov 13 18:14:47 gunny8 vmnetBridge: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 vmnet-natd: RTM_NEWLINK: name:enp0s20f0u2u2 index:508 flags:0x00011043
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: Joining mDNS multicast group on interface enp0s20f0u2u2.IPv6 with address fe80::dba4:adb8:9ffe:d93e.
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: New relevant interface enp0s20f0u2u2.IPv6 for mDNS.
Nov 13 18:14:47 gunny8 avahi-daemon[1464]: Registering new address record for fe80::dba4:adb8:9ffe:d93e on enp0s20f0u2u2.*.
Nov 13 18:14:47 gunny8 kernel: [4611465.895046] userif-1: sent link down event.
Nov 13 18:14:47 gunny8 kernel: [4611465.895052] userif-1: sent link up event.
```

</details>

Ping from and to the host.

### Issues/PRs references

Depends on PR https://github.com/RIOT-OS/RIOT/pull/18983

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2023-02-03 09:32:29 +00:00
Gunar Schorcht
51bf9d4d7d drivers/vl6180x: driver for VL6180X ranging and ALS 2023-02-02 02:04:09 +01:00
Gunar Schorcht
5a270fe521 drivers/netdev: add tinyUSB netdev 2023-02-01 21:57:23 +01:00
Hendrik van Essen
cdefa6934c drivers/mfrc522: add new driver 2023-01-31 21:05:07 +01:00
Silke Hofstra
6cb8356eb2 epd_bw_spi: add implementation for disp_dev 2023-01-31 19:50:11 +01:00
Silke Hofstra
f4791a0280 epd_bw_spi: add generic black and white SPI e-Paper display driver
Add an initial implementation of a generic driver for black and white
e-paper displays. Includes parameters for the IL3829 display controller.
2023-01-31 19:50:11 +01:00
Jose Alamos
91a299cb7d
drivers/mrf24j40: add support for IEEE 802.15.4 Radio HAL 2023-01-19 15:31:06 +01:00
Benjamin Valentin
b8a6988e79 drivers/wdt: add periph_wdt_auto_start for early watchdog
Add an option to enable the watchdog early to detect hangs during
initialisation.
2023-01-14 23:21:24 +01:00
Benjamin Valentin
81625fd5f2 doc: sort all stdio implementations into sys_stdio group 2023-01-13 11:08:22 +01:00
bors[bot]
385569c7bf
Merge #17810 #18348 #19120
17810: drivers/slipdev: implement sleep states r=benpicco a=benpicco



18348: sys/net/gnrc/pktbuf_static: make use of alignas() r=maribu a=maribu

### Contribution description

Since we are now using C11, we can make use of `alignas()` provided by `<stdalign.h>` to make the alignment code easier to read.

### Testing procedure

I didn't expect this to change binaries, but is safes 4 bytes. `elf_diff` shows that the compiler (at least GCC 11.3.0) was not able to detect that `gnrc_pktbuf_static_buf` was just an alias for `_pktbuf_buf`. That makes sense since it would be hard without LTO to rule out external writes to `gnrc_pktbuf_static_buf`, unless one would have added a `const` (to the pointer, not to the data the pointer points to).

The [output of `elf_diff`](https://mari-bu.de/pr_18348_gnrc_pktbuf_static_elf_diff.html) looks otherwise quite unscary.

Also:

```
$ make BOARD=nucleo-f767zi -C tests/unittests/ tests-pktbuf flash test
make: Entering directory '/home/maribu/Repos/software/RIOT/tests/unittests'
Building application "tests_unittests" for "nucleo-f767zi" with MCU "stm32".
[...]
Welcome to pyterm!
Type '/exit' to exit.
READY
s
START
.............................................
OK (45 tests)

make: Leaving directory '/home/maribu/Repos/software/RIOT/tests/unittests'
```

### Issues/PRs references

None

19120: CI: seperate check-labels and check-commits workflows r=maribu a=kaspar030



Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
Co-authored-by: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
2023-01-10 15:44:57 +00:00
Benjamin Valentin
bb084612f5 drivers/slipdev: implement sleep states 2023-01-10 12:24:30 +01:00
J. David Ibáñez
d741f71ebd drivers/ds3231 fix docs, alarms are supported
Remove the text stating that setting alarms is not yet supported,
because it is, since PR #16180

Also document DS3231_PARAM_INT_PIN
2022-12-27 17:21:55 +01:00
bors[bot]
b71df25282
Merge #19048
19048: drivers/sht2x: some small improvements r=benpicco a=gschorcht

### Contribution description

This PR provides the following improvements for the SHT2x driver:

- migration to `ztimer` 8a605517f5 and 367549940de3bd8910052334c34af028d4992741
- floating point arithmetics replaced by integer arithmetics f424caebbfec9f2be56aa2337c6cc09dba5b97d6
- fix of sleep times (typical times replaced by maximum times as recommended by the datasheet) 13615c72094b8541ee62c3e8ed5a36dc4d725fd0
- release of the I2C bus during sleep 9415c216cfab734520ef98dd00b350c22f342c60
- Kconfig configuration of sensor parameters added dadbbcb4c328350893db53ba6743d03cb34ecc1c
- no-hold mode is now the default mode instead of the hold mode

Regarding the sleep times: The typical measurement times were used as sleep times. According to the datasheet, typical measurements are only recommended for calculating energy consumption, while maximum values should be used for calculating waiting times in communication. Therefore, the typical time values were replaced by maximum time values for the sleep in no-hold mode.

Regarding the hold mode: In hold mode, the sensor uses clock stretching until the measurement results can be read by the MCU. This blocks both the I2C bus and the MCU during the entire measurement, which can take up to 85 ms if I2C is not interrupt-driven. Therefore, the no-hold mode is now used by default, where the calling thread sleeps during the measurement, but the MCU is not completely blocked. Furthermore, the hold mode requires that the MCU supports clock stretching. Even if the MCU supports clock stretching, the hold mode with clock stretching doesn't seem to work with different MCUs. I couldn't get it working for STM32 and ESP32.

Regarding the I2C bus during sleep: If the no-hold mode is used and the calling thread sleeps up to 85 ms, it makes sense to release the I2C bus until the measurement results are available.

### Testing procedure

`tests/driver_sht2x` should still work.

### Issues/PRs references


Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2022-12-15 12:42:30 +00:00
Gunar Schorcht
43819464f7 drivers/sht2x: fix measurement duration
According to the data sheet, typical times are recommended for calculating energy consumption, while maximum values should be used for calculating waiting times in communication. Therefore, the typical time values are replaced by maximum time values for sleep.
2022-12-14 21:47:32 +01:00
Jue
8f174bbef2 ieee802154_submac: migrate to ztimer 2022-12-14 16:41:27 +01:00
Jose Alamos
bc1043921d
drivers/at86rf2xx: move TX power logic to netdev 2022-12-06 15:40:43 +01:00
Jose Alamos
fc43cec430
drivers/at86rf2xx: remove unused send function 2022-12-06 15:40:20 +01:00
Jose Alamos
5207a82e03
drivers/at86rf2xx: simplify channel-page logic 2022-12-06 15:40:18 +01:00
Jose Alamos
ba6c0d845e
drivers/at86rf2xx: remove unused getters 2022-11-29 11:16:16 +01:00
Jose Alamos
5a865c3a6b
drivers/at86rf2xx: add HAVE_RETRIES_REG macro 2022-11-25 14:01:44 +01:00
Jose Alamos
22c6d0242a
drivers/at86rf2xx: add HAVE_ED_REGISTER macro 2022-11-25 14:01:44 +01:00
Jose Alamos
82d3324e63
drivers/at86rf2xx: add HAVE_SUBGHZ macro 2022-11-25 14:01:44 +01:00
Jose Alamos
58ce0743c6
drivers/at86rf2xx: add TX_START macro 2022-11-25 14:01:43 +01:00
Jose Alamos
b6b8dc1958
drivers/at86rf2xx: add AT86RF2XX_IS_PERIPH macro 2022-11-25 14:01:39 +01:00
benpicco
2a934c9434
Merge pull request #18733 from bergzand/pr/driver/matrix_keypad
matrix_keypad: Add matrix-style keypad module
2022-10-28 20:46:13 +02:00
7f3cbfdfc7
matrix_keypad: Add driver for a matrix keypad 2022-10-28 10:03:37 +02:00
benpicco
e6835feaee
Merge pull request #18753 from keestux/driver-at-add-more-functions
drivers/at: add a function read a response plus the OK
2022-10-17 22:42:12 +02:00
Kees Bakker
94474236f1 drivers/at: add a function read a response plus the OK
There are many modem commands for which you get a line of response followed
by an OK. Take for example the AT+CGSN command to get the IMEI of a Ublox
G350.
  >> AT+CGSN
  << 004999010640000
  << OK
2022-10-16 14:05:31 +02:00
Gunar Schorcht
41b0a3efae drivers/usbdev_synopsys_dwc2: add internal UTMI HS PHY support 2022-10-16 11:35:42 +02:00
Gunar Schorcht
95f74faf6b drivers/usbdev_synopsys_dwc2: add ULPI HS PHY support 2022-10-06 06:26:22 +02:00
Gunar Schorcht
7db66e49b3 drivers: add USB OTG FS/HS driver for Synopsys DWC2 IP core 2022-09-27 01:00:57 +02:00
benpicco
8d824bca02
Merge pull request #18604 from benpicco/codespell2
codespell: fix remaining issues
2022-09-16 22:50:00 +02:00
benpicco
1b940d90b0
Merge pull request #18603 from benpicco/cdc_ecm-netdev-register
USBUS/cdc_ecm: register with netdev
2022-09-16 20:25:54 +02:00
Benjamin Valentin
6e7d5ae2d3 codespell: fix remaining issues 2022-09-16 14:00:35 +02:00
Benjamin Valentin
aef967fdef USBUS/cdc_ecm: register with netdev 2022-09-16 13:22:42 +02:00
Marian Buschsieweke
702c36c533
drivers/sht1x: fix doccheck
- replace auto-generated patterns with generic ones
- fix `warning: return value '\-EBADMSG' of sht1x_read has multiple
  documentation sections`
2022-09-16 11:12:27 +02:00
Karl Fessel
da51932737 boards: add some missing whitespaces for static tests 2022-09-14 15:11:14 +02:00
Karl Fessel
05f114d0af doc: fix unbalaced grouping
- most were trivial
    - missing group close or open
    - extra space
    - no doxygen comment
- name commad might open an implicit group
    this hould also be implicit cosed but does not happen somtimes
- crazy: internal declared groups have to be closed internal
2022-09-14 15:05:25 +02:00
Marian Buschsieweke
b15af47f34
drivers/sdcard_spi: make 8-bit safe
- replace all `int`s and `unsigned`s with integers with fixed width
- replaced all signed integers of sizes with unsigned ones (sizes
  cannot be negative)
- made bitshifts 8-bit safe (e.g. `1 << 24` is valid on 32-bit, but
  undefined behavior on 8-bit, as a 16 bit wide `int` would be shifted
  by more than the type width)
- use `void *` / `const void *` for data buffers to ease use
2022-09-11 10:27:40 +02:00
benpicco
28cedd52a0
Merge pull request #18201 from benpicco/slip_dose_rxqueue
drivers/{dose, slipdev, sam0_eth}: generate RX event for queued packets
2022-08-26 13:25:13 +02:00
Jose Alamos
744cf54900
drivers/kw2xrf: remove unused kw2xrf_setup function 2022-08-25 15:44:34 +02:00
Jose Alamos
4ebcd7c055
drivers/kw2xrf: add IEEE 802.15.4 Radio HAL support
Co-authored-by: Michel Rottleuthner <michel.rottleuthner@haw-hamburg.de>
2022-08-15 12:11:03 +02:00
benpicco
307ece1bf5
Merge pull request #18391 from gschorcht/cpu/esp/fix_netdev_register
cpu/esp: fix netdev register
2022-08-02 21:38:24 +02:00
benpicco
e1e99c3bf1
Merge pull request #18108 from benpicco/drivers/dose-rxbuf
drivers/dose: make RX buffer size configurable
2022-08-02 10:51:17 +02:00
Gunar Schorcht
14dde4a835 drivers/netdev: add NETDEV_ESP_WIFI type 2022-08-02 09:33:50 +02:00
Gunar Schorcht
184e411355 drivers/netdev: add NETDEV_ESP_ETH type 2022-08-02 09:33:50 +02:00
Leandro Lanzieri
4a3231f763
drivers/kw2xrf: add setup function with global index
This index is used to register the network device.
2022-07-11 09:24:59 +02:00
eduazocar
e6a7039de4 drivers/at86rf2xx: Adding Switch SRT to Random Number Generator 2022-07-03 17:44:47 -04:00
Benjamin Valentin
bede0615ad drivers/mtd: fix doc of mtd_read_page(), mtd_write_page_raw()
The function allows for offsets greater than the page size.
2022-06-20 14:59:41 +02:00
Benjamin Valentin
86f55c5637 drivers/slipdev: generate RX event for queued packets 2022-06-17 10:50:31 +02:00
benpicco
cb5e19beb5
Merge pull request #17979 from maribu/drivers/netdev_ieee802154
drivers/netdev_ieee802154: drop duplicate struct member
2022-06-02 00:47:56 +02:00
Karl Fessel
6e41c685b2
Merge pull request #17935 from dp1/ir_nec
drivers/ir_nec: NEC remote receiver implementation
2022-06-01 13:44:51 +02:00
Dario Petrillo
18f8a476e6
drivers/ir_nec: ir remote implementation 2022-05-31 17:58:39 +02:00
Marian Buschsieweke
16f859dafd
drivers/saul: use const qualifier for data to write
This makes life easier when calling e.g. `saul_reg_write()` with data
stored in flash.

As now the signatures for reading and writing differ (in that `const`
qualifier only), `saul_notsup()` is split into `saul_write_notsup()`
and `saul_read_notsup()`. However, one is implemented as a symbol alias
of the other, so that ROM consumption remains unchanged.
2022-05-23 08:35:27 +02:00
chrysn
dc7bc9f854
Merge pull request #17683 from chrysn-pull-requests/mtd-granularity
mtd: Introduce write granularity
2022-05-20 11:52:03 +02:00
Aymeric Brochier
09ca09adbf drivers/sx1280: initial import 2022-05-18 17:06:12 +02:00
Benjamin Valentin
d0ca6294ea drivers/dose: make RX buffer size configurable
To benefit from the chunked ringbuffer if large frames are being sent,
we need to allocate more than one ethernet frame length to it.

Rename the define and make it overwriteable by the user.
2022-05-15 14:43:47 +02:00
Marian Buschsieweke
bae91c1660
Merge pull request #17723 from benpicco/periph_timer_periodic-set_stopped
drivers/periph/timer: add TIM_FLAG_SET_STOPPED flag
2022-05-03 12:06:37 +02:00
Marian Buschsieweke
1fd4d41d76
driver/netdev_ieee802154: Make timestamp optional
Also remove duplicate struct member.
2022-04-22 14:33:56 +02:00
Marian Buschsieweke
23855e140e
drivers: Add periph/gpio_ll API
Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
Co-authored-by: chrysn <chrysn@fsfe.org>
Co-authored-by: Benjamin Valentin <benjamin.valentin@ml-pa.com>
2022-04-22 08:39:04 +02:00
56359d6fb1
Merge pull request #17930 from aabadie/pr/drivers/lcd_rotation_rework
drivers/lcd: rework rotation management and enable it for st7735
2022-04-21 14:31:49 +02:00
df95c6ca83
Merge pull request #17945 from fjmolinas/pr_mcp2515_cleanups
drivers/mcp2515: fixes and cleanups
2022-04-20 10:42:08 +02:00
Francisco Molina
6959f5eb78 drivers/mcp2515: use ztimer 2022-04-20 09:23:50 +02:00
85ba0597f7
drivers/lcd: rework rotation modes and enable it with st7735 2022-04-19 16:22:10 +02:00
646fb1135a
Merge pull request #17925 from aabadie/pr/drivers/lcd_params_rework
drivers/lcd: slightly rework params to expose offset values to ili9341 driver
2022-04-19 16:21:42 +02:00
Francisco Molina
cd21bc00da drivers/candev_mcp2515: set default bitrate to 500kbps 2022-04-19 15:56:45 +02:00
63b25483c9
Merge pull request #17921 from aabadie/pr/drivers/disp_dev_coordinates
drivers/disp_dev: use struct to store display area coordinates
2022-04-19 12:48:12 +02:00
a2fc925a0e
drivers/cst816s: add touch_dev interface 2022-04-14 11:31:35 +02:00
81cf5dba53
drivers/lcd: apply offset parameters to ili9341 2022-04-13 12:55:16 +02:00
36211f3fae
drivers/disp_dev: use struct to store display area coordinates 2022-04-13 12:49:58 +02:00
Francisco Molina
c5cc2966ff
drivers/ili9341: use common lcd driver 2022-04-12 12:39:00 +02:00
Francisco Molina
827fa976a6
driveres/st7735: add driver based on common lcd driver 2022-04-12 12:38:59 +02:00
Francisco Molina
8f2fa772e9
drivers/lcd: add common driver for lcd display 2022-04-12 12:35:02 +02:00
chrysn
5221ce278e
Merge pull request #17860 from Ollrogge/deprecate_flashpage
periph/flashpage: deprecate *_free functions
2022-03-31 20:42:01 +02:00
Ollrogge
4974790bad periph/flashpage: deprecate *_free functions 2022-03-31 17:59:54 +02:00
Ollrogge
a834cc9acf periph/flashpage: activate FLASH_WRITABLE_INIT documentation 2022-03-31 17:59:44 +02:00
chrysn
52ea93ef03 drivers/mtd_mapper: Add write_size 2022-03-31 10:58:52 +02:00
chrysn
882f76ab01 drives/mtd_flashpage: Configure write_size in MTD device 2022-03-31 10:52:34 +02:00
chrysn
9ec42492da mtd: Introduce write_size, setting no-rewrite policy
... with flags defining more clearly which kinds of overwrites are OK

Co-authored-by: benpicco <benpicco@googlemail.com>
2022-03-31 10:50:30 +02:00
chrysn
df9226fb80 mtd doc: Editorial fix 2022-03-31 10:50:30 +02:00
Benjamin Valentin
d800cca1c3 drivers/atwinc15x0: register with netdev 2022-03-30 16:07:29 +02:00
benpicco
1133d04de1
Merge pull request #17813 from leandrolanzieri/pr/tests/eth_drivers_rework
tests: rework eth drivers
2022-03-28 18:15:27 +02:00
Gunar Schorcht
753b435cb5
Merge pull request #17854 from benpicco/drivers/atwinc15x0-sleep
drivers/atwinc15x0: enable sleep state
2022-03-25 16:43:27 +01:00
Francisco
a10b1572aa
Merge pull request #17627 from benpicco/mtd_flashpage_t
drivers/mtd_flashpage: add mtd_flashpage_t type
2022-03-25 16:24:04 +01:00
Benjamin Valentin
b28738c11c drivers/atwinc15x0: enable sleep state
This allows the interface to enter SLEEP state in which it only
consumes 4µA.
2022-03-24 14:04:53 +01:00
Leandro Lanzieri
a2e5934ec9
drivers/encx24j600: introduce setup function with index 2022-03-24 09:32:10 +01:00
Leandro Lanzieri
5f7a906b95
drivers/w5100: introduce setup with index 2022-03-24 09:30:42 +01:00
benpicco
1e66baf94b
Merge pull request #17699 from viktorbatista/shtc3
drivers/shtcx: converted the shtc1 driver into shtcx and added shtc3 support
2022-03-18 14:05:42 +01:00
benpicco
82b0e08745
Merge pull request #10082 from gschorcht/drivers_l3gd20h
drivers: add driver for L3GD20H 3-axis gyroscope
2022-03-18 08:10:24 +01:00
chrysn
facb5e633f
Merge pull request #17436 from Ollrogge/reserve_flash
cpu: add flash_writable section to linker script
2022-03-17 21:44:32 +01:00
Ollrogge
6ab1fb9a09 periph/flashpage: Add FLASH_WRITABLE_INIT macro 2022-03-17 19:46:00 +01:00
Gunar Schorcht
1569299c92 drivers: support for ST L3Gxxxx 3-axis gyroscope family 2022-03-17 18:34:57 +01:00
Vic
e18557f9c4 drivers/shtcx: integration of shtc3 sensor 2022-03-10 21:35:25 +01:00
Vic
07531cdecd shtc1->shtcx: renamed files 2022-03-10 14:47:34 +01:00
a3fc5c1d17
Merge pull request #17697 from viktorbatista/drivers/lps22ch
driver/lpsxxx: adding lps22ch support
2022-03-09 21:28:11 +01:00
Vic
947efa7d65 driver/lpsxxx: adding lps22ch support 2022-03-09 15:23:51 +01:00
Benjamin Valentin
3d252bfba3 drivers/periph/timer: add TIM_FLAG_SET_STOPPED flag 2022-03-01 13:45:01 +01:00
benpicco
6cfbec4f8e
Merge pull request #10518 from gschorcht/drivers_mcp47xx
drivers: support for Microchip MCP47xx DAC devices added
2022-02-26 22:13:41 +01:00
Fabian Hüßler
66a7a0a065 drivers/periph: add VBAT interface 2022-02-20 13:43:19 +01:00
Francisco
e58af6a876
Merge pull request #17619 from benpicco/drivers/mtd_sdcard-unaligned
drivers/mtd_sdcard: support unaligned reads & writes
2022-02-17 10:09:06 +01:00
chrysn
b832bb1224 mtd doc: Add overview defining terms; link modules
Contributes-To: https://github.com/RIOT-OS/RIOT/issues/17663
2022-02-16 16:25:01 +01:00
Jens Wetterich
4dfeafcabd cpu/native/netdev_tap: Add to netdev_register 2022-02-11 07:54:11 +01:00
benpicco
c423148bbc
Merge pull request #17608 from benpicco/drivers/ethos-standalone
drivers/ethos: fix build without ethos_stdio
2022-02-10 13:07:11 +01:00
benpicco
be45400631
Merge pull request #17341 from benpicco/vfs-mtd_cleanup
sys/vfs: add file-system auto-mount
2022-02-09 21:50:34 +01:00
Benjamin Valentin
2fe41b1b40 drivers/mtd_flashpage: add mtd_flashpage_t type 2022-02-08 17:13:30 +01:00
Benjamin Valentin
91ca757b9a drivers/mtd_sdcard: implement erase_sector() 2022-02-07 11:40:27 +01:00
benpicco
effad2e571
Merge pull request #17613 from benpicco/drivers/mtd_spi_nor-microchip
boards/same54-xpro: support for board variation with SST26VF064B flash
2022-02-06 18:39:31 +01:00
Benjamin Valentin
67417ce5a9 drivers/mtd_spi_nor: drop addr_width from mtd_spi_nor_params_t
This is now always determined at run-time.
2022-02-04 12:17:17 +01:00
Benjamin Valentin
4c282a3a41 drivers/mtd_spi_nor: set address width at run-time 2022-02-04 12:17:17 +01:00
Benjamin Valentin
748e85ed39 drivers/ethos: set defaults for !ethos_stdio 2022-02-04 12:09:19 +01:00
Benjamin Valentin
0695a7e40e drivers/dose: include board.h
`DOSE_TIMER_DEV` is defined in `board.h`, so we have to include it.
It's not included by the header (and should not), so move the check
to the .c file.
2022-02-02 15:38:57 +01:00
Francisco Molina
dc27c080ea drivers/dose: migrate to ztimer_usec 2022-01-25 08:43:33 +01:00
Benjamin Valentin
70d9f2fb1a sys/vfs: move mtd_vfs_ops to vfs.h
This avoids a cyclic include of mtd.h
2022-01-24 13:53:21 +01:00
Francisco
b985a74894
Merge pull request #17367 from fjmolinas/pr_driver_ztimer_corner_cases
drivers: migrate xtimer64 and xtimer/ticks users to ztimer
2022-01-24 10:41:24 +01:00
Leandro Lanzieri
4eb58d74b5
drivers/ft5x06: allow multiple device types 2022-01-21 13:13:09 +01:00
Benjamin Valentin
a8983d288f drivers/dose: add documentation for dose_watchdog 2022-01-20 18:37:23 +01:00
Benjamin Valentin
a8ad618a71 drivers/dose: make use of ringbuffer for RX 2022-01-19 11:43:35 +01:00
Francisco
bc6624e67b
Merge pull request #17180 from benpicco/drivers/dose-watchdog
drivers/dose: introduce watchdog timer
2022-01-18 23:43:29 +01:00
5e599a82dd
Merge pull request #17531 from fjmolinas/pr_spi_gpio_init_reference
drivers/periph_spi: spi_init_with_gpio_mode mode by reference
2022-01-18 18:44:54 +01:00
Francisco Molina
a1fe17c698 drivers/ltc4150: migrate to ztimer64 2022-01-18 16:27:44 +01:00
Francisco Molina
579ca6d941 drivers/periph_spi: spi_init_with_gpio_mode mode by reference 2022-01-18 16:22:18 +01:00
Benjamin Valentin
3e1076e3b9 drivers/dose: set backoff timer before send 2022-01-18 15:41:38 +01:00
Benjamin Valentin
ddf80a8bdb drivers/dose: introduce watchdog timer 2022-01-18 15:41:38 +01:00
75f5048b68
Merge pull request #17497 from jia200x/pr/lora/fix_rssi_val
[treewide] lora: use int16_t for RSSI value
2022-01-17 18:57:37 +01:00
Jose Alamos
9955a35c63
[treewide] lora: use int16_t for RSSI value
The RSSI values reported by LoRa transceiver can be less than -127.
Therefore, `int8_t` is not enough. This commit defines the RSSI of
`netdev_lora_rx_info` as `int16_t` and adapt the drivers accordingly
(sx126x, sx127x).
2022-01-17 17:54:18 +01:00
37bc47e21c
drivers/at: remove deprecated AT_SEND_ECHO define 2022-01-14 09:06:17 +01:00
11f73ea5c9
drivers/ft5x06: add touch panel driver 2022-01-08 15:08:05 +01:00
e0324d5278
drivers/lis2dh12: fix missing stdbool include 2022-01-06 12:07:41 +01:00
0056648581
Merge pull request #17418 from aabadie/pr/drivers/periph_build_enh
drivers/periph_common: build periph module selectively
2022-01-04 14:59:39 +01:00
acd73529a5
drivers/netdev: fix missing and non matching arguments in doc 2022-01-03 09:52:04 +01:00
7ce1894da9
drivers/candev: fix non matching argument in doc 2022-01-03 09:51:40 +01:00
79df157727
sys: move rtc utility functions to their own module 2021-12-20 13:04:20 +01:00
c9e30b01c0
Merge pull request #16333 from fjmolinas/pr_driver_hm3301
drivers/hm330x: initial commit
2021-12-16 17:56:45 +01:00
Francisco Molina
fe38284a3c drivers/hms330x: initial import 2021-12-16 15:19:44 +01:00
Martine Lenders
e062ad78f3
Merge pull request #17265 from miri64/ethos/fix/threadify-state-machine
ethos: move bulk of state machine out of ISR context
2021-12-16 12:24:14 +01:00
Martine Lenders
820a3976ad
ethos: move bulk of state machine out of ISR context
This moves the following parts of ethos' state machine out of ISR
context:

- Sending and replying to HELLO messages
- Byte-unstuffing

Some escape handling is still needed in the ISR handler, due to ethos'
protocol design, to determine if a received byte must go into the
netdev queue (tsrb) or the STDIO queue (isrpipe), but the actual
unstuffing is now done in the STDIO and netdev handler threads,
respectively.
2021-12-15 16:15:30 +01:00
Martine Lenders
568be105f2
stdio_ethos: move to ethos_stdio 2021-12-15 16:15:29 +01:00
benpicco
e8cbf1ea90
Merge pull request #16681 from benpicco/drivers/dose-collision
drivers/dose: make use of UART collision detection feature
2021-12-08 20:48:28 +01:00
Gunar Schorcht
499cbb9062 drivers/mcp47xx: add driver for MCP47xx DAC devices 2021-12-08 05:42:07 +01:00
2e0c02b25d
Merge pull request #17340 from gschorcht/driver/fix_css811_read_status
driver/css811: fix read status
2021-12-04 17:41:02 +01:00
benpicco
0646862421
Merge pull request #10430 from gschorcht/drivers_pcf857x
drivers: add PCF857X I2C I/O expander driver
2021-12-04 16:57:01 +01:00
Gunar Schorcht
7eb599e765 drivers: add PCF857X I/O expander driver 2021-12-04 14:11:04 +01:00
Gunar Schorcht
6bdc590516 drivers/ccs811: small cleanups in documentation 2021-12-04 13:43:31 +01:00
Gunar Schorcht
27265095cd drivers/ccs811: fix the data ready check
When the measurement results are read from the `ALG_RESULT_DATA` register set including the STATUS register, the `DATA_RDY` flag in the STATUS register is already cleared during reading. Therefore it is not possible to check this flag after the `ALG_RESULT_DATA` has been read. Therefore the function `ccs811_read_iaq` always returned `CCS811_ERROR_NO_NEW_DATA` although the data were valid either after checking for new data with the function `ccs811_data_ready` or after triggering the Data Ready interrupt.
2021-12-04 13:43:31 +01:00
8329112c45
Merge pull request #17088 from fjmolinas/pr_stmpe811_spi
drivers/stmpe811: add spi mode
2021-12-03 21:37:46 +01:00
Francisco Molina
e17fe0aee2 drivers/stmpe811: add spi mode 2021-12-03 17:12:03 +01:00
b6cc07009f
Merge pull request #17284 from fjmolinas/pr_ztimer_no_periph_rtt
sys/ztimer: add 'ztimer_no_periph_rtt'
2021-12-02 11:02:24 +01:00
Francisco Molina
7c3360e4d6 sys/ztimer: add 'ztimer_no_periph_rtt'
This is a temporary fix for Issue #17060. It allows to disable
auto inclusion of `ztimer_periph_rtt` in cases where another
module or application requires direct access.

Limitations:
- as ifeq are involved order of inclusion matters, therefore
  these modules should be included early in the build at application
  level and not in modules `Makefile.dep`
- this does not disallow direct inclusions of `ztimer_periph_rtt`,
  since this only disables auto inclusion of these modules

This is a temporary solution since this is already possible with
Kconfig, but not in make.
2021-12-02 07:54:38 +01:00
Francisco Molina
1ef9ca8a6f drivers/soft_spi: remove nanosleep 2021-11-30 10:31:22 +01:00
Gunar Schorcht
3d93b2bcf0 drivers/periph/i2c: i2c_acquire() returns void
Since all implementations simply return 0 and most drivers do not check the return value, it is better to return void and use an assert to ensure that the given device identifier and given device parameters are correct.
2021-11-29 06:35:25 +01:00
Wouter Symons
5055d0993e drivers/dht: correct interpreting raw values 2021-11-20 14:55:02 +01:00
Benjamin Valentin
1768e93710 drivers/periph: use uint_fast8_t as default type
The default driver type is just an index into a device array defined
by the board.

If a platform wants to encode additional information in the device type,
it can define a custom type.

This means we can just set the default type to whatever fits the target
CPU best.

On ARM this will still be a 32 bit word, but on AVR it will by a 8 bit byte.
2021-11-18 10:29:50 +01:00
f8e7e2f557
usbdev_mock: Adapt to xmit API
Includes the adaptations needed in the test application
2021-11-16 20:16:59 +01:00
597f1d19aa
usbdev: Refactor to xmit API
This API change refactors the usbdev API to supply buffers via the
usbdev_ep_xmit function. This changes from the usbdev_ep_ready call to allow
separate buffers per call. An usbdev_ep_buf_t pseudotype is available and must
be used when defining buffers used for endpoints to adhere to the DMA alignment
restrictions often required with usb peripherals.

Main advantage is that the usbdev peripherals no longer have to allocate
oversized buffers for the endpoint data, potentially saving multiple KiB
of unused buffer space. These allocations are now the responsibility of
the individual USB interfaces in the firmware
2021-11-16 11:21:07 +01:00
59e85cf921
usbdev: Refactor to xmit API
This API change refactors the usbdev API to supply buffers via the
usbdev_ep_xmit function. This changes from the usbdev_ep_ready call to allow
separate buffers per call. An usbdev_ep_buf_t pseudotype is available and must
be used when defining buffers used for endpoints to adhere to the DMA alignment
restrictions often required with usb peripherals.

Main advantage is that the usbdev peripherals no longer have to allocate
oversized buffers for the endpoint data, potentially saving multiple KiB
of unused buffer space. These allocations are now the responsibility of
the individual USB interfaces in the firmware
2021-11-16 11:21:00 +01:00
Benjamin Valentin
b34b67feee drivers/dose: reduce struct padding
By moving all the single byte struct elements to the end, we can reduce
padding inside `dose_t` and ensure that `recv_buf` is always aligned.

This saves some RAM:

master
------
   text	   data	    bss	    dec	    hex	filename
  36384	    136	  12944	  49464	   c138 tests/driver_dose/bin/samr21-xpro/tests_driver_dose.e

this patch
----------
   text	   data	    bss	    dec	    hex	filename
  36484	    136	  12936	  49556	   c194	tests/driver_dose/bin/samr21-xpro/tests_driver_dose.elf
2021-11-12 16:19:20 +01:00
Francisco
b609646961
Merge pull request #17138 from fjmolinas/pr_sx126x_fixes
drivers/sx126x: fix sync word and TX PA configuration
2021-11-11 10:59:08 +01:00
Benjamin Valentin
f89d0c7c25 drivers/periph/uart: add periph_uart_collision feature 2021-11-10 15:57:45 +01:00
benpicco
026d6cfba1
Merge pull request #16768 from benpicco/drivers/dose-timeout_bytes
drivers/dose: calculate timeout based on symbol rate
2021-11-10 12:40:13 +01:00
Francisco
035ee0a595
Merge pull request #17172 from kaspar030/drivers_ds18_missing_stdint.h
drivers/ds18.h: add missing stdint.h include
2021-11-10 08:42:03 +01:00
5d3a4d63d8 drivers/ds18.h: add missing stdint.h include 2021-11-09 21:48:48 +01:00
benpicco
12ade5a8b5
Merge pull request #16752 from benpicco/drivers/dose-standby
drivers/dose: enable standby pin
2021-11-09 18:20:17 +01:00
Benjamin Valentin
6c1481b6ee drivers/dose: enable standby pin
Some CAN transceivers have a standby pin that has to be pulled low
in order to use it.
If the interface is disabled we can set it to high again to save some
power.
2021-11-09 15:19:35 +01:00
Francisco Molina
e17e3254e1 drivers/sx126x: add tx_pa_mode
BOARDs with RF switch might only support one of the TX modes, and
on init the BOARD needs to be configured accordingly and the correct
mode selected on TX.
2021-11-08 18:42:05 +01:00
Marian Buschsieweke
5e75047a2b
drivers/lis3dh: fix unaligned memory access
The bogus packed attribute added to lis3dh_data_t resulted in the
structure being aligned two 1 byte. It was later casted to an
uint16_t pointer (which is aligned two 2 bytes). By dropping the
packed attribute the alignment mismatch is fixed.
2021-11-06 20:05:05 +01:00
26346188b9
Merge pull request #17105 from aabadie/pr/drivers/ata8520e_ztimer
drivers/ata8520e: migrate to ztimer
2021-11-05 16:22:59 +01:00
baa1ed38cc
drivers/ata8520e: migrate to ztimer 2021-11-05 12:49:37 +01:00
benpicco
bfb8d1d3fd
Merge pull request #17014 from benpicco/periph/gpio-cb_not_NULL
drivers/periph/gpio: state that interrupt callback must not be NULL
2021-11-05 12:47:16 +01:00
295092bc29
drivers/rn2xx3: migrate to ztimer 2021-11-04 10:39:36 +01:00
Francisco Molina
472f6495a8 drivers/xbee: migrate to ztimer_msec 2021-11-02 21:46:19 +01:00
Francisco Molina
9a2c880a60 drivers/stmpe811: use errno 2021-10-30 23:25:50 +02:00
Ollrogge
c6e94aa6be periph/flashpage.h: add comment about riotboot impact on flashpage layout 2021-10-26 14:35:33 +02:00
Francisco
7f3344870d
Merge pull request #16972 from Ollrogge/flashpage_pr
periph/flashpage: extend API
2021-10-26 12:51:05 +02:00
9f8aee4e95
usbdev: Deprecate USBDEV_EVENT_TR_FAIL 2021-10-24 19:33:29 +02:00
Ollrogge
72d47013dd periph/flashpage: extend API 2021-10-19 22:33:09 +02:00