# 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/            @GAnthony
/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/            @GAnthony
/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/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/bindings/can/                        @alexanderwachter
/ext/fs/                                  @nashif @ramakrishnapallala
/ext/hal/cmsis/                           @MaureenHelm @galak
/ext/hal/nordic/                          @carlescufi @anangl
/ext/hal/nxp/                             @MaureenHelm
/ext/hal/qmsi/                            @nashif
/ext/hal/st/stm32cube/                    @erwango
/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/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
