# CODEOWNERS for autoreview assigning in github

# Order is important; the last matching pattern takes the most
# precedence.

# Do not use wildcard on all source yet
# *                                        @galak @nashif

/.known-issues/                           @inakypg @nashif
/arch/arc/                                @vonhust @ruuddw
/arch/arm/                                @MaureenHelm @galak
/arch/arm/core/cortex_m/cmse/             @ioannisg
/arch/arm/include/cortex_m/cmse/          @ioannisg
/soc/arm/                                 @MaureenHelm @galak
/soc/arm/arm/mps2/                        @fvincenzo
/soc/arm/atmel_sam/sam4s/                 @fallrisk
/soc/arm/nxp*/                            @MaureenHelm
/soc/arm/nordic_nrf/                      @ioannisg
/soc/arm/st_stm32/                        @erwango
/soc/arm/st_stm32/stm32f4/                @rsalveti @idlethread
/soc/arm/ti_simplelink/cc32xx/            @vanti
/soc/arm/ti_simplelink/msp432p4xx/        @Mani-Sadhasivam
/soc/xtensa/intel_s1000/                  @sathishkuttan @dcpleung @rgundi
/arch/nios2/                              @andrewboie @ramakrishnapallala
/arch/posix/                              @aescolar
/arch/riscv32/                            @kgugala @pgielda @nategraff-sifive
/soc/posix/                               @aescolar
/soc/riscv32/                             @kgugala @pgielda @nategraff-sifive
/arch/x86/                                @andrewboie @ramakrishnapallala
/arch/x86/core/                           @andrewboie
/arch/x86/core/crt0.S                     @ramakrishnapallala @nashif
/soc/x86/                                 @andrewboie @ramakrishnapallala
/soc/x86/intel_quark/quark_d2000/         @nashif
/soc/x86/intel_quark/quark_se/            @nashif
/soc/x86/intel_quark/quark_x1000/         @nashif
/arch/xtensa/                             @andrewboie @rgundi @andyross
/soc/xtensa/                              @andrewboie @rgundi @andyross
/boards/arc/                              @vonhust @ruuddw
/boards/arc/arduino_101_sss/              @nashif
/boards/arc/em_starterkit/                @vonhust
/boards/arc/quark_se_c1000_ss_devboard/   @nashif
/boards/arm/                              @MaureenHelm @galak
/boards/arm/96b_argonkey/                 @avisconti
/boards/arm/96b_carbon/                   @rsalveti @idlethread
/boards/arm/96b_nitrogen/                 @idlethread
/boards/arm/96b_neonkey/                  @Mani-Sadhasivam
/boards/arm/96b_stm32_sensor_mez/         @Mani-Sadhasivam
/boards/arm/cc3220sf_launchxl/            @vanti
/boards/arm/curie_ble/                    @jhedberg
/boards/arm/disco_l475_iot1/              @erwango
/boards/arm/frdm*/                        @MaureenHelm
/boards/arm/frdm*/doc/                    @MaureenHelm @MeganHansen
/boards/arm/hexiwear*/                    @MaureenHelm
/boards/arm/hexiwear*/doc/                @MaureenHelm @MeganHansen
/boards/arm/lpcxpresso*/                  @MaureenHelm
/boards/arm/lpcxpresso*/doc/              @MaureenHelm @MeganHansen
/boards/arm/mimxrt*/                      @MaureenHelm
/boards/arm/mimxrt*/doc/                  @MaureenHelm @MeganHansen
/boards/arm/mps2_an385/                   @fvincenzo
/boards/arm/msp_exp432p401r_launchxl/     @Mani-Sadhasivam
/boards/arm/nrf51_blenano/                @rsalveti
/boards/arm/nrf51_pca10028/               @carlescufi
/boards/arm/nrf52_pca10040/               @carlescufi
/boards/arm/nrf52_pca20020/               @tkln
/boards/arm/nrf52810_pca10040/            @carlescufi
/boards/arm/nrf52840_pca10056/            @carlescufi
/boards/arm/nrf52840_pca10059/            @lemrey
/boards/arm/nrf9160_pca10090/             @ioannisg
/boards/arm/nucleo*/                      @erwango
/boards/arm/nucleo_f401re/                @rsalveti @idlethread
/boards/arm/sam4s_xplained/               @fallrisk
/boards/arm/v2m_beetle/                   @fvincenzo
/boards/arm/olimexino_stm32/              @ydamigos
/boards/arm/stm32*_disco/                 @erwango
/boards/arm/stm32f3_disco/                @ydamigos
/boards/arm/stm32*_eval/                  @erwango
/boards/nios2/                            @ramakrishnapallala
/boards/nios2/altera_max10/               @ramakrishnapallala
/boards/posix/                            @aescolar
/boards/riscv32/                          @kgugala @pgielda @nategraff-sifive
/boards/shields/                          @erwango
/boards/x86/                              @andrewboie @nashif
/boards/x86/arduino_101/                  @nashif
/boards/x86/galileo/                      @nashif
/boards/x86/quark_d2000_crb/              @nashif
/boards/x86/quark_se_c1000_devboard/      @nashif
/boards/xtensa/                           @nashif @dcpleung
/boards/xtensa/intel_s1000_crb/           @sathishkuttan @dcpleung
# All cmake related files
/cmake/                                   @SebastianBoe @nashif
/cmake/compiler/xcc/                      @nashif
/cmake/toolchain/xcc/                     @nashif
/CMakeLists.txt                           @SebastianBoe @nashif
/doc/                                     @dbkinder
/doc/guides/coccinelle.rst                @himanshujha199640 @JuliaLawall
/doc/CMakeLists.txt                       @carlescufi
/doc/scripts/                             @carlescufi
/doc/guides/bluetooth/                    @sjanc @jhedberg @Vudentz
/doc/reference/bluetooth/                 @sjanc @jhedberg @Vudentz
/drivers/*/*mcux*                         @MaureenHelm
/drivers/*/*qmsi*                         @nashif
/drivers/*/*stm32*                        @erwango
/drivers/*/*native_posix*                 @aescolar
/drivers/adc/                             @anangl
/drivers/bluetooth/                       @sjanc @jhedberg @Vudentz
/drivers/can/                             @alexanderwachter
/drivers/clock_control/*stm32f4*          @rsalveti @idlethread
/drivers/counter/                         @anangl
/drivers/display/                         @vanwinkeljan
/drivers/ethernet/                        @jukkar @tbursztyka @pfalcon
/drivers/flash/                           @nashif
/drivers/flash/*stm32*                    @superna9999
/drivers/gpio/*stm32*                     @rsalveti @idlethread
/drivers/hwinfo/                          @alexanderwachter
/drivers/i2s/i2s_ll_stm32*                @avisconti
/drivers/ieee802154/                      @jukkar @tbursztyka
/drivers/interrupt_controller/            @andrewboie
/drivers/led/                             @Mani-Sadhasivam
/drivers/led_strip/                       @mbolivar
/drivers/modem/                           @mike-scott
/drivers/pinmux/stm32/                    @rsalveti @idlethread
/drivers/sensor/                          @bogdan-davidoaia @MaureenHelm
/drivers/sensor/hts*/                     @avisconti
/drivers/sensor/lis*/                     @avisconti
/drivers/sensor/lps*/                     @avisconti
/drivers/sensor/lsm*/                     @avisconti
/drivers/serial/uart_altera_jtag_hal.c    @ramakrishnapallala
/drivers/net/slip.c                       @jukkar @tbursztyka
/drivers/spi/                             @tbursztyka
/drivers/spi/spi_ll_stm32.*               @superna9999
/drivers/timer/altera_avalon_timer_hal.c  @ramakrishnapallala
/drivers/timer/riscv_machine_timer.c      @nategraff-sifive @kgugala @pgielda
/drivers/usb/                             @jfischer-phytec-iot @finikorg
/drivers/usb/device/usb_dc_stm32.c        @ydamigos @loicpoulain
/drivers/i2c/i2c_ll_stm32*                @ldts @ydamigos
/drivers/wifi/                            @jukkar @tbursztyka @pfalcon
/drivers/wifi/eswifi/                     @loicpoulain
/dts/arm/st/                              @erwango
/dts/arm/nordic/                          @ioannisg @carlescufi
/dts/arm/nxp/                             @MaureenHelm
/dts/bindings/can/                        @alexanderwachter
/dts/bindings/*/nordic*                   @anangl
/dts/bindings/*/nxp*                      @MaureenHelm
/ext/fs/                                  @nashif @ramakrishnapallala
/ext/hal/cmsis/                           @MaureenHelm @galak
/ext/hal/libmetal/                        @galak
/ext/hal/nordic/                          @carlescufi @anangl
/ext/hal/nxp/                             @MaureenHelm
/ext/hal/qmsi/                            @nashif
/ext/hal/st/stm32cube/                    @erwango
/ext/hal/ti/simplelink/                   @vanti
/ext/lib/crypto/mbedtls/                  @nashif
/ext/lib/crypto/tinycrypt/                @ceolin
/include/adc.h                            @anangl
/include/app_memory/                      @andrewboie
/include/arch/arc/                        @vonhust @ruuddw
/include/arch/arc/arch.h                  @andrewboie
/include/arch/arc/v2/irq.h                @andrewboie
/include/arch/arm/                        @MaureenHelm @galak
/include/arch/arm/cortex_m/irq.h          @andrewboie
/include/arch/nios2/                      @andrewboie
/include/arch/nios2/arch.h                @andrewboie
/include/arch/posix/                      @aescolar
/include/arch/riscv32/                    @nategraff-sifive @kgugala @pgielda
/include/arch/x86/                        @andrewboie @ramakrishnapallala
/include/arch/x86/arch.h                  @andrewboie
/include/arch/xtensa/                     @andrewboie
/include/atomic.h                         @andrewboie @andyross
/include/bluetooth/                       @sjanc @jhedberg @Vudentz
/include/cache.h                          @andrewboie @andyross
/include/can.h                            @alexanderwachter
/include/counter.h                        @anangl
/include/device.h                         @ramakrishnapallala @nashif
/include/display.h                        @vanwinkeljan
/include/display/                         @vanwinkeljan
/include/drivers/bluetooth/               @sjanc @jhedberg @Vudentz
/include/drivers/modem/                   @mike-scott
/include/drivers/ioapic.h                 @andrewboie
/include/drivers/loapic.h                 @andrewboie
/include/drivers/mvic.h                   @andrewboie
/include/fs.h                             @nashif @ramakrishnapallala
/include/fs/                              @nashif @ramakrishnapallala
/include/hwinfo.h                         @alexanderwachter
/include/init.h                           @andrewboie @andyross
/include/irq.h                            @andrewboie @andyross
/include/irq_offload.h                    @andrewboie @andyross
/include/kernel.h                         @andrewboie @andyross
/include/kernel_version.h                 @andrewboie @andyross
/include/led.h                            @Mani-Sadhasivam
/include/led_strip.h                      @mbolivar
/include/linker/app_smem*.ld              @andrewboie
/include/linker/linker-defs.h             @andrewboie @andyross
/include/linker/linker-tool-gcc.h         @andrewboie @andyross
/include/linker/linker-tool.h             @andrewboie @andyross
/include/linker/section_tags.h            @andrewboie @andyross
/include/linker/sections.h                @andrewboie @andyross
/include/logging/                         @nordic-krch
/include/misc/                            @andrewboie @andyross
/include/net/                             @jukkar @tbursztyka @pfalcon
/include/net/buf.h                        @jukkar @jhedberg @tbursztyka @pfalcon
/include/posix/                           @pfalcon
/include/power.h                          @ramakrishnapallala @nashif
/include/sensor.h                         @bogdan-davidoaia
/include/shared_irq.h                     @andrewboie @andyross
/include/shell/                           @jarz-nordic @nordic-krch
/include/spi.h                            @tbursztyka
/include/sw_isr_table.h                   @andrewboie @andyross
/include/sys_clock.h                      @andrewboie @andyross
/include/sys_io.h                         @andrewboie @andyross
/include/toolchain.h                      @andrewboie @andyross @nashif
/include/toolchain/                       @andrewboie @andyross
/include/zephyr.h                         @andrewboie @andyross
/kernel/                                  @andrewboie @andyross
/lib/gui/                                 @vanwinkeljan
/lib/posix/                               @pfalcon
/kernel/device.c                          @andrewboie @andyross @nashif
/kernel/idle.c                            @andrewboie @andyross @nashif
/samples/basic/servo_motor/*microbit*     @jhe
/samples/bluetooth/                       @sjanc @jhedberg @Vudentz
/samples/boards/intel_s1000_crb/          @sathishkuttan @rgundi @nashif
/samples/display/                         @vanwinkeljan
/samples/drivers/CAN/                     @alexanderwachter
/samples/gui/                             @vanwinkeljan
/samples/net/                             @jukkar @tbursztyka @pfalcon
/samples/net/dns_resolve/                 @jukkar @tbursztyka @pfalcon
/samples/net/lwm2m_client/                @mike-scott
/samples/net/mqtt_publisher/              @jukkar @tbursztyka
/samples/net/sockets/coap_client/         @rveerama1
/samples/net/sockets/coap_server/         @rveerama1
/samples/net/sockets/                     @jukkar @tbursztyka @pfalcon
/samples/sensor/                          @bogdan-davidoaia
/samples/subsys/usb/                      @jfischer-phytec-iot @finikorg
/samples/subsys/power/                    @ramakrishnapallala @pizi-nordic
/scripts/coccicheck                       @himanshujha199640 @JuliaLawall
/scripts/coccinelle/                      @himanshujha199640 @JuliaLawall
/scripts/elf_helper.py                    @andrewboie
/scripts/sanity_chk/expr_parser.py        @andrewboie @nashif
/scripts/gen_app_partitions.py            @andrewboie
/arch/x86/gen_gdt.py                      @andrewboie
/arch/x86/gen_idt.py                      @andrewboie
/scripts/gen_kobject_list.py              @andrewboie
/arch/x86/gen_mmu_x86.py                  @andrewboie
/scripts/gen_priv_stacks.py               @agross-linaro
/scripts/gen_syscall_header.py            @andrewboie
/scripts/gen_syscalls.py                  @andrewboie
/scripts/process_gperf.py                 @andrewboie
/scripts/sanity_chk/                      @andrewboie @nashif
/scripts/sanitycheck                      @andrewboie @nashif
/scripts/series-push-hook.sh              @erwango
/scripts/west_commands/                   @mbolivar
/scripts/west-commands.yml                @mbolivar
/subsys/bluetooth/                        @sjanc @jhedberg @Vudentz
/subsys/bluetooth/controller/             @carlescufi @cvinayak @thoh-ot
/subsys/fs/                               @nashif
/subsys/fs/fcb/                           @nvlsianpu
/subsys/fs/nvs/                           @Laczen
/subsys/logging/                          @nordic-krch
/subsys/net/buf.c                         @jukkar @jhedberg @tbursztyka @pfalcon
/subsys/net/ip/                           @jukkar @tbursztyka @pfalcon
/subsys/net/lib/                          @jukkar @tbursztyka @pfalcon
/subsys/net/lib/dns/                      @jukkar @tbursztyka @pfalcon
/subsys/net/lib/http/                     @jukkar @tbursztyka
/subsys/net/lib/lwm2m/                    @mike-scott
/subsys/net/lib/mqtt/                     @jukkar @tbursztyka
/subsys/net/lib/coap/                     @rveerama1
/subsys/net/lib/sockets/                  @jukkar @tbursztyka @pfalcon
/subsys/power/                            @ramakrishnapallala @pizi-nordic
/subsys/settings/                         @nvlsianpu
/subsys/shell/                            @jarz-nordic @nordic-krch
/subsys/storage/                          @nvlsianpu
/subsys/usb/                              @jfischer-phytec-iot @finikorg
/tests/boards/native_posix/               @aescolar
/tests/boards/intel_s1000_crb/            @rgundi @dcpleung @sathishkuttan
/tests/bluetooth/                         @sjanc @jhedberg @Vudentz
/tests/posix/                             @pfalcon
/tests/crypto/                            @ceolin
/tests/crypto/mbedtls/                    @nashif @ceolin
/tests/drivers/can/                       @alexanderwachter
/tests/drivers/hwinfo/                    @alexanderwachter
/tests/drivers/spi/                       @tbursztyka
/tests/kernel/                            @andrewboie @andyross @nashif
/tests/net/                               @jukkar @tbursztyka @pfalcon
/tests/net/buf/                           @jukkar @jhedberg @tbursztyka @pfalcon
/tests/net/lib/                           @jukkar @tbursztyka @pfalcon
/tests/net/lib/http_header_fields/        @jukkar @tbursztyka
/tests/net/lib/mqtt_packet/               @jukkar @tbursztyka
/tests/net/lib/coap/                      @rveerama1
/tests/net/socket/                        @jukkar @tbursztyka @pfalcon
/tests/subsys/fs/                         @nashif @ramakrishnapallala
/tests/subsys/settings/                   @nvlsianpu

# Get all docs reviewed
*.rst                                     @dbkinder
