# 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/                         @nordic-krch
/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/pci/                             @gnuless
/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/                            @galak
/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                        @nordic-krch
/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/logging/                  @nordic-krch @jarz-nordic
/samples/subsys/shell/                    @jarz-nordic @nordic-krch
/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/drivers/uart/uart_async_api/       @Mierunski
/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
