Skip to content

Commit d7fa679

Browse files
authored
Merge branch 'zephyrproject-rtos:main' into main
2 parents d5703a9 + 65d7c7c commit d7fa679

File tree

393 files changed

+9973
-4008
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

393 files changed

+9973
-4008
lines changed

.github/workflows/codecov.yaml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,24 @@ jobs:
112112
-T tests --coverage-tool gcovr -xCONFIG_TEST_EXTRA_STACK_SIZE=4096 -e nano \
113113
--timeout-multiplier 2
114114
115+
- name: Build Doxygen Coverage
116+
if: matrix.platform == 'unit_testing'
117+
run: |
118+
pip install -r doc/requirements.txt --require-hashes
119+
sudo apt-get update
120+
sudo apt-get install -y graphviz # dot is needed but currently missing from the Docker image
121+
cmake -B doc/_build -S doc
122+
cmake --build doc/_build --target doxygen-coverage
123+
124+
- name: Upload Doxygen Coverage Results
125+
if: matrix.platform == 'unit_testing'
126+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
127+
with:
128+
name: doxygen-coverage-results
129+
path: |
130+
doc/_build/new.info
131+
doc/_build/coverage-report
132+
115133
- name: Print ccache stats
116134
if: always()
117135
run: |
@@ -230,7 +248,7 @@ jobs:
230248
coverage/reports/coverage-report-${{ steps.run_date.outputs.run_date_short }}.json
231249
coverage/reports/coverage-report-${{ steps.run_date.outputs.run_date_short }}.xlsx
232250
233-
- name: Upload coverage to Codecov
251+
- name: Upload test coverage to Codecov
234252
if: always()
235253
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
236254
with:
@@ -240,3 +258,15 @@ jobs:
240258
token: ${{ secrets.CODECOV_TOKEN }}
241259
files: coverage/reports/merged.xml
242260
flags: unittests-coverage
261+
262+
- name: Upload Doxygen coverage to Codecov
263+
if: always()
264+
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
265+
with:
266+
env_vars: OS,PYTHON
267+
fail_ci_if_error: false
268+
verbose: true
269+
token: ${{ secrets.CODECOV_TOKEN }}
270+
files: coverage/reports/doxygen-coverage-results/new.info
271+
disable_search: true
272+
flags: doxygen-coverage

.github/workflows/doc-build.yml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -164,18 +164,6 @@ jobs:
164164
name: api-coverage
165165
path: zephyr/api-coverage.tar.xz
166166

167-
- name: Upload Doxygen coverage to Codecov
168-
if: github.event_name == 'schedule'
169-
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
170-
with:
171-
env_vars: OS,PYTHON
172-
fail_ci_if_error: false
173-
verbose: true
174-
token: ${{ secrets.CODECOV_TOKEN }}
175-
working-directory: zephyr
176-
files: new.info
177-
disable_search: true
178-
flags: doxygen-coverage
179167

180168
- name: process-pr
181169
if: github.event_name == 'pull_request'

boards/acrn/acrn/acrn.dts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@
1717
model = "ACRN";
1818
compatible = "acrn";
1919

20+
cpus {
21+
cpu@1 {
22+
device_type = "cpu";
23+
compatible = "intel,x86_64";
24+
d-cache-line-size = <64>;
25+
reg = <1>;
26+
};
27+
};
28+
2029
aliases {
2130
uart-0 = &uart0;
2231
uart-1 = &uart1;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Jonas Berg
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_ADAFRUIT_FEATHER_RFM95_RP2040
5+
select RP2_FLASH_W25Q080
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Jonas Berg
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_ADAFRUIT_FEATHER_RFM95_RP2040
5+
select SOC_RP2040
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright (c) 2022 Peter Johanson
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if BOARD_ADAFRUIT_FEATHER_RFM95_RP2040
5+
6+
if I2C_DW
7+
8+
config I2C_DW_CLOCK_SPEED
9+
default 125
10+
11+
endif # I2C_DW
12+
13+
config USB_SELF_POWERED
14+
default n
15+
16+
endif # BOARD_ADAFRUIT_FEATHER_RFM95_RP2040
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
* Copyright (c) 2025 Jonas Berg
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <dt-bindings/pinctrl/rpi-pico-rp2040-pinctrl.h>
8+
9+
&pinctrl {
10+
uart0_default: uart0_default {
11+
group1 {
12+
pinmux = <UART0_TX_P0>;
13+
};
14+
15+
group2 {
16+
pinmux = <UART0_RX_P1>;
17+
input-enable;
18+
};
19+
};
20+
21+
i2c1_default: i2c1_default {
22+
group1 {
23+
pinmux = <I2C1_SDA_P2>;
24+
input-enable;
25+
};
26+
27+
group2 {
28+
pinmux = <I2C1_SCL_P3>;
29+
input-enable;
30+
};
31+
};
32+
33+
spi1_default: spi1_default {
34+
group1 {
35+
/* Pin GPIO16 is used as CS (no pinmux available) */
36+
pinmux = <SPI1_TX_P15>, <SPI1_SCK_P14>;
37+
};
38+
39+
group2 {
40+
pinmux = <SPI1_RX_P8>;
41+
input-enable;
42+
};
43+
};
44+
45+
adc_default: adc_default {
46+
group1 {
47+
pinmux = <ADC_CH0_P26>, <ADC_CH1_P27>, <ADC_CH2_P28>, <ADC_CH3_P29>;
48+
input-enable;
49+
};
50+
};
51+
52+
ws2812_pio0_default: ws2812_pio0_default {
53+
group1 {
54+
pinmux = <PIO0_P4>;
55+
};
56+
};
57+
};
Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
/*
2+
* Copyright (c) 2021 Yonatan Schachter
3+
* Copyright (c) 2022 Peter Johanson
4+
* Copyright (c) 2025 Jonas Berg
5+
*
6+
* SPDX-License-Identifier: Apache-2.0
7+
*/
8+
9+
/dts-v1/;
10+
11+
#include <raspberrypi/rpi_pico/rp2040.dtsi>
12+
#include <dt-bindings/pinctrl/rpi-pico-rp2040-pinctrl.h>
13+
#include <zephyr/dt-bindings/input/input-event-codes.h>
14+
#include <zephyr/dt-bindings/led/led.h>
15+
#include "adafruit_feather_rfm95_rp2040-pinctrl.dtsi"
16+
#include "feather_connector.dtsi"
17+
18+
/ {
19+
model = "Adafruit Feather RP2040 RFM95 Lora";
20+
compatible = "adafruit,feather_rfm95_rp2040";
21+
22+
chosen {
23+
zephyr,sram = &sram0;
24+
zephyr,flash = &flash0;
25+
zephyr,flash-controller = &ssi;
26+
zephyr,console = &uart0;
27+
zephyr,shell-uart = &uart0;
28+
zephyr,code-partition = &code_partition;
29+
};
30+
31+
aliases {
32+
watchdog0 = &wdt0;
33+
led-strip = &ws2812;
34+
led0 = &red_led;
35+
sw0 = &user_button;
36+
lora0 = &lora;
37+
};
38+
39+
zephyr,user {
40+
io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>;
41+
};
42+
43+
leds: leds {
44+
compatible = "gpio-leds";
45+
46+
red_led: red_led {
47+
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
48+
label = "Red LED";
49+
};
50+
};
51+
52+
gpio_keys {
53+
compatible = "gpio-keys";
54+
55+
user_button: button {
56+
label = "User";
57+
gpios = <&gpio0 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
58+
zephyr,code = <INPUT_KEY_0>;
59+
};
60+
};
61+
62+
stemma_connector: stemma_connector {
63+
compatible = "stemma-qt-connector";
64+
#gpio-cells = <2>;
65+
gpio-map-mask = <0xffffffff 0xffffffc0>;
66+
gpio-map-pass-thru = <0 0x3f>;
67+
gpio-map = <0 0 &gpio0 3 0>, /* SCL */
68+
<1 0 &gpio0 2 0>; /* SDA */
69+
};
70+
};
71+
72+
&flash0 {
73+
reg = <0x10000000 DT_SIZE_M(8)>;
74+
75+
partitions {
76+
compatible = "fixed-partitions";
77+
#address-cells = <1>;
78+
#size-cells = <1>;
79+
80+
/* Reserved memory for the second stage bootloader */
81+
second_stage_bootloader: partition@0 {
82+
label = "second_stage_bootloader";
83+
reg = <0x00000000 0x100>;
84+
read-only;
85+
};
86+
87+
/*
88+
* Usable flash. Starts at 0x100, after the bootloader. The partition
89+
* size is 8 MB minus the 0x100 bytes taken by the bootloader.
90+
*/
91+
code_partition: partition@100 {
92+
label = "code-partition";
93+
reg = <0x100 (DT_SIZE_M(8) - 0x100)>;
94+
read-only;
95+
};
96+
};
97+
};
98+
99+
&gpio0 {
100+
status = "okay";
101+
};
102+
103+
&uart0 {
104+
current-speed = <115200>;
105+
status = "okay";
106+
pinctrl-0 = <&uart0_default>;
107+
pinctrl-names = "default";
108+
};
109+
110+
zephyr_i2c: &i2c1 {
111+
status = "okay";
112+
pinctrl-0 = <&i2c1_default>;
113+
pinctrl-names = "default";
114+
clock-frequency = <I2C_BITRATE_FAST>;
115+
};
116+
117+
&spi1 {
118+
pinctrl-0 = <&spi1_default>;
119+
pinctrl-names = "default";
120+
status = "okay";
121+
cs-gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
122+
123+
lora: radio@0 {
124+
reg = <0>;
125+
compatible = "semtech,sx1276";
126+
reset-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
127+
dio-gpios = <&gpio0 21 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>, /* SX1276 DIO0 */
128+
<&gpio0 22 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>, /* SX1276 DIO1 */
129+
<&gpio0 23 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>, /* SX1276 DIO2 */
130+
<&gpio0 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>, /* SX1276 DIO3 */
131+
<&gpio0 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>, /* SX1276 DIO4 */
132+
<&gpio0 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>; /* SX1276 DIO5 */
133+
spi-max-frequency = <10000000>;
134+
power-amplifier-output = "pa-boost";
135+
};
136+
};
137+
138+
&timer {
139+
status = "okay";
140+
};
141+
142+
&wdt0 {
143+
status = "okay";
144+
};
145+
146+
&adc {
147+
status = "okay";
148+
pinctrl-0 = <&adc_default>;
149+
pinctrl-names = "default";
150+
#address-cells = <1>;
151+
#size-cells = <0>;
152+
153+
channel@0 {
154+
reg = <0>;
155+
zephyr,gain = "ADC_GAIN_1";
156+
zephyr,reference = "ADC_REF_INTERNAL";
157+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
158+
zephyr,resolution = <12>;
159+
};
160+
161+
channel@1 {
162+
reg = <1>;
163+
zephyr,gain = "ADC_GAIN_1";
164+
zephyr,reference = "ADC_REF_INTERNAL";
165+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
166+
zephyr,resolution = <12>;
167+
};
168+
169+
channel@2 {
170+
reg = <2>;
171+
zephyr,gain = "ADC_GAIN_1";
172+
zephyr,reference = "ADC_REF_INTERNAL";
173+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
174+
zephyr,resolution = <12>;
175+
};
176+
177+
channel@3 {
178+
reg = <3>;
179+
zephyr,gain = "ADC_GAIN_1";
180+
zephyr,reference = "ADC_REF_INTERNAL";
181+
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
182+
zephyr,resolution = <12>;
183+
};
184+
};
185+
186+
&pio0 {
187+
status = "okay";
188+
189+
pio-ws2812 {
190+
compatible = "worldsemi,ws2812-rpi_pico-pio";
191+
status = "okay";
192+
pinctrl-0 = <&ws2812_pio0_default>;
193+
pinctrl-names = "default";
194+
bit-waveform = <3>, <3>, <4>;
195+
196+
ws2812: ws2812 {
197+
status = "okay";
198+
gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
199+
chain-length = <1>;
200+
color-mapping = <LED_COLOR_ID_GREEN
201+
LED_COLOR_ID_RED
202+
LED_COLOR_ID_BLUE>;
203+
reset-delay = <280>;
204+
frequency = <800000>;
205+
};
206+
};
207+
};
208+
209+
zephyr_udc0: &usbd {
210+
status = "okay";
211+
};
212+
213+
&die_temp {
214+
status = "okay";
215+
};
216+
217+
&vreg {
218+
regulator-always-on;
219+
regulator-allowed-modes = <REGULATOR_RPI_PICO_MODE_NORMAL>;
220+
};
221+
222+
&xosc {
223+
startup-delay-multiplier = <64>;
224+
};

0 commit comments

Comments
 (0)