# 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
/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/*/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/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/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
/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/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
