diff --git a/arch/arm/src/kinetis/Kconfig b/arch/arm/src/kinetis/Kconfig index 6ac01b909d2..962dda4ee94 100644 --- a/arch/arm/src/kinetis/Kconfig +++ b/arch/arm/src/kinetis/Kconfig @@ -131,42 +131,56 @@ config ARCH_CHIP_MK64FN1M0VLL12 select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FX512VLL12 bool "MK64FX512VLL12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FX512VDC12 bool "MK64FX512VDC12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FN1M0VDC12 bool "MK64FN1M0VDC12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FX512VLQ12 bool "MK64FX512VLQ12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FX512VMD12 bool "MK64FX512VMD12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK64FN1M0VMD12 bool "MK64FN1M0VMD12" select ARCH_FAMILY_K64 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK66FX1M0VMD18 bool "MK66FX1M0VMD18" @@ -174,7 +188,8 @@ config ARCH_CHIP_MK66FX1M0VMD18 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 select KINETIS_HAVE_I2C3 - select KINETIS_HAVE_I2C4 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK66FN2M0VMD18 bool "MK66FN2M0VMD18" @@ -182,7 +197,8 @@ config ARCH_CHIP_MK66FN2M0VMD18 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 select KINETIS_HAVE_I2C3 - select KINETIS_HAVE_I2C4 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK66FX1M0VLQ18 bool "MK66FX1M0VLQ18" @@ -190,7 +206,8 @@ config ARCH_CHIP_MK66FX1M0VLQ18 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 select KINETIS_HAVE_I2C3 - select KINETIS_HAVE_I2C4 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 config ARCH_CHIP_MK66FN2M0VLQ18 bool "MK66FN2M0VLQ18" @@ -198,7 +215,8 @@ config ARCH_CHIP_MK66FN2M0VLQ18 select KINETIS_HAVE_I2C1 select KINETIS_HAVE_I2C2 select KINETIS_HAVE_I2C3 - select KINETIS_HAVE_I2C4 + select KINETIS_HAVE_SPI1 + select KINETIS_HAVE_SPI2 endchoice @@ -238,7 +256,11 @@ config KINETIS_HAVE_I2C3 bool default n -config KINETIS_HAVE_I2C4 +config KINETIS_HAVE_SPI1 + bool + default n + +config KINETIS_HAVE_SPI2 bool default n @@ -330,18 +352,23 @@ config KINETIS_FLEXCAN1 config KINETIS_SPI0 bool "SPI0" default n + select SPI ---help--- Support SPI0 config KINETIS_SPI1 bool "SPI1" default n + select SPI + depends on KINETIS_HAVE_SPI1 ---help--- Support SPI1 config KINETIS_SPI2 bool "SPI2" default n + select SPI + depends on KINETIS_HAVE_SPI2 ---help--- Support SPI2 @@ -366,7 +393,15 @@ config KINETIS_I2C2 select I2C depends on KINETIS_HAVE_I2C2 ---help--- - Support I2C1 + Support I2C2 + +config KINETIS_I2C3 + bool "I2C3" + default n + select I2C + depends on KINETIS_HAVE_I2C3 + ---help--- + Support I2C3 config KINETIS_I2S bool "I2S" diff --git a/configs/freedom-k64f/src/k64_spi.c b/configs/freedom-k64f/src/k64_spi.c index 847d5af7e47..cae86809799 100644 --- a/configs/freedom-k64f/src/k64_spi.c +++ b/configs/freedom-k64f/src/k64_spi.c @@ -51,7 +51,8 @@ #include "kinetis.h" #include "freedom-k64f.h" -#if defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2) +#if defined(CONFIG_KINETIS_SPI0) || defined(CONFIG_KINETIS_SPI1) || \ + defined(CONFIG_KINETIS_SPI2) /************************************************************************************ * Public Functions @@ -98,6 +99,20 @@ void weak_function k64_spidev_initialize(void) * ************************************************************************************/ +#ifdef CONFIG_KINETIS_SPI0 +void kinetis_spi0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +# warning "Missing logic" +} + +uint8_t kinetis_spi0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ +# warning "Missing logic" + return SPI_STATUS_PRESENT; +} +#endif + #ifdef CONFIG_KINETIS_SPI1 void kinetis_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { @@ -126,18 +141,4 @@ uint8_t kinetis_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) } #endif -#ifdef CONFIG_KINETIS_SPI3 -void kinetis_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); -# warning "Missing logic" -} - -uint8_t kinetis_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ -# warning "Missing logic" - return SPI_STATUS_PRESENT; -} -#endif - -#endif /* CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ +#endif /* CONFIG_KINETIS_SPI0 || CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ diff --git a/configs/kwikstik-k40/src/k40_spi.c b/configs/kwikstik-k40/src/k40_spi.c index e8e2da248b0..43bb8db955a 100644 --- a/configs/kwikstik-k40/src/k40_spi.c +++ b/configs/kwikstik-k40/src/k40_spi.c @@ -51,7 +51,8 @@ #include "kinetis.h" #include "kwikstik-k40.h" -#if defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2) +#if defined(CONFIG_KINETIS_SPI0) || defined(CONFIG_KINETIS_SPI1) || \ + defined(CONFIG_KINETIS_SPI2) /************************************************************************************ * Public Functions @@ -71,10 +72,10 @@ void weak_function kinetis_spidev_initialize(void) } /**************************************************************************** - * Name: kinetis_spi1/2/3select and kinetis_spi1/2/3status + * Name: kinetis_spi0/1/2select and kinetis_spi0/1/2status * * Description: - * The external functions, kinetis_spi1/2/3select and kinetis_spi1/2/3status must be + * The external functions, kinetis_spi0/1/2select and kinetis_spi0/1/2status must be * provided by board-specific logic. They are implementations of the select * and status methods of the SPI interface defined by struct spi_ops_s (see * include/nuttx/spi/spi.h). All other methods (including kinetis_spibus_initialize()) @@ -83,7 +84,7 @@ void weak_function kinetis_spidev_initialize(void) * * 1. Provide logic in kinetis_boardinitialize() to configure SPI chip select * pins. - * 2. Provide kinetis_spi1/2/3select() and kinetis_spi1/2/3status() functions in your + * 2. Provide kinetis_spi0/1/2select() and kinetis_spi0/1/2status() functions in your * board-specific logic. These functions will perform chip selection and * status operations using GPIOs in the way your board is configured. * 3. Add a calls to kinetis_spibus_initialize() in your low level application @@ -95,6 +96,20 @@ void weak_function kinetis_spidev_initialize(void) * ****************************************************************************/ +#ifdef CONFIG_KINETIS_SPI0 +void kinetis_spi0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +# warning "Missing logic" +} + +uint8_t kinetis_spi0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ +# warning "Missing logic" + return SPI_STATUS_PRESENT; +} +#endif + #ifdef CONFIG_KINETIS_SPI1 void kinetis_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { @@ -123,18 +138,4 @@ uint8_t kinetis_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) } #endif -#ifdef CONFIG_KINETIS_SPI3 -void kinetis_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); -# warning "Missing logic" -} - -uint8_t kinetis_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ -# warning "Missing logic" - return SPI_STATUS_PRESENT; -} -#endif - -#endif /* CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ +#endif /* CONFIG_KINETIS_SPI0 || CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ diff --git a/configs/teensy-3.x/src/k20_spi.c b/configs/teensy-3.x/src/k20_spi.c index 50ffef7ff35..3bcef38e55d 100644 --- a/configs/teensy-3.x/src/k20_spi.c +++ b/configs/teensy-3.x/src/k20_spi.c @@ -51,7 +51,8 @@ #include "kinetis.h" #include "teensy-3x.h" -#if defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2) +#if defined(CONFIG_KINETIS_SPI0) || defined(CONFIG_KINETIS_SPI1) || \ + defined(CONFIG_KINETIS_SPI2) /************************************************************************************ * Public Functions @@ -71,10 +72,10 @@ void weak_function kinetis_spidev_initialize(void) } /************************************************************************************ - * Name: kinetis_spi1/2/3select and kinetis_spi1/2/3status + * Name: kinetis_spi0/1/2select and kinetis_spi0/1/2status * * Description: - * The external functions, kinetis_spi1/2/3select and kinetis_spi1/2/3status must be + * The external functions, kinetis_spi0/1/2select and kinetis_spi0/1/2status must be * provided by board-specific logic. They are implementations of the select * and status methods of the SPI interface defined by struct spi_ops_s (see * include/nuttx/spi/spi.h). All other methods (including kinetis_spibus_initialize()) @@ -83,7 +84,7 @@ void weak_function kinetis_spidev_initialize(void) * * 1. Provide logic in kinetis_boardinitialize() to configure SPI chip select * pins. - * 2. Provide kinetis_spi1/2/3select() and kinetis_spi1/2/3status() functions in your + * 2. Provide kinetis_spi0/1/2select() and kinetis_spi0/1/2status() functions in your * board-specific logic. These functions will perform chip selection and * status operations using GPIOs in the way your board is configured. * 3. Add a calls to kinetis_spibus_initialize() in your low level application @@ -95,6 +96,20 @@ void weak_function kinetis_spidev_initialize(void) * ************************************************************************************/ +#ifdef CONFIG_KINETIS_SPI0 +void kinetis_spi0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +# warning "Missing logic" +} + +uint8_t kinetis_spi0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ +# warning "Missing logic" + return SPI_STATUS_PRESENT; +} +#endif + #ifdef CONFIG_KINETIS_SPI1 void kinetis_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { @@ -123,18 +138,4 @@ uint8_t kinetis_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) } #endif -#ifdef CONFIG_KINETIS_SPI3 -void kinetis_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); -# warning "Missing logic" -} - -uint8_t kinetis_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ -# warning "Missing logic" - return SPI_STATUS_PRESENT; -} -#endif - -#endif /* CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ +#endif /* CONFIG_KINETIS_SPI0 || CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ diff --git a/configs/twr-k60n512/src/k60_spi.c b/configs/twr-k60n512/src/k60_spi.c index 2c63ed94cdd..92e3649000f 100644 --- a/configs/twr-k60n512/src/k60_spi.c +++ b/configs/twr-k60n512/src/k60_spi.c @@ -51,7 +51,8 @@ #include "kinetis.h" #include "twr-k60n512.h" -#if defined(CONFIG_KINETIS_SPI1) || defined(CONFIG_KINETIS_SPI2) +#if defined(CONFIG_KINETIS_SPI0) || defined(CONFIG_KINETIS_SPI1) || \ + defined(CONFIG_KINETIS_SPI2) /************************************************************************************ * Public Functions @@ -71,10 +72,10 @@ void weak_function kinetis_spidev_initialize(void) } /**************************************************************************** - * Name: kinetis_spi1/2/3select and kinetis_spi1/2/3status + * Name: kinetis_spi0/1/2select and kinetis_spi0/1/2status * * Description: - * The external functions, kinetis_spi1/2/3select and kinetis_spi1/2/3status must be + * The external functions, kinetis_spi0/1/2select and kinetis_spi0/1/2status must be * provided by board-specific logic. They are implementations of the select * and status methods of the SPI interface defined by struct spi_ops_s (see * include/nuttx/spi/spi.h). All other methods (including kinetis_spibus_initialize()) @@ -83,7 +84,7 @@ void weak_function kinetis_spidev_initialize(void) * * 1. Provide logic in kinetis_boardinitialize() to configure SPI chip select * pins. - * 2. Provide kinetis_spi1/2/3select() and kinetis_spi1/2/3status() functions in your + * 2. Provide kinetis_spi0/1/2select() and kinetis_spi0/1/2status() functions in your * board-specific logic. These functions will perform chip selection and * status operations using GPIOs in the way your board is configured. * 3. Add a calls to kinetis_spibus_initialize() in your low level application @@ -95,6 +96,20 @@ void weak_function kinetis_spidev_initialize(void) * ****************************************************************************/ +#ifdef CONFIG_KINETIS_SPI0 +void kinetis_spi0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) +{ + spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); +# warning "Missing logic" +} + +uint8_t kinetis_spi0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) +{ +# warning "Missing logic" + return SPI_STATUS_PRESENT; +} +#endif + #ifdef CONFIG_KINETIS_SPI1 void kinetis_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { @@ -123,18 +138,4 @@ uint8_t kinetis_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) } #endif -#ifdef CONFIG_KINETIS_SPI3 -void kinetis_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) -{ - spiinfo("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert"); -# warning "Missing logic" -} - -uint8_t kinetis_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) -{ -# warning "Missing logic" - return SPI_STATUS_PRESENT; -} -#endif - -#endif /* CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */ +#endif /* CONFIG_KINETIS_SPI0 || CONFIG_KINETIS_SPI1 || CONFIG_KINETIS_SPI2 */