Originally from the Linux Kernel.
# Licensed under the terms of the GNU GPL License version 2

Descriptions of section entries:

	P: Person (obsolete)
	M: Mail patches to: FullName <address@domain>
	R: Designated reviewer: FullName <address@domain>
	   These reviewers should be CCed on patches.
	L: Mailing list that is relevant to this area
	W: Web-page with status/info
	Q: Patchwork web based patch tracking system site
	T: SCM tree type and location.
	   Type is one of: git, hg, quilt, stgit, topgit
	S: Status, one of the following:
	   Supported:	Someone is actually paid to look after this.
	   Maintained:	Someone actually looks after it.
	   Odd Fixes:	It has a maintainer but they don't have time to do
			much other than throw the odd patch in. See below..
	   Orphan:	No current maintainer [but maybe you could take the
			role as you write your new code].
	   Obsolete:	Old code. Something tagged obsolete generally means
			it has been replaced by a better system and you
			should be using that.
	F: Files and directories with wildcard patterns.
	   A trailing slash includes all files and subdirectory files.
	   F:	drivers/net/	all files in and below drivers/net
	   F:	drivers/net/*	all files in drivers/net, but not below
	   F:	*/net/*		all files in "any top level directory"/net
	   One pattern per line.  Multiple F: lines acceptable.
	N: Files and directories with regex patterns.
	   N:	[^a-z]tegra	all files whose path contains the word tegra
	   One pattern per line.  Multiple N: lines acceptable.
	   scripts/get_maintainer.pl has different behavior for files that
	   match F: pattern and matches of N: patterns.  By default,
	   get_maintainer will not look at git log history when an F: pattern
	   match occurs.  When an N: match occurs, git log history is used
	   to also notify the people that have git commit signatures.
	X: Files and directories that are NOT maintained, same rules as F:
	   Files exclusions are tested before file matches.
	   Can be useful for excluding a specific subdirectory, for instance:
	   F:	net/
	   X:	net/ipv6/
	   matches all files in and below net excluding net/ipv6/
	K: Keyword perl extended regex pattern to match content in a
	   patch or file.  For instance:
	   K: of_get_profile
	      matches patches or files that contain "of_get_profile"
	   K: \b(printk|pr_(info|err))\b
	      matches patches or files that contain one or more of the words
	      printk, pr_info or pr_err
	   One regex pattern per line.  Multiple K: lines acceptable.

Note: For the hard of thinking, this list is meant to remain in alphabetical
order. If you could add yourselves to it in alphabetical order that would be
so much easier [Ed]

Maintainers List (try to look for most precise areas first)

		-----------------------------------

ARC ARCHITECTURE
M:	Ruud Derwig <Ruud.Derwig@synopsys.com>
M:	Chuck Jordan <Chuck.Jordan@synopsys.com>
M:	Benjamin Walsh <benjamin.walsh@windriver.com>
S:	Supported
F:	arch/arc/
F:	include/arch/arc/
F:	boards/arc/

ARM ARCHITECTURE
M:	Maureen Helm <maureen.helm@nxp.com>
M:	Kumar Gala <kumar.gala@linaro.org>
S:	Supported
F:	arch/arm/
F:	include/arch/arm/
F:	boards/arm/

ARM CORTEX MICROCONTROLLER SOFTWARE INTERFACE STANDARD (CMSIS)
M:	Maureen Helm <maureen.helm@nxp.com>
M:	Kumar Gala <kumar.gala@linaro.org>
S:	Supported
F:	ext/hal/cmsis/

BOARDS/ARC - ARDUINO 101 SSS
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/arc/arduino_101_sss/

BOARDS/ARC - EM Starterkit
M:	Chuck Jordan <Chuck.Jordan@synopsys.com>
S:	Supported
F:	boards/arc/em_starterkit/

BOARDS/ARC - QUARK SE C1000 SS Devboard
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/arc/quark_se_c1000_ss_devboard/

BOARDS/ARM - 96Boards CARBON
M:	Amit Kucheria <amit.kucheria@linaro.org>
M:	Ricardo Salveti <ricardo.salveti@linaro.org>
S:	Supported
F:	boards/arm/96b_carbon/

BOARDS/ARM - 96Boards NITROGEN
M:	Amit Kucheria <amit.kucheria@linaro.org>
S:	Supported
F:	boards/arm/96b_nitrogen/

BOARDS/ARM - ARDUINO 101 BLE
M:	Johan Hedberg <johan.hedberg@intel.com>
S:	Supported
F:	boards/arm/arduino_101_ble/

BOARDS/ARM - CC3200 LAUNCHXL
M:      Gil Pitney <gil.pitney@linaro.org>
S:      Supported
F:      boards/arm/cc3200_launchxl/

BOARDS/ARM - NXP FRDM-K64F
M:	Maureen Helm <maureen.helm@nxp.com>
S:	Supported
F:	boards/arm/frdm_k64f/

BOARDS/ARM - NXP Hexiwear
M:	Maureen Helm <maureen.helm@nxp.com>
S:	Supported
F:	boards/arm/hexiwear_k64/

BOARDS/ARM - NORDIC NRF51 REDBEAR BLENANO
M:	Ricardo Salveti <ricardo.salveti@linaro.org>
S:	Supported
F:	boards/arm/nrf51_blenano/

BOARDS/ARM - NORDIC NRF52 PCA10040
M:	Carles Cufi <carles.cufi@nordicsemi.no>
S:	Supported
F:	boards/arm/nrf52_pca10040/

BOARDS/ARM - NUCLEO-64 F401RE Devboard
M:	Amit Kucheria <amit.kucheria@linaro.org>
M:	Ricardo Salveti <ricardo.salveti@linaro.org>
S:	Supported
F:	boards/arm/nucleo_f401re/

BOARDS/ARM - ARM LTD V2M Beetle
M:	Vincenzo Frascino <vincenzo.frascino@linaro.org>
S:	Supported
F:	boards/arm/v2m_beetle/

BOARDS/NIOS2 - ALTERA MAX10
M:	Andrew Boie <andrew.p.boie@intel.com>
S:	Supported
F:	boards/nios2/altera_max10/

BOARDS/X86 - ARDUINO 101
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/x86/arduino_101/

BOARDS/X86 - Galileo
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/x86/galileo/

BOARDS/X86 - QUARK D2000 Devboard
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/x86/quark_d2000/

BOARDS/X86 - QUARK SE C1000 Devboard
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	boards/x86/quark_se_c1000/

BLUETOOTH
M:	Johan Hedberg <johan.hedberg@intel.com>
M:	Luiz Augusto von Dentz <luiz.dentz@gmail.com>
M:	Szymon Janc <szymon.janc@gmail.com>
S:	Supported
W:	https://www.zephyrproject.org/doc/subsystems/bluetooth/bluetooth.html
F:	subsys/bluetooth/
F:	include/bluetooth/
F:	drivers/bluetooth/
F:	samples/bluetooth/
F:	tests/bluetooth/
F:	doc/subsystems/bluetooth/

BLUETOOTH CONTROLLER
M:	Vinayak Chettimada <vinayak.kariappa.chettimada@nordicsemi.no>
M:	Carles Cufi <carles.cufi@nordicsemi.no>
S:	Supported
F:	subsys/bluetooth/controller/

CC3200 SDK
M:      Gil Pitney <gil.pitney@linaro.org>
S:      Supported
F:      ext/hal/cc3200sdk/

CC32XX SOC - TI SIMPLELINK
M:      Gil Pitney <gil.pitney@linaro.org>
S:      Supported
F:      arch/arm/soc/ti_simplelink/

DOCUMENTATION
M:	Kinder, David <david.b.kinder@intel.com>
M:	Perez-Gonzalez, Inaky <inaky.perez-gonzalez@intel.com>
S:	Supported
F:	doc/

FILE SYSTEM
M:	Ramesh Thomas <ramesh.thomas@intel.com>
M:	Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
S:	Supported
F:	ext/fs/
F:	subsys/fs/
F:	include/fs/
F:	include/fs.h
F:	samples/fs/

FLASH DRIVER
M:	Baohong Liu <baohong.liu@intel.com>
M:	Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
S:	Supported
F:	drivers/flash/

INTERRUPTS
M:	Andrew Boie <andrew.p.boie@intel.com>
S:	Supported
F:	drivers/interrupt_controller/
F:	arch/arc/core/
F:	arch/arm/core/
F:	arch/nios2/core/
F:	arch/x86/core/
F:	include/irq.h
F:	include/arch/x86/arch.h
F:	include/arch/arm/cortex_m/irq.h
F:	include/arch/nios2/arch.h
F:	include/arch/arc/arch.h
F:	include/arch/arc/v2/irq.h
F:	include/drivers/loapic.h
F:	include/drivers/ioapic.h
F:	include/drivers/mvic.h

KERNEL CORE
M:	Benjamin Walsh <benjamin.walsh@windriver.com>
M:	Allan Stephens <allan.stephens@windriver.com>
S:	Supported
F:	kernel/
F:	include/nanokernel.h
F:	include/microkernel.h
F:	include/microkernel/
F:	include/misc/
F:	include/toolchain/
F:	include/atomic.h
F:	include/cache.h
F:	include/init.h
F:	include/irq.h
F:	include/irq_offload.h
F:	include/kernel_version.h
F:	include/linker-defs.h
F:	include/linker-tool-gcc.h
F:	include/linker-tool.h
F:	include/section_tags.h
F:	include/sections.h
F:	include/shared_irq.h
F:	include/sw_isr_table.h
F:	include/sys_clock.h
F:	include/sys_io.h
F:	include/toolchain.h
F:	include/zephyr.h

KINETIS SOFTWARE DEVELOPMENT KIT (KSDK)
M:	Maureen Helm <maureen.helm@nxp.com>
S:	Supported
F:	ext/hal/ksdk/

KNOWN ISSUES
M:	Anas Nashif <anas.nashif@intel.com>
M:	Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
M:	Javier B Perez <javier.b.perez.hernandez@intel.com>
F:	.known-issues/


MAINTAINERS
M:	Javier B Perez <javier.b.perez.hernandez@intel.com>
M:	Anas Nashif <anas.nashif@intel.com>
M:	Perez-Gonzalez, Inaky <inaky.perez-gonzalez@intel.com>
S:	Supported
F:	MAINTAINERS

MBEDTLS
M:	Sergio Rodriguez <sergio.sf.rodriguez@intel.com>
M:	Jithu Joseph <jithu.joseph@intel.com>
M:	Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
S:	Supported
F:	ext/lib/crypto/mbedtls/
F:	samples/net/mbedtls_sslclient/
F:	tests/crypto/test_mbedtls/

NETWORKING
M:	Jukka Rissanen <jukka.rissanen@linux.intel.com>
S:	Supported
W:	https://www.zephyrproject.org/doc/subsystems/networking/networking.html
F:	net/ip/
F:	include/net/
F:	samples/net/
F:	tests/net/

NETWORK APPLICATIONS
M:	Flavio Santes <flavio.santes@intel.com>
S:	Supported
F:	samples/net/dns_client/
F:	samples/net/nats_clients/
F:	samples/net/paho_mqtt_clients/

NETWORK BUFFERS
M:	Johan Hedberg <johan.hedberg@intel.com>
M:	Jukka Rissanen <jukka.rissanen@linux.intel.com>
S:	Supported
W:	https://www.zephyrproject.org/doc/subsystems/networking/buffers.html
F:	net/buf.c
F:	include/net/buf.h
F:	tests/net/buf/

NIOS II
M:	Andrew Boie <andrew.p.boie@intel.com>
S:	Supported
F:	arch/nios2/
F:	include/arch/nios2/
F:	drivers/serial/uart_altera_jtag.c
F:	drivers/timer/altera_avalon_timer.c
F:	tests/kernel/test_intmath/
F:	boards/nios2/

NORDIC MDK
M:	Carles Cufi <carles.cufi@nordicsemi.no>
S:	Supported
F:	ext/hal/nordic/mdk/

POWER MANAGEMENT
M:	Ramesh Thomas <ramesh.thomas@intel.com>
M:	Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
S:	Supported
F:	arch/x86/core/crt0.S
F:	include/device.h
F:	include/init.h
F:	include/power.h
F:	kernel/microkernel/k_idle.c
F:	kernel/nanokernel/device.c
F:	samples/power/

QMSI
M:	Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	ext/hal/qmsi/

QMSI DRIVERS
M:	Sergio Rodriguez <sergio.sf.rodriguez@intel.com>
M:	Baohong Liu <baohong.liu@intel.com>
M:	Kuo-Lang Tseng <kuo-lang.tseng@intel.com>
S:	Supported
F:	drivers/*/*qmsi*
F:	drivers/*/*/*qmsi*

QUARK D2000 SOC
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	arch/x86/soc/intel_quark/quark_d2000/

QUARK SE C1000 SOC
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	arch/x86/soc/intel_quark/quark_se_c1000/

QUARK X1000 SOC
M:      Anas Nashif <anas.nashif@intel.com>
S:	Supported
F:	arch/x86/soc/intel_quark/quark_x1000/

SANITYCHECK
M:	Andrew Boie <andrew.p.boie@intel.com>
S:	Supported
F:	scripts/sanitycheck
F:	scripts/expr_parser.py
F:	scripts/sanity_chk/

SENSOR DRIVERS
M:	Bogdan Davidoaia <bogdan.m.davidoaia@intel.com>
M:	Laurentiu Palcu <laurentiu.palcu@intel.com>
M:	Murtaza Alexandru <alexandru.murtaza@intel.com>
M:	Vlad Dogaru <vlad.dogaru@intel.com>
S:	Supported
W:	https://www.zephyrproject.org/doc/subsystems/sensor.html
F:	include/sensor.h
F:	drivers/sensor/
F:	samples/sensor/

STM32CUBE SDK
M:	Erwan Gouriou <erwan.gouriou@linaro.org>
S:	Supported
F:	ext/hal/st/stm32cube/

STM32F4X SoC FAMILY and DRIVERS
M:	Amit Kucheria <amit.kucheria@linaro.org>
M:	Ricardo Salveti <ricardo.salveti@linaro.org>
S:	Supported
F:	arch/arm/soc/st_stm32/stm32f4/
F:	drivers/pinmux/stm32/
F:	drivers/gpio/*stm32*
F:	drivers/clock_control/*stm32f4*

TINYCRYPT
M:	Constanza Heath <constanza.m.heath@intel.com>
M:	Flavio Santes <flavio.santes@intel.com>
S:	Supported
F:	ext/lib/crypto/tinycrypt/
F:	tests/crypto/

USB
M:	Jithu Joseph <jithu.joseph@intel.com>
S:	Supported
F:	subsys/usb
F:	drivers/usb
F:	samples/usb

X86 ARCH
M:	Benjamin Walsh <benjamin.walsh@windriver.com>
M:	Allan Stephens <allan.stephens@windriver.com>
S:	Supported
F:	arch/x86/
F:	include/arch/x86/
F:	boards/x86/

ZOAP
M:	Vinicius Costa Gomes <vinicius.gomes@intel.com>
S:	Supported
F:	lib/iot/zoap/
F:	samples/net/zoap_client/
F:	samples/net/zoap_server/
F:	tests/net/zoap/

THE REST
M:	Anas Nashif <anas.nashif@intel.com>
M:	Kumar Gala <kumar.gala@linaro.org>
L:	devel@lists.zephyrproject.com
T:	git https://gerrit.zephyrproject.org/r/a/zephyr
S:	Buried alive in reporters
F:	*
F:	*/
