# CODEOWNERS for autoreview assigning in github

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

# Get all docs reviewed
*.rst                                    @dbkinder
.known-issues/*                          @inakypg @nashif
MAINTAINERS                              @inakypg @nashif
arch/arc/*                               @cjordan44 @ruuddw
arch/arc/core/*                          @andrewboie
arch/arm/*                               @MaureenHelm @galak
arch/arm/soc/arm/mps2/*                  @fvincenzo
arch/arm/soc/atmel_sam/sam4s             @fallrisk
arch/arm/soc/nxp*/                       @MaureenHelm
arch/arm/soc/st_stm32/*                  @erwango
arch/arm/soc/st_stm32/stm32f4/*          @rsalveti @idlethread
arch/arm/soc/ti_simplelink/cc32xx        @GAnthony
arch/arm/soc/ti_simplelink/msp432p4xx    @Mani-Sadhasivam
arch/nios2/*                             @andrewboie @ramakrishnapallala
arch/nios2/core/*                        @andrewboie @ramakrishnapallala
arch/posix/*                             @aescolar-ot
arch/riscv32                             @fractalclone @kgugala @pgielda
arch/x86/*                               @andrewboie @youvedeep
arch/x86/core/*                          @andrewboie
arch/x86/core/crt0.S                     @youvedeep @nashif
arch/x86/soc/intel_quark/quark_d2000/*   @nashif
arch/x86/soc/intel_quark/quark_se/*      @nashif
arch/x86/soc/intel_quark/quark_x1000/*   @nashif
arch/xtensa/*                            @andrewboie @rgundi @andyross
boards/arc/*                             @cjordan44 @ruuddw
boards/arc/arduino_101_sss/*             @nashif
boards/arc/em_starterkit/*               @cjordan44
boards/arc/quark_se_c1000_ss_devboard/*  @nashif
boards/arm/*                             @MaureenHelm @galak
boards/arm/96b_carbon/*                  @rsalveti @idlethread
boards/arm/96b_nitrogen/*                @idlethread
boards/arm/96b_neonkey/*                 @Mani-Sadhasivam
boards/arm/cc3220sf_launchxl/*           @GAnthony
boards/arm/curie_ble/*                   @jhedberg
boards/arm/disco_l475_iot1/*             @erwango
boards/arm/frdm*/*                       @MaureenHelm
boards/arm/hexiwear*/*                   @MaureenHelm
boards/arm/lpcxpresso*/*                 @MaureenHelm
boards/arm/mimxrt*/*                     @MaureenHelm
boards/arm/mps2_an385/*                  @fvincenzo
boards/arm/msp_exp432p401r_launchxl/*    @Mani-Sadhasivam
boards/arm/nrf51_blenano/*               @rsalveti
boards/arm/nrf52_pca10040/*              @carlescufi
boards/arm/nucleo_f401re/*               @rsalveti @idlethread
boards/arm/sam4s_xplained                @fallrisk
boards/arm/v2m_beetle/*                  @fvincenzo
boards/arm/olimexino_stm32/*             @ydamigos
boards/arm/stm32f3_disco/*               @ydamigos
boards/nios2/*                           @ramakrishnapallala
boards/nios2/altera_max10/*              @ramakrishnapallala
boards/posix/*                           @aescolar-ot
boards/riscv32                           @fractalclone @kgugala @pgielda
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/*                          @andrewboie @ramakrishnapallala
# All cmake related files
cmake/*                                  @nashif @SebastianBoe
/CMakeLists.txt                          @nashif @SebastianBoe
doc/*                                    @dbkinder
doc/subsystems/bluetooth/*               @sjanc @jhedberg @Vudentz
drivers/*/*mcux*                         @MaureenHelm
drivers/*/*qmsi*                         @nashif
drivers/*/*stm32*                        @erwango
drivers/*/*native_posix*                 @aescolar-ot
drivers/adc/*                            @anangl
drivers/bluetooth/*                      @sjanc @jhedberg @Vudentz
drivers/clock_control/*stm32f4*          @rsalveti @idlethread
drivers/counter/*                        @anangl
drivers/ethernet/*                       @jukkar @tbursztyka
drivers/flash/*                          @nashif
drivers/flash/*stm32*                    @superna9999
drivers/gpio/*stm32*                     @rsalveti @idlethread
drivers/gpio/gpio_pulpino.c              @fractalclone @kgugala @pgielda
drivers/ieee802154/*                     @jukkar @tbursztyka
drivers/interrupt_controller/*           @andrewboie
drivers/led_strip/*                      @mbolivar
drivers/pinmux/stm32/*                   @rsalveti @idlethread
drivers/sensor/*                         @bogdan-davidoaia
drivers/serial/uart_altera_jtag.c        @ramakrishnapallala
drivers/serial/uart_riscv_qemu.c         @fractalclone @kgugala @pgielda
drivers/net/slip/*                       @jukkar @tbursztyka
drivers/spi/*                            @tbursztyka
drivers/spi/spi_ll_stm32.*               @superna9999
drivers/timer/altera_avalon_timer.c      @ramakrishnapallala
drivers/timer/pulpino_timer.c            @fractalclone @kgugala @pgielda
drivers/timer/riscv_machine_timer.c      @fractalclone @kgugala @pgielda
drivers/usb                              @youvedeep @andyross
drivers/usb/device/usb_dc_stm32.c        @ydamigos @loicpoulain
drivers/i2c/i2c_ll_stm32*                @ldts @ydamigos
dts/arm/st/*                             @erwango
ext/fs/*                                 @nashif @ramakrishnapallala
ext/hal/cmsis/*                          @MaureenHelm @galak
ext/hal/nordic/mdk/*                     @carlescufi
ext/hal/nxp/mcux/*                       @MaureenHelm
ext/hal/qmsi/*                           @nashif
ext/hal/st/stm32cube/*                   @erwango
ext/lib/crypto/mbedtls/*                 @nashif
ext/lib/crypto/tinycrypt/*               @lpereira
include/adc.h                            @anangl
include/arch/arc/*                       @cjordan44 @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/riscv32                     @fractalclone @kgugala @pgielda
include/arch/x86/*                       @andrewboie @youvedeep
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/counter.h                        @anangl
include/device.h                         @youvedeep @nashif
include/drivers/bluetooth/*              @sjanc @jhedberg @Vudentz
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/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_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/misc/*                           @andrewboie @andyross
include/net/*                            @jukkar @tbursztyka
include/net/buf.h                        @jukkar @jhedberg @tbursztyka
include/power.h                          @youvedeep @nashif
include/sensor.h                         @bogdan-davidoaia
include/shared_irq.h                     @andrewboie @andyross
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
include/toolchain/*                      @andrewboie @andyross
include/zephyr.h                         @andrewboie @andyross
kernel/*                                 @andrewboie @andyross
kernel/posix/*				 @youvedeep
kernel/device.c                          @youvedeep @nashif
kernel/idle.c                            @youvedeep @nashif
samples/bluetooth/*                      @sjanc @jhedberg @Vudentz
samples/boards/quark_se_c1000/power*/*   @youvedeep @nashif
samples/net/*                            @jukkar @tbursztyka
samples/net/dns_resolve/*                @jukkar @tbursztyka
samples/net/http_server/*                @jukkar @tbursztyka
samples/net/lwm2m_client/*               @mike-scott
samples/net/mbedtls_sslclient/*          @jukkar
samples/net/mqtt_publisher/*             @jukkar @tbursztyka
samples/net/coap_client/*                @rveerama1
samples/net/coap_server/*                @rveerama1
samples/sensor/*                         @bogdan-davidoaia
samples/subsys/usb                       @youvedeep @andyross
scripts/expr_parser.py                   @andrewboie
scripts/sanity_chk/*                     @andrewboie
scripts/sanitycheck                      @andrewboie @nashif
scripts/support/runner/*                 @mbolivar
subsys/bluetooth/*                       @sjanc @jhedberg @Vudentz
subsys/bluetooth/controller/*            @carlescufi @cvinayak
subsys/fs/*                              @nashif
subsys/net/buf.c                         @jukkar @jhedberg @tbursztyka
subsys/net/ip/*                          @jukkar @tbursztyka
subsys/net/lib/*                         @jukkar @tbursztyka
subsys/net/lib/dns/*                     @jukkar @tbursztyka
subsys/net/lib/http/*                    @jukkar @tbursztyka
subsys/net/lib/lwm2m/*                   @mike-scott
subsys/net/lib/mqtt/*                    @jukkar @tbursztyka
subsys/net/lib/coap/*                    @rveerama1
subsys/usb                               @youvedeep @andyross
tests/bluetooth/*                        @sjanc @jhedberg @Vudentz
tests/crypto/*                           @lpereira
tests/crypto/mbedtls/*                   @nashif
tests/drivers/spi/*                      @tbursztyka
tests/kernel/*                           @andrewboie @andyross
tests/net/*                              @jukkar @tbursztyka
tests/net/buf/*                          @jukkar @jhedberg @tbursztyka
tests/net/lib/*                          @jukkar @tbursztyka
tests/net/lib/http_header_fields/*       @jukkar @tbursztyka
tests/net/lib/mqtt_packet/*              @jukkar @tbursztyka
tests/net/lib/coap/*                     @rveerama1
tests/subsys/fs/*                        @nashif @ramakrishnapallala
