Commit graph

18591 commits

Author SHA1 Message Date
Leandro Pereira
ca42e85bcd scripts: Add device tree parser script
As decided during the Zephyr Mini Summit in December 2016, we're going
to use the same Device Tree format as used by the Linux kernel to store
device configuration from vendors.

This is a parser written during the summit that will parse *.dts files,
and will be used as part of the solution to read in the files provided
by manufacturers and generate board configuration files.

The script will also optionally generate files in the DOT language so
that DTS files can be graphed using the Graphviz suite.

Change-Id: I6e2b7a64a6dcc349b2888332a660b4700af6cd63
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2017-01-30 20:51:21 +00:00
Anas Nashif
d159c8e476 Merge "Merge arm branch into master" 2017-01-30 18:22:45 +00:00
Chuck Jordan
ac34b99af3 i2c: Can pass IRQ vector constant to irq_enable
I found that I was not getting the i2C interrupt.
When CONFIG_I2C_0_IRQ_DIRECT=y, it is acceptable to just
pass the constant to irq_enable.

See ZEP-1651.

Change-Id: I10955e6d6fe5fdd2dda916c92c8bc8a2e871f41a
Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
2017-01-30 17:52:58 +00:00
Kumar Gala
9ebb33786d Merge arm branch into master
- Updated stm32cube HAL for L4 and F4
- Updated docs for various boards
- Continuation of CMSIS conversion from scb/scs
- Added support for NXP KW41Z SoC & FRDM-KW41Z board
- Added support for ARM MPS AN385 SoC & MPS board

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

Erwan Gouriou (4):
      ext: stm32cube: update stm32f4xx cube version
      ext: stm32cube: update stm32l4xx cube version
      board: add nucleo_411re board documentation
      doc: update template for nucleo_f401re board

Jon Medhurst (1):
      MAINTAINERS: Remove Jon Medhurst from MPS2 maintainership

Kumar Gala (8):
      arm: cmsis: Convert _ScbExcPrioSet to NVIC_SetPriority
      arm: move exception priority to exc.h
      arm: cmsis: Remove nvic.h and use CMSIS NVIC calls directly
      arm: refactor clearing of exception faults to common code
      arm: cmsis: Convert _ScbNmiPend to use direct CMSIS register access
      arm: cmsis: Convert _ScbPendsvSet to use direct CMSIS register access
      arm: cmsis: Convert _ScbIsInThreadMode to use direct CMSIS register access
      arm: scb: Move SCB asm defines into cpu_idle.S

Maureen Helm (8):
      mcux: Import mcux for kw41z
      flash: Update mcux shim to new mcux version
      serial: Introduce new mcux lpuart shim driver
      k64: Rename security_frdm_k64f section
      kw41z: Add kw41z SoC
      frdm_kw41z: Add frdm_kw41z board
      MAINTAINERS: Add frdm_kw41z board
      frdm_k64f: Add RST board documentation

Vincenzo Frascino (6):
      soc: arm: mps2: Add configuration for CMSDK Driver
      boards: arm: mps2_an385: Enable CMSDK Drivers
      doc: Update mps2_an385 documentation
      soc: arm: mps2: Fix UART4 base address
      boards: arm: mps2: Add pinmuxing
      doc: Update mps2_an385 documentation

 MAINTAINERS                                        |      6 +-
 arch/arm/core/cortex_m/scb.c                       |      2 +-
 arch/arm/core/cpu_idle.S                           |      5 +
 arch/arm/core/irq_init.c                           |      3 +-
 arch/arm/core/irq_manage.c                         |     12 +-
 arch/arm/core/thread_abort.c                       |      4 +-
 arch/arm/include/cortex_m/exc.h                    |     36 +-
 arch/arm/soc/arm/mps2/soc_devices.h                |     41 +-
 arch/arm/soc/arm/mps2/soc_memory_map.h             |     30 +-
 arch/arm/soc/arm/mps2/soc_registers.h              |     31 +
 arch/arm/soc/atmel_sam3/soc.c                      |      8 +-
 arch/arm/soc/nordic_nrf5/nrf52/soc.c               |      8 +-
 arch/arm/soc/nxp_kinetis/Kconfig                   |     16 +
 arch/arm/soc/nxp_kinetis/k6x/linker.ld             |      2 +-
 arch/arm/soc/nxp_kinetis/k6x/soc.c                 |     11 +-
 .../soc/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4  |     57 +
 .../soc/nxp_kinetis/kwx/Kconfig.defconfig.series   |     21 +
 arch/arm/soc/nxp_kinetis/kwx/Kconfig.series        |     15 +
 arch/arm/soc/nxp_kinetis/kwx/Kconfig.soc           |     39 +
 arch/arm/soc/nxp_kinetis/kwx/Makefile              |      8 +
 arch/arm/soc/nxp_kinetis/kwx/linker.ld             |     31 +
 arch/arm/soc/nxp_kinetis/kwx/soc.c                 |    132 +
 arch/arm/soc/nxp_kinetis/kwx/soc.h                 |     66 +
 arch/arm/soc/st_stm32/stm32f1/soc.c                |      8 +-
 arch/arm/soc/st_stm32/stm32f3/soc.c                |      8 +-
 arch/arm/soc/st_stm32/stm32f4/soc.c                |      8 +-
 arch/arm/soc/st_stm32/stm32l4/soc.c                |      8 +-
 boards/arm/frdm_k64f/doc/frdm_k64f.jpg             |    Bin 0 -> 3081834 bytes
 boards/arm/frdm_k64f/doc/frdm_k64f.rst             |    245 +
 boards/arm/frdm_kw41z/Kconfig.board                |     11 +
 boards/arm/frdm_kw41z/Kconfig.defconfig            |    100 +
 boards/arm/frdm_kw41z/Makefile                     |     10 +
 boards/arm/frdm_kw41z/board.h                      |     44 +
 boards/arm/frdm_kw41z/doc/frdm_kw41z.jpg           |    Bin 0 -> 161842 bytes
 boards/arm/frdm_kw41z/doc/frdm_kw41z.rst           |    180 +
 boards/arm/frdm_kw41z/frdm_kw41z_defconfig         |     11 +
 boards/arm/frdm_kw41z/pinmux.c                     |     52 +
 boards/arm/mps2_an385/Kconfig.defconfig            |     69 +
 boards/arm/mps2_an385/Makefile                     |      6 +-
 boards/arm/mps2_an385/doc/mps2_an385.rst           |     89 +
 boards/arm/mps2_an385/mps2_an385_defconfig         |     11 +
 boards/arm/mps2_an385/pinmux.c                     |    168 +
 boards/arm/nucleo_f401re/doc/nucleof401re.rst      |     24 +-
 .../doc/img/nucleo64_perf_logo_1024.png            |    Bin 0 -> 780528 bytes
 .../doc/img/nucleo_f411re_arduino.png              |    Bin 0 -> 566518 bytes
 .../nucleo_f411re/doc/img/nucleo_f411re_morpho.png |    Bin 0 -> 481546 bytes
 boards/arm/nucleo_f411re/doc/nucleof411re.rst      |    201 +
 drivers/flash/soc_flash_mcux.c                     |      2 +-
 drivers/serial/Kconfig                             |      2 +
 drivers/serial/Kconfig.mcux_lpuart                 |     40 +
 drivers/serial/Makefile                            |      1 +
 drivers/serial/uart_mcux_lpuart.c                  |    307 +
 drivers/timer/cortex_m_systick.c                   |      2 +-
 ext/hal/nxp/mcux/README                            |     12 +-
 ext/hal/nxp/mcux/devices/MKW21Z4/MKW21Z4.h         |  12908 +++
 ext/hal/nxp/mcux/devices/MKW21Z4/MKW21Z4.svd       | 103175 +++++++++++++++++
 .../nxp/mcux/devices/MKW21Z4/MKW21Z4_features.h    |   1719 +
 .../mcux/devices/MKW21Z4/fsl_device_registers.h    |     56 +
 ext/hal/nxp/mcux/devices/MKW21Z4/system_MKW21Z4.c  |    179 +
 ext/hal/nxp/mcux/devices/MKW21Z4/system_MKW21Z4.h  |    133 +
 ext/hal/nxp/mcux/devices/MKW31Z4/MKW31Z4.h         |  12275 +++
 ext/hal/nxp/mcux/devices/MKW31Z4/MKW31Z4.svd       |  98412 +++++++++++++++++
 .../nxp/mcux/devices/MKW31Z4/MKW31Z4_features.h    |   1719 +
 .../mcux/devices/MKW31Z4/fsl_device_registers.h    |     56 +
 ext/hal/nxp/mcux/devices/MKW31Z4/system_MKW31Z4.c  |    179 +
 ext/hal/nxp/mcux/devices/MKW31Z4/system_MKW31Z4.h  |    133 +
 ext/hal/nxp/mcux/devices/MKW41Z4/MKW41Z4.h         |  12978 +++
 ext/hal/nxp/mcux/devices/MKW41Z4/MKW41Z4.svd       | 103301 ++++++++++++++++++
 .../nxp/mcux/devices/MKW41Z4/MKW41Z4_features.h    |   1719 +
 ext/hal/nxp/mcux/devices/MKW41Z4/clock_config.c    |    221 +
 ext/hal/nxp/mcux/devices/MKW41Z4/clock_config.h    |     55 +
 ext/hal/nxp/mcux/devices/MKW41Z4/fsl_clock.c       |   1321 +
 ext/hal/nxp/mcux/devices/MKW41Z4/fsl_clock.h       |   1138 +
 .../mcux/devices/MKW41Z4/fsl_device_registers.h    |     56 +
 ext/hal/nxp/mcux/devices/MKW41Z4/system_MKW41Z4.c  |    179 +
 ext/hal/nxp/mcux/devices/MKW41Z4/system_MKW41Z4.h  |    133 +
 ext/hal/nxp/mcux/drivers/Makefile                  |      1 +
 ext/hal/nxp/mcux/drivers/fsl_adc16.c               |      5 +-
 ext/hal/nxp/mcux/drivers/fsl_cmp.c                 |      2 +-
 ext/hal/nxp/mcux/drivers/fsl_cmt.c                 |      4 +-
 ext/hal/nxp/mcux/drivers/fsl_common.c              |      5 +-
 ext/hal/nxp/mcux/drivers/fsl_cop.c                 |     77 +
 ext/hal/nxp/mcux/drivers/fsl_cop.h                 |    188 +
 ext/hal/nxp/mcux/drivers/fsl_dac.c                 |      2 +-
 ext/hal/nxp/mcux/drivers/fsl_dac.h                 |     12 +-
 ext/hal/nxp/mcux/drivers/fsl_dcdc.c                |    373 +
 ext/hal/nxp/mcux/drivers/fsl_dcdc.h                |    570 +
 ext/hal/nxp/mcux/drivers/fsl_dspi.c                |      8 +-
 ext/hal/nxp/mcux/drivers/fsl_dspi.h                |      7 +-
 ext/hal/nxp/mcux/drivers/fsl_dspi_edma.c           |     14 +-
 ext/hal/nxp/mcux/drivers/fsl_flash.c               |    164 +-
 ext/hal/nxp/mcux/drivers/fsl_flash.h               |    138 +-
 ext/hal/nxp/mcux/drivers/fsl_i2c.c                 |     66 +-
 ext/hal/nxp/mcux/drivers/fsl_i2c.h                 |      8 +
 ext/hal/nxp/mcux/drivers/fsl_llwu.h                |     10 +-
 ext/hal/nxp/mcux/drivers/fsl_lptmr.h               |     28 +-
 ext/hal/nxp/mcux/drivers/fsl_lpuart.c              |   1105 +
 ext/hal/nxp/mcux/drivers/fsl_lpuart.h              |    753 +
 ext/hal/nxp/mcux/drivers/fsl_lpuart_edma.c         |    334 +
 ext/hal/nxp/mcux/drivers/fsl_lpuart_edma.h         |    190 +
 ext/hal/nxp/mcux/drivers/fsl_ltc.c                 |   4292 +
 ext/hal/nxp/mcux/drivers/fsl_ltc.h                 |   1576 +
 ext/hal/nxp/mcux/drivers/fsl_ltc_edma.c            |   1247 +
 ext/hal/nxp/mcux/drivers/fsl_ltc_edma.h            |    850 +
 ext/hal/nxp/mcux/drivers/fsl_port.h                |      6 +-
 ext/hal/nxp/mcux/drivers/fsl_rtc.c                 |      2 +-
 ext/hal/nxp/mcux/drivers/fsl_rtc.h                 |      8 +
 ext/hal/nxp/mcux/drivers/fsl_tpm.c                 |    665 +
 ext/hal/nxp/mcux/drivers/fsl_tpm.h                 |    590 +
 ext/hal/nxp/mcux/drivers/fsl_trng.c                |   1618 +
 ext/hal/nxp/mcux/drivers/fsl_trng.h                |    232 +
 ext/hal/nxp/mcux/drivers/fsl_tsi_v4.c              |    190 +
 ext/hal/nxp/mcux/drivers/fsl_tsi_v4.h              |    711 +
 ext/hal/st/stm32cube/stm32f4xx/README              |      2 +-
 .../drivers/include/Legacy/stm32_hal_legacy.h      |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal.h      |      9 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_adc.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_adc_ex.h         |     16 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_can.h  |     13 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_cec.h  |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_conf.h |      4 +-
 .../drivers/include/stm32f4xx_hal_cortex.h         |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_crc.h  |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_cryp.h |    634 +-
 .../drivers/include/stm32f4xx_hal_cryp_ex.h        |     82 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_dac.h  |      9 +-
 .../drivers/include/stm32f4xx_hal_dac_ex.h         |      9 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_dcmi.h |      8 +-
 .../drivers/include/stm32f4xx_hal_dcmi_ex.h        |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_def.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_dfsdm.h          |    231 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_dma.h  |     33 +-
 .../drivers/include/stm32f4xx_hal_dma2d.h          |      4 +-
 .../drivers/include/stm32f4xx_hal_dma_ex.h         |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_dsi.h  |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_eth.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_flash.h          |      6 +-
 .../drivers/include/stm32f4xx_hal_flash_ex.h       |    164 +-
 .../drivers/include/stm32f4xx_hal_flash_ramfunc.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_fmpi2c.h         |      9 +-
 .../drivers/include/stm32f4xx_hal_fmpi2c_ex.h      |      8 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_gpio.h |      4 +-
 .../drivers/include/stm32f4xx_hal_gpio_ex.h        |    149 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_hash.h |      4 +-
 .../drivers/include/stm32f4xx_hal_hash_ex.h        |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_hcd.h  |     10 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_i2c.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_i2c_ex.h         |      9 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_i2s.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_i2s_ex.h         |     19 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_irda.h |     18 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_iwdg.h |      4 +-
 .../drivers/include/stm32f4xx_hal_lptim.h          |     14 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_ltdc.h |      4 +-
 .../drivers/include/stm32f4xx_hal_ltdc_ex.h        |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_nand.h |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_nor.h  |     12 +-
 .../drivers/include/stm32f4xx_hal_pccard.h         |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_pcd.h  |     12 +-
 .../drivers/include/stm32f4xx_hal_pcd_ex.h         |     24 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_pwr.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_pwr_ex.h         |     22 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_qspi.h |      9 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_rcc.h  |     63 +-
 .../drivers/include/stm32f4xx_hal_rcc_ex.h         |    867 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_rng.h  |      8 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_rtc.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_rtc_ex.h         |     38 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_sai.h  |     31 +-
 .../drivers/include/stm32f4xx_hal_sai_ex.h         |     40 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_sd.h   |      8 +-
 .../drivers/include/stm32f4xx_hal_sdram.h          |      4 +-
 .../drivers/include/stm32f4xx_hal_smartcard.h      |     18 +-
 .../drivers/include/stm32f4xx_hal_spdifrx.h        |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_spi.h  |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_sram.h |     13 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_tim.h  |      4 +-
 .../drivers/include/stm32f4xx_hal_tim_ex.h         |     40 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_uart.h |     18 +-
 .../drivers/include/stm32f4xx_hal_usart.h          |      8 +-
 .../stm32f4xx/drivers/include/stm32f4xx_hal_wwdg.h |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_ll_fmc.h   |      4 +-
 .../stm32f4xx/drivers/include/stm32f4xx_ll_fsmc.h  |     10 +-
 .../stm32f4xx/drivers/include/stm32f4xx_ll_sdmmc.h |      8 +-
 .../stm32f4xx/drivers/include/stm32f4xx_ll_usb.h   |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal.c          |     17 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_adc.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_adc_ex.c   |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_can.c      |    208 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_cec.c      |     27 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_cortex.c   |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_crc.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_cryp.c     |   1358 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_cryp_ex.c  |   2992 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dac.c      |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dac_ex.c   |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dcmi.c     |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dcmi_ex.c  |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dfsdm.c    |    853 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dma.c      |     13 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dma2d.c    |     16 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dma_ex.c   |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_dsi.c      |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_eth.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_flash.c    |      6 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_flash_ex.c |     45 +-
 .../drivers/src/stm32f4xx_hal_flash_ramfunc.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_fmpi2c.c   |     18 +-
 .../drivers/src/stm32f4xx_hal_fmpi2c_ex.c          |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_gpio.c     |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_hash.c     |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_hash_ex.c  |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_hcd.c      |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_i2c.c      |   1427 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_i2c_ex.c   |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_i2s.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_i2s_ex.c   |     29 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_irda.c     |    573 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_iwdg.c     |     12 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_lptim.c    |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_ltdc.c     |     16 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_ltdc_ex.c  |     14 +-
 .../drivers/src/stm32f4xx_hal_msp_template.c       |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_nand.c     |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_nor.c      |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_pccard.c   |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_pcd.c      |     13 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_pcd_ex.c   |     16 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_pwr.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_pwr_ex.c   |     24 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_qspi.c     |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_rcc.c      |      6 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_rcc_ex.c   |    209 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_rng.c      |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_rtc.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_rtc_ex.c   |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_sai.c      |      9 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_sai_ex.c   |     71 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_sd.c       |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_sdram.c    |      4 +-
 .../drivers/src/stm32f4xx_hal_smartcard.c          |    586 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_spdifrx.c  |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_spi.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_sram.c     |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_tim.c      |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_tim_ex.c   |     28 +-
 .../stm32f4xx_hal_timebase_rtc_alarm_template.c    |      7 +-
 .../stm32f4xx_hal_timebase_rtc_wakeup_template.c   |      7 +-
 .../src/stm32f4xx_hal_timebase_tim_template.c      |     13 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_uart.c     |    576 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_usart.c    |    281 +-
 .../stm32f4xx/drivers/src/stm32f4xx_hal_wwdg.c     |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_ll_fmc.c       |      4 +-
 .../stm32f4xx/drivers/src/stm32f4xx_ll_fsmc.c      |     23 +-
 .../stm32f4xx/drivers/src/stm32f4xx_ll_sdmmc.c     |      8 +-
 .../stm32f4xx/drivers/src/stm32f4xx_ll_usb.c       |     16 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f401xc.h   |  10136 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f401xe.h   |  10126 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f405xx.h   |  17434 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f407xx.h   |  18802 +++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f410cx.h   |   8240 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f410rx.h   |   8252 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f410tx.h   |   8188 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f411xe.h   |  10179 +-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f412cx.h   |  15997 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f412rx.h   |  17391 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f412vx.h   |  17390 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f412zx.h   |  17391 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f413xx.h   |  14994 +++
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f415xx.h   |  17691 ++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f417xx.h   |  19055 +++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f423xx.h   |  15147 +++
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f427xx.h   |  20258 ++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f429xx.h   |  20563 ++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f437xx.h   |  20513 ++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f439xx.h   |  20824 ++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f446xx.h   |  18942 +++-
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f469xx.h   |  24262 ++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f479xx.h   |  24509 +++--
 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f4xx.h     |     19 +-
 .../st/stm32cube/stm32f4xx/soc/system_stm32f4xx.c  |     12 +-
 .../st/stm32cube/stm32f4xx/soc/system_stm32f4xx.h  |      6 +-
 ext/hal/st/stm32cube/stm32l4xx/README              |      2 +-
 .../drivers/include/Legacy/stm32_hal_legacy.h      |     18 +-
 .../drivers/include/stm32_assert_template.h        |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal.h      |     14 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_adc.h  |     10 +-
 .../drivers/include/stm32l4xx_hal_adc_ex.h         |    172 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_can.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_comp.h |     89 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_conf.h |      4 +-
 .../drivers/include/stm32l4xx_hal_cortex.h         |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_crc.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_crc_ex.h         |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_cryp.h |    138 +-
 .../drivers/include/stm32l4xx_hal_cryp_ex.h        |      8 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_dac.h  |     30 +-
 .../drivers/include/stm32l4xx_hal_dac_ex.h         |     39 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_def.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_dfsdm.h          |     56 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_dma.h  |     22 +-
 .../drivers/include/stm32l4xx_hal_firewall.h       |      4 +-
 .../drivers/include/stm32l4xx_hal_flash.h          |     49 +-
 .../drivers/include/stm32l4xx_hal_flash_ex.h       |      4 +-
 .../drivers/include/stm32l4xx_hal_flash_ramfunc.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_gpio.h |      7 +-
 .../drivers/include/stm32l4xx_hal_gpio_ex.h        |    257 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_hcd.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_i2c.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_i2c_ex.h         |     12 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_irda.h |     52 +-
 .../drivers/include/stm32l4xx_hal_irda_ex.h        |     92 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_iwdg.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_lcd.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_lptim.h          |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_nand.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_nor.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_opamp.h          |     19 +-
 .../drivers/include/stm32l4xx_hal_opamp_ex.h       |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_pcd.h  |     27 +-
 .../drivers/include/stm32l4xx_hal_pcd_ex.h         |     18 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_pwr.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_pwr_ex.h         |    101 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_qspi.h |     19 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_rcc.h  |    151 +-
 .../drivers/include/stm32l4xx_hal_rcc_ex.h         |    183 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_rng.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_rtc.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_rtc_ex.h         |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_sai.h  |     14 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_sd.h   |      4 +-
 .../drivers/include/stm32l4xx_hal_smartcard.h      |      4 +-
 .../drivers/include/stm32l4xx_hal_smartcard_ex.h   |      9 +-
 .../drivers/include/stm32l4xx_hal_smbus.h          |    117 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_spi.h  |     18 +-
 .../drivers/include/stm32l4xx_hal_spi_ex.h         |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_sram.h |      4 +-
 .../drivers/include/stm32l4xx_hal_swpmi.h          |     10 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_tim.h  |      4 +-
 .../drivers/include/stm32l4xx_hal_tim_ex.h         |     85 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_tsc.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_uart.h |     24 +-
 .../drivers/include/stm32l4xx_hal_uart_ex.h        |    113 +-
 .../drivers/include/stm32l4xx_hal_usart.h          |     74 +-
 .../drivers/include/stm32l4xx_hal_usart_ex.h       |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_hal_wwdg.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_adc.h   |    111 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_bus.h   |     59 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_comp.h  |     14 +-
 .../drivers/include/stm32l4xx_ll_cortex.h          |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_crc.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_crs.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_dac.h   |    271 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_dma.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_exti.h  |     32 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_fmc.h   |    434 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_gpio.h  |      9 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_i2c.h   |      8 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_iwdg.h  |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_lptim.h |      6 +-
 .../drivers/include/stm32l4xx_ll_lpuart.h          |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_opamp.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_pwr.h   |     48 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_rcc.h   |     73 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_rng.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_rtc.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_sdmmc.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_spi.h   |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_swpmi.h |      4 +-
 .../drivers/include/stm32l4xx_ll_system.h          |     23 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_tim.h   |    155 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_usart.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_usb.h   |     18 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_utils.h |      4 +-
 .../stm32l4xx/drivers/include/stm32l4xx_ll_wwdg.h  |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal.c          |     10 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_adc.c      |     14 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_adc_ex.c   |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_can.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_comp.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_cortex.c   |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_crc.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_crc_ex.c   |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_cryp.c     |     94 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_cryp_ex.c  |    780 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_dac.c      |    161 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_dac_ex.c   |    164 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_dfsdm.c    |     15 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_dma.c      |     21 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_firewall.c |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_flash.c    |     59 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_flash_ex.c |    232 +-
 .../drivers/src/stm32l4xx_hal_flash_ramfunc.c      |      6 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_gpio.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_hcd.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_i2c.c      |     60 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_i2c_ex.c   |      8 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_irda.c     |    136 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_iwdg.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_lcd.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_lptim.c    |      4 +-
 .../drivers/src/stm32l4xx_hal_msp_template.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_nand.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_nor.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_opamp.c    |     10 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_opamp_ex.c |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_pcd.c      |     84 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_pcd_ex.c   |     27 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_pwr.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_pwr_ex.c   |    196 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_qspi.c     |     12 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_rcc.c      |      6 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_rcc_ex.c   |    122 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_rng.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_rtc.c      |     43 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_rtc_ex.c   |     99 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_sai.c      |      5 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_sd.c       |      4 +-
 .../drivers/src/stm32l4xx_hal_smartcard.c          |      6 +-
 .../drivers/src/stm32l4xx_hal_smartcard_ex.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_smbus.c    |    103 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_spi.c      |      8 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_spi_ex.c   |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_sram.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_swpmi.c    |     10 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_tim.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_tim_ex.c   |     93 +-
 .../src/stm32l4xx_hal_timebase_tim_template.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_tsc.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_uart.c     |     34 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_uart_ex.c  |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_usart.c    |      7 +-
 .../stm32l4xx/drivers/src/stm32l4xx_hal_wwdg.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_adc.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_comp.c      |     31 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_crc.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_crs.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_dac.c       |     16 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_dma.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_exti.c      |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_fmc.c       |    414 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_gpio.c      |     15 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_i2c.c       |     18 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_lptim.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_lpuart.c    |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_opamp.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_pwr.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_rcc.c       |     46 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_rng.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_rtc.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_sdmmc.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_spi.c       |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_swpmi.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_tim.c       |    153 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_usart.c     |      4 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_usb.c       |     38 +-
 .../stm32l4xx/drivers/src/stm32l4xx_ll_utils.c     |     16 +-
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l431xx.h   |  14983 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l432xx.h   |  14921 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l433xx.h   |  16093 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l442xx.h   |  15195 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l443xx.h   |  16367 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l451xx.h   |  15451 +++
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l452xx.h   |  16177 +++
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l462xx.h   |  16405 +++
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l471xx.h   |  17226 +--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l475xx.h   |  19702 ++--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l476xx.h   |  19926 ++--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l485xx.h   |  19976 ++--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l486xx.h   |  20200 ++--
 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l4xx.h     |     20 +-
 .../st/stm32cube/stm32l4xx/soc/system_stm32l4xx.c  |      4 +-
 .../st/stm32cube/stm32l4xx/soc/system_stm32l4xx.h  |      4 +-
 include/arch/arm/arch.h                            |      1 -
 include/arch/arm/cortex_m/asm_inline_gcc.h         |      2 +-
 include/arch/arm/cortex_m/exc.h                    |     22 +
 include/arch/arm/cortex_m/irq.h                    |      1 -
 include/arch/arm/cortex_m/nvic.h                   |    233 -
 include/arch/arm/cortex_m/scb.h                    |     86 -
 include/arch/arm/cortex_m/scripts/linker.ld        |     12 +-
 include/section_tags.h                             |      2 +-
 include/sections.h                                 |      2 +-
 scripts/sanity_chk/arches/arm.ini                  |      2 +-
 tests/kernel/arm_runtime_nmi/src/main.c            |      3 +-
 484 files changed, 792231 insertions(+), 196996 deletions(-)
 create mode 100644 arch/arm/soc/arm/mps2/soc_registers.h
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/Kconfig.defconfig.series
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/Kconfig.series
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/Kconfig.soc
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/Makefile
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/linker.ld
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/soc.c
 create mode 100644 arch/arm/soc/nxp_kinetis/kwx/soc.h
 create mode 100644 boards/arm/frdm_k64f/doc/frdm_k64f.jpg
 create mode 100644 boards/arm/frdm_k64f/doc/frdm_k64f.rst
 create mode 100644 boards/arm/frdm_kw41z/Kconfig.board
 create mode 100644 boards/arm/frdm_kw41z/Kconfig.defconfig
 create mode 100644 boards/arm/frdm_kw41z/Makefile
 create mode 100644 boards/arm/frdm_kw41z/board.h
 create mode 100644 boards/arm/frdm_kw41z/doc/frdm_kw41z.jpg
 create mode 100644 boards/arm/frdm_kw41z/doc/frdm_kw41z.rst
 create mode 100644 boards/arm/frdm_kw41z/frdm_kw41z_defconfig
 create mode 100644 boards/arm/frdm_kw41z/pinmux.c
 create mode 100644 boards/arm/mps2_an385/pinmux.c
 create mode 100644 boards/arm/nucleo_f411re/doc/img/nucleo64_perf_logo_1024.png
 create mode 100644 boards/arm/nucleo_f411re/doc/img/nucleo_f411re_arduino.png
 create mode 100644 boards/arm/nucleo_f411re/doc/img/nucleo_f411re_morpho.png
 create mode 100644 boards/arm/nucleo_f411re/doc/nucleof411re.rst
 create mode 100644 drivers/serial/Kconfig.mcux_lpuart
 create mode 100644 drivers/serial/uart_mcux_lpuart.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/MKW21Z4.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/MKW21Z4.svd
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/MKW21Z4_features.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/fsl_device_registers.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/system_MKW21Z4.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW21Z4/system_MKW21Z4.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/MKW31Z4.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/MKW31Z4.svd
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/MKW31Z4_features.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/fsl_device_registers.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/system_MKW31Z4.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW31Z4/system_MKW31Z4.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/MKW41Z4.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/MKW41Z4.svd
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/MKW41Z4_features.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/clock_config.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/clock_config.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/fsl_clock.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/fsl_clock.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/fsl_device_registers.h
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/system_MKW41Z4.c
 create mode 100644 ext/hal/nxp/mcux/devices/MKW41Z4/system_MKW41Z4.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_cop.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_cop.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_dcdc.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_dcdc.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_lpuart.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_lpuart.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_lpuart_edma.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_lpuart_edma.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_ltc.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_ltc.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_ltc_edma.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_ltc_edma.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_tpm.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_tpm.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_trng.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_trng.h
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_tsi_v4.c
 create mode 100644 ext/hal/nxp/mcux/drivers/fsl_tsi_v4.h
 create mode 100644 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f413xx.h
 create mode 100644 ext/hal/st/stm32cube/stm32f4xx/soc/stm32f423xx.h
 create mode 100644 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l451xx.h
 create mode 100644 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l452xx.h
 create mode 100644 ext/hal/st/stm32cube/stm32l4xx/soc/stm32l462xx.h
 delete mode 100644 include/arch/arm/cortex_m/nvic.h

Change-Id: Ie769641b4d6346abaf916f14f96e43a669fc5fec
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:12:07 -06:00
Erwan Gouriou
9a8d4a2e2e doc: update template for nucleo_f401re board
Following comments on nucleo_f411re doc, update doc for
nucleof401re

Change-Id: I86b7a016b604a31e210e425718e835e15560a46a
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2017-01-30 11:07:04 -06:00
Erwan Gouriou
50440b534d board: add nucleo_411re board documentation
This patch adds documentation for nucleo_f411re board

Change-Id: Idbb6f087459f3ea0bd9b5a3096542d0f9e90701b
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2017-01-30 11:02:39 -06:00
Kumar Gala
843e3568de arm: scb: Move SCB asm defines into cpu_idle.S
As cpu_idle.S is the only bit of code that is using the SCB asm defines,
so to allow us to remove scb.h in the future lets move the defines that
are used just into cpu_idle.S

Jira: ZEP-1568

Change-Id: I3c3a6f145ec4c1a43f076d079d5fe1694c255b78
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:39 -06:00
Kumar Gala
772cbd1955 arm: cmsis: Convert _ScbIsInThreadMode to use direct CMSIS register access
Jira: ZEP-1568

Change-Id: Idc14817ce85042ec86bdf67b8939f783224329ff
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:39 -06:00
Kumar Gala
5068e9657f arm: cmsis: Convert _ScbPendsvSet to use direct CMSIS register access
Jira: ZEP-1568

Change-Id: I25653d8fbe3842fbfa79191d388c6f6693fca39c
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:39 -06:00
Kumar Gala
434fad045a arm: cmsis: Convert _ScbNmiPend to use direct CMSIS register access
Jira: ZEP-1568

Change-Id: I56231084baaec4f6232f1ef4ebabe4f3fdb5175c
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:38 -06:00
Kumar Gala
f16cefea9f arm: refactor clearing of exception faults to common code
A number of SoCs clear out the Mem/Bus/Usage and Hard Fault exceptions
during init.  Lets refactor that into a common function so we don't have
to keep duplicating it over and over.

Change-Id: Ida908a9092db37447abcf3c9872f36937982f729
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:38 -06:00
Erwan Gouriou
2d881d6539 ext: stm32cube: update stm32l4xx cube version
Update Cube version for STM32L4XX family
from version: V1.5.2
to version: V1.6.0

Add support for following soc:
stm32l451xx
stm32l452xx
stm32l462xx

Change-Id: I116458ff8163f99aec5cf3965296d79728faf672
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2017-01-30 11:02:38 -06:00
Erwan Gouriou
58504a9048 ext: stm32cube: update stm32f4xx cube version
Update Cube version for STM32F4XX family
from version: V1.13.0
to version: V1.14.0

Add support for following soc:
stm32f413xx
stm32f423xx

Change-Id: I050bdbe5980b2294955379a2ad917d25aa501578
Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2017-01-30 11:02:37 -06:00
Jon Medhurst
d0e0915cb2 MAINTAINERS: Remove Jon Medhurst from MPS2 maintainership
Change-Id: Ie1a3fc69e43814808f7e6711cb2b6271859837e2
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
72b276a4c9 doc: Update mps2_an385 documentation
This patch updates the mps2_an385 documentation adding the information
of the CMSDK (Cortex-M System Design Kit) GPIOs Pinmuxing.

Change-Id: Icab0d47bf1a58be058f036fb3db346ef6390266a
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
4276d2ec99 boards: arm: mps2: Add pinmuxing
This patch adds pinmuxing configuration the ARM MPS2 AN385 board.

Change-Id: If9825e325e8f3abf568537f3a279b5f0f56bd088
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Maureen Helm
2e7a75c69b frdm_k64f: Add RST board documentation
Change-Id: I1027fce12b4f7153b02beadd5257e7d8956e1d7a
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
1632938cfa soc: arm: mps2: Fix UART4 base address
This patch fixes the UART4 base address on the ARM MPS2 platform.

Change-Id: I14bf2a4dc2378d4b2c4295a75cd68c6c895fbd60
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Kumar Gala
69b9d345ae arm: cmsis: Remove nvic.h and use CMSIS NVIC calls directly
Kill of nvic.h and use either CMSIS helper functions for NVIC or direct
NVIC register access via CMSIS for IRQ handling code.

Jira: ZEP-1568

Change-Id: If21910b9293121efe85c3c9076a1c2b475ef91ef
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:36 -06:00
Kumar Gala
8be0401af0 arm: move exception priority to exc.h
Move the exception priority related defines into exc.h out of nvic.h

Change-Id: I7ded917a3f6f7cdbc506b2f70c22f37eddc5f5c7
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:36 -06:00
Kumar Gala
f85dbb1b34 arm: cmsis: Convert _ScbExcPrioSet to NVIC_SetPriority
Replace _ScbExcPrioSet with calls to NVIC_SetPriority as it handles both
interrupt and exception priorities.  We don't need to shift around the
priority values for NVIC_SetPriority.

Jira: ZEP-1568

Change-Id: Iccd68733c3f7faa82b7ccb17200eef328090b6da
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
6e55fd38de doc: Update mps2_an385 documentation
This patch updates the mps2_an385 documentation adding the information
of the new added CMSDK (Cortex-M System Design Kit) Drivers.

Change-Id: I5615ebec13e8831a0360fc32cfd8be0d3ebc85b5
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
6fe2600fc5 boards: arm: mps2_an385: Enable CMSDK Drivers
This patch enables the CMSDK (Cortex-M System Design Kit) Drivers on
mps2_an385 (Cortex M3).

Change-Id: Iff51141a183ac94ad6b905acf10389ca94a451d3
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Vincenzo Frascino
8831a6bff1 soc: arm: mps2: Add configuration for CMSDK Driver
This patch adds the configuration parametes required to enable CMSDK
(Cortex-M System Design Kit) Drivers at MPS2 soc level.

It provides as well the definitions for the MPS2 System Control
registers.

Change-Id: I06181dcfeb4fb887425b85ec9a99c268c857a34e
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
2017-01-30 11:02:36 -06:00
Maureen Helm
ec6bdd48f4 MAINTAINERS: Add frdm_kw41z board
Change-Id: Iae62702db02f6098087e8d1aa3290bae7f6ad6a2
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
2c1e318389 frdm_kw41z: Add frdm_kw41z board
Adds initial support and documentation for the frdm_kw41z board.

- Configures the kw41 to use the 32 MHz external oscillator on the board
  to generate a 40 MHz system clock. The clock settings match the MCUX
  SDK hello_world example project.
- Provides pinmux settings for the uart, i2c, LEDs, and switches
- Enables pinmux, gpio, uart, and i2c driver instances
- Configures the fxos8700 accelerometer/magnetometer driver

Jira: ZEP-1390
Change-Id: I025a0eae3d380eaf90b02683acf5c592e2204a2e
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
86a26fa0ae kw41z: Add kw41z SoC
Adds initial support for the kw41z SoC. This is the first SoC in the
Kinetis W (wireless connectivity) series added to Zephyr. The kw41z
integrates a 2.4 GHz radio transceiver, BLE link layer hardware, and an
802.15.4 packet processor with an ARM Cortex M0+. It has 512 KB flash,
128 KB SRAM, and can run the system clock at up to 48 MHz.

This SoC currently has mcux shim drivers for lpuart (serial), gpio,
pinmux, i2c, and flash.

Jira: ZEP-1389
Change-Id: I8cff6d203867ba3ace7e05c36441dc8f3cbca8d8
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
8d5833ffaa k64: Rename security_frdm_k64f section
Renames the flash security section so it makes sense for other Kinetis
devices, not just k64. In Kinetis reference manuals, this section is
referred to as the 'flash configuration field'.

Change-Id: I2b7c7cc1ec2541419d77878d367d96c9ceb7a0cf
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
e290006144 serial: Introduce new mcux lpuart shim driver
Adds a shim layer around the mcux lpuart driver to adapt it to the Zephyr
serial interface.

NXP has multiple uart hardware blocks that implement different features
and have different register maps. The k64 has a uart block called
'uart', while the kw41 has a uart block called 'lpuart' (low power
uart). The MCUXpresso SDK provides separate drivers for each type of
uart block but with similar software interfaces. As a result, there are
also separate shim drivers in Zephyr. There is a 1:1:1 relationship
between hardware block, mcux driver, and mcux shim driver.

Because we now have two mcux shim drivers for the uart interface, a new
naming convention is created:

	<interface>_mcux_<hw block>

Where <interface> is the name of the Zephyr interface, in this case
'uart'. This convention is not new.

<hw block> is the name of the NXP hardware block, in this case 'lpuart'.
This is the new part, and distinguishes different hardware blocks
for the same interface.

Change-Id: I3a80b9bffa116bbb2b02ee950d4bdd79a19a4edc
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
ec5ee8b33d flash: Update mcux shim to new mcux version
The newer version of mcux changes its flash api slightly, so update the
Zephyr shim accordingly.

Change-Id: I0c974fc3e82b9f40372c636f0b805ed143be2198
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Maureen Helm
27cfd1248c mcux: Import mcux for kw41z
Imports the mcux device header files and peripheral drivers for the
kw41z and its subset devices (kw31z, kw21z). The subset devices are
included since they are released together with the kw41z by nxp, and to
avoid them getting out of sync in Zephyr if they were added later.

The kw41z shares several peripheral drivers with the k64f, so those
drivers are updated to the newer version released with the kw41z.

Origin: NXP Kinetis KW41Z Connectivity Software Linux(REV 1.0.2)
URL: https://www.nxp.com/webapp/Download?colCode=KW41Z-CONNECTIVITY-SOFTWARE-LIN&appType=license&Parent_nodeId=1441226359347708902175&Parent_pageType=product
Maintained-by: External

Jira: ZEP-1389
Change-Id: Id8e87f32b7afe01605e1e05b88addc547b2f5e21
Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2017-01-30 11:02:35 -06:00
Andrew Boie
ded842ec89 Revert "Revert "sanitycheck: add support for risc v boards""
This reverts commit 9fb0c2af5c.
SDK 0.9 has now been released.

Change-Id: I676b6f0e31ab48fde3dda41b681abf53964ea9f9
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-01-30 08:58:36 -08:00
Kumar Gala
869a9fc050 fat: match type info expected by fat library for f_write
The fat library uses its own typedef for integer parms and expects a
UINT to be either 16 or 32-bits in length.  We potentially get into
trouble when we build with newlib if we use an uint32_t.  Lets just use
unsigned int which should cover all cases for us.

Change-Id: I3dbbf4871ab65dd12488d41cb06a06387c128339
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 12:01:50 +00:00
Kumar Gala
97d375eead samples: webusb: fix type of bytes_read
bytes_read should be an int, all uses of it in this sample are of type
int.  Lets clean this up so when building with newlib or in the future
when uint32_t might change its definition we don't have issues.

Change-Id: Ief7bfb48948df50cec45b4707ef7676d13173f34
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 12:01:49 +00:00
Kumar Gala
99937a77da usb: Change transfer_len type to int32_t in usb_request_handler typedef
The functions that implement usb_request_handlers are already using an
int32_t for transfer_len, so lets make the typedef match.  This address
a potential issue in the future when the typedef of int32_t changes (or
when building with newlib).

Change-Id: I6e478551c38f2040b0dcec47c2e4c565c27acdd0
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 12:01:49 +00:00
Kumar Gala
c9a4335ad3 samples: zperf: cleanup types for constant arrays
There are a few arrays we use with print_number and parse_number.  These
functions expect a const uint32_t so lets have the arrays for TIME_US,
KBPS, and K match.

Change-Id: I6347b06af2374d702144084bb6b538a478fb8fac
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-30 12:01:48 +00:00
David B. Kinder
f086a195ce doc: update menuconfig images in application doc
Updated main menuconfig image

Jira: ZEP-1434

Change-Id: Ib78f65868e025a45d51f1561f7e487eda0d7dbcd
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-01-29 13:26:50 +00:00
Anas Nashif
66417c0246 Merge "Merge net branch into master" 2017-01-29 04:31:39 +00:00
Johan Hedberg
3d2a5c38f8 Merge bluetooth branch into master
- Fixes to SPI HCI driver
 - Minor improvements, to AVDTP, A2DP, RFCOMM & HFP
 - New Kconfig variable for managing the device name

----------------------------------------------------------------
Arun Jagadish (1):
      Bluetooth: AVDTP: Add AVDTP Discover API Prototype

Jaganath Kanakkassery (3):
      Bluetooth: RFCOMM: Fix v24_signal in MSC response
      Bluetooth: RFCOMM: Implement MSC Flow Control
      Bluetooth: Doc: RFCOMM PICS file

Johan Hedberg (2):
      Bluetooth: Kconfig: Make device name variable generic
      Bluetooth: samples: Use Kconfig DEVICE_NAME variable when possible

Kumar Gala (1):
      Bluetooth: hci_raw: Make bt_buf_get_rx args consistent

Luiz Augusto von Dentz (1):
      Bluetooth: L2CAP: Only set state for dynamic channels

Piyush Itankar (2):
      Bluetooth: A2DP: Adds accept state callback handlers
      Bluetooth: A2DP: Stream End Point Structure

Ricardo Salveti (7):
      Bluetooth: SPI: fix buf handling for HCI ACL packets
      Bluetooth: SPI: fix Kconfig SPI IRQ PIN description
      Bluetooth: SPI: introduce CONFIG_BLUETOOTH_SPI_BLUENRG
      Bluetooth: SPI: fix max SPI buffer length
      Bluetooth: SPI: switch to a single SPI transfer when receiving
      Bluetooth: SPI: retry spi_transceive calls if invalid
      Bluetooth: SPI: Disable IRQ pin callback to avoid spurious IRQs

Roger Lendenmann (1):
      Bluetooth: add storage flag for secure connection pairing LTK

Sathish Narasimman (2):
      Bluetooth: AT: HFP HF: Handle unsolicited reponse
      Bluetooth: HFP HF: Handle +CIEV reponse

 doc/subsystems/bluetooth/qualification.rst      |  1 +
 doc/subsystems/bluetooth/rfcomm-pics.rst        | 51 +++++++++++++++
 drivers/bluetooth/hci/Kconfig                   | 27 ++++----
 drivers/bluetooth/hci/spi.c                     | 83 +++++++++++++++-----
 drivers/bluetooth/nble/Kconfig                  |  7 +++
 include/bluetooth/a2dp.h                        | 13 ++++
 include/bluetooth/rfcomm.h                      |  2 +-
 include/bluetooth/storage.h                     |  3 +
 samples/bluetooth/beacon/prj.conf               |  1 +
 samples/bluetooth/beacon/prj_nble.conf          |  1 +
 samples/bluetooth/beacon/src/main.c             |  2 +-
 samples/bluetooth/eddystone/prj.conf            |  1 +
 samples/bluetooth/eddystone/prj_nble.conf       |  1 +
 samples/bluetooth/eddystone/src/main.c          |  2 +-
 samples/bluetooth/gatt/ipss.c                   |  2 +-
 samples/bluetooth/handsfree/prj.conf            |  2 +-
 samples/bluetooth/ipsp/prj.conf                 |  1 +
 samples/bluetooth/peripheral/prj.conf           |  1 +
 samples/bluetooth/peripheral/prj_nble.conf      |  1 +
 samples/bluetooth/peripheral/src/main.c         |  2 +-
 samples/bluetooth/peripheral_csc/prj.conf       |  1 +
 samples/bluetooth/peripheral_csc/prj_nble.conf  |  1 +
 samples/bluetooth/peripheral_csc/src/main.c     |  2 +-
 samples/bluetooth/peripheral_dis/prj.conf       |  1 +
 samples/bluetooth/peripheral_dis/src/main.c     |  2 +-
 samples/bluetooth/peripheral_esp/prj.conf       |  1 +
 samples/bluetooth/peripheral_esp/prj_nble.conf  |  1 +
 samples/bluetooth/peripheral_esp/src/main.c     |  2 +-
 samples/bluetooth/peripheral_hids/prj.conf      |  1 +
 samples/bluetooth/peripheral_hids/prj_nble.conf |  1 +
 samples/bluetooth/peripheral_hids/src/main.c    |  2 +-
 samples/bluetooth/peripheral_hr/prj.conf        |  1 +
 samples/bluetooth/peripheral_hr/prj_nble.conf   |  1 +
 samples/bluetooth/peripheral_hr/src/main.c      |  2 +-
 samples/bluetooth/peripheral_sc_only/prj.conf   |  1 +
 samples/bluetooth/peripheral_sc_only/src/main.c |  2 +-
 subsys/bluetooth/host/Kconfig                   | 13 ++--
 subsys/bluetooth/host/a2dp.c                    | 91 +++++++++++++++++---
 subsys/bluetooth/host/a2dp_internal.h           |  6 --
 subsys/bluetooth/host/at.c                      | 35 ++++++++---
 subsys/bluetooth/host/at.h                      | 13 +++-
 subsys/bluetooth/host/avdtp.c                   | 11 ++++
 subsys/bluetooth/host/avdtp_internal.h          | 22 +++++++
 subsys/bluetooth/host/hci_core.c                |  2 +-
 subsys/bluetooth/host/hci_raw.c                 |  2 +-
 subsys/bluetooth/host/hfp_hf.c                  | 49 +++++++++++++--
 subsys/bluetooth/host/l2cap.c                   |  3 +-
 subsys/bluetooth/host/rfcomm.c                  | 50 +++++++++++----
 subsys/bluetooth/host/rfcomm_internal.h         |  2 +
 tests/bluetooth/shell/arduino_101.conf          |  2 +-
 tests/bluetooth/shell/prj.conf                  |  2 +-
 tests/bluetooth/shell/prj_br.conf               |  2 +-
 tests/bluetooth/shell/prj_nble.conf             |  1 +
 tests/bluetooth/shell/src/main.c                |  2 +-
 54 files changed, 412 insertions(+), 122 deletions(-)
 create mode 100644 doc/subsystems/bluetooth/rfcomm-pics.rst

Change-Id: Iaf3609610082865da754917d131d4bafbfbec428
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2017-01-28 08:58:41 +02:00
Ricardo Salveti
a3474a731e Bluetooth: SPI: Disable IRQ pin callback to avoid spurious IRQs
Avoid spurious IRQ when already handling the SPI Slave IRQ.

Change-Id: If8452a668bc9768d462a5fa56b851e99a076e67c
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
2569e2e8d1 Bluetooth: SPI: retry spi_transceive calls if invalid
spi_transceive can return successfuly even if the data provided by the
slave is invalid, so check if the content is correct and retry until a
valid data is available.

Change-Id: Ia951de391e0b24c5b41eeabfb5c10b056d32b62e
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
f27d8eef39 Bluetooth: SPI: switch to a single SPI transfer when receiving
Change-Id: I27b504032080bddf7ebc88ef4812a0e7eab691c6
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
8227c72c47 Bluetooth: SPI: fix max SPI buffer length
Drop the BLUETOOTH_SPI_RX_BUFFER_SIZE and BLUETOOTH_SPI_TX_BUFFER_SIZE
config options by fixing the max SPI buffer length to 255, as used by
the X-NUCLEO-IDB04A1 BSP. This simplifies the rx/tx buffer handling, and
avoids a potential spi rx stack overflow depending on the config values
set by the user.

Change-Id: Ifa7fd086016abda4bdcf9638f28b38d001a288c5
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
4afe063aad Bluetooth: SPI: introduce CONFIG_BLUETOOTH_SPI_BLUENRG
This new option is used to encapsulate the logic specific to devices
implementing the BlueNRG Bluetooth stack (e.g. X-NUCLEO-IDB05A1).

The current BlueNRG specific logic covers the HCI Reset handling and
the manual control of the SPI Chip Select line (normally not needed since
spi_transceive is also responsible for controlling the SPI CS line).

Change-Id: I5db4addf873eee0af2d957e2181c50aac53ab656
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
ef7f2bd54e Bluetooth: SPI: fix Kconfig SPI IRQ PIN description
Change-Id: I4c25062e922cd05ca738222182909c261b55abca
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Kumar Gala
edcb6ceb12 Bluetooth: hci_raw: Make bt_buf_get_rx args consistent
The hci_raw version of bt_buf_get_rx was expecting an int for timeout.
Let us int32_t instead so we match both the hci_core version and the
type that net_buf_alloc expects.

This addresses a possible build issue if/when int32_t differs from our
default (ie, newlib).

Change-Id: I69374c48da8f2b96fa2bd418ff505fbaacda11f0
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-28 08:43:41 +02:00
Johan Hedberg
eb07178236 Bluetooth: samples: Use Kconfig DEVICE_NAME variable when possible
Instead of using a hard-coded string, make the sample use the Kconfig
variable for the device name.

Change-Id: Ib09f594e1cba221f9064318572bd90d38bd2733a
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2017-01-28 08:43:41 +02:00
Johan Hedberg
4153b6ca1f Bluetooth: Kconfig: Make device name variable generic
Change BREDR_NAME to DEVICE_NAME so it can also be used as the LE
device name.

Change-Id: I9ef55d9dff098372d47d9d5754ad7a7163a65bc0
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2017-01-28 08:43:41 +02:00
Ricardo Salveti
e2b759bc69 Bluetooth: SPI: fix buf handling for HCI ACL packets
Code was assuming that all the HCI messages were events, causing invalid
data length when receiving HCL ACL packets.

Change-Id: I8c1a07f46b6b62a04e242cf29ee1119f59d4bda6
Signed-off-by: Ricardo Salveti <ricardo.salveti@linaro.org>
2017-01-28 08:43:41 +02:00
Piyush Itankar
4a014f3e81 Bluetooth: A2DP: Stream End Point Structure
Added structure definition for stream end points
and the a2dp stream.

Change-Id: I6d0cc08611f5179397bea6200eb9244d7c1cc8d6
Signed-off-by: Piyush Itankar <piyush.t.itankar@intel.com>
2017-01-28 08:43:41 +02:00