diff --git a/arch/arm/include/kinetis/chip.h b/arch/arm/include/kinetis/chip.h index dd8582e564..7f609e1c77 100644 --- a/arch/arm/include/kinetis/chip.h +++ b/arch/arm/include/kinetis/chip.h @@ -1,7 +1,7 @@ /************************************************************************************ * arch/arm/include/kinetis/chip.h * - * Copyright (C) 2011, 2013, 2015 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2013, 2015-2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -72,6 +72,7 @@ # define KINETIS_K20 1 /* Kinetics K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ #if defined(CONFIG_ARCH_CHIP_MK20DN32VLH5) # define KINETIS_FLASH_SIZE (64*1024) /* 32Kb */ @@ -153,6 +154,7 @@ # define KINETIS_K20 1 /* Kinetics K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ #if defined(CONFIG_ARCH_CHIP_MK20DX64VLH7) # define KINETIS_FLASH_SIZE (64*1024) /* 64Kb */ @@ -207,6 +209,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (64*1024) /* 64Kb */ # define KINETIS_FLEXMEM_SIZE (32*1024) /* 32Kb */ # define KINETIS_SRAM_SIZE (16*1024) /* 16Kb */ @@ -257,6 +260,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (128*1024) /* 128Kb */ # define KINETIS_FLEXMEM_SIZE (32*1024) /* 32Kb */ # define KINETIS_SRAM_SIZE (32*1024) /* 32Kb */ @@ -299,6 +303,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXMEM_SIZE (32*1024) /* 32Kb */ # define KINETIS_SRAM_SIZE (32*1024) /* 64Kb */ @@ -340,6 +345,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (128*1024) /* 128Kb */ # define KINETIS_FLEXMEM_SIZE (128*1024) /* 128Kb */ # define KINETIS_SRAM_SIZE (32*1024) /* 32Kb */ @@ -381,6 +387,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXMEM_SIZE (256*1024) /* 256Kb */ # define KINETIS_SRAM_SIZE (64*1024) /* 32Kb */ @@ -424,6 +431,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # define KINETIS_K40 1 /* Kinetics K40 family */ # undef KINETIS_K60 /* Not Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */ # undef KINETIS_FLEXMEM_SIZE /* No FlexMemory */ # define KINETIS_SRAM_SIZE (128*1024) /* 128Kb */ @@ -465,6 +473,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -509,6 +518,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXNVM_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXRAM_SIZE (4*1024) /* 32Kb */ @@ -553,6 +563,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (512*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -598,6 +609,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -642,6 +654,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXNVM_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ @@ -686,6 +699,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (512*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -730,6 +744,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -774,6 +789,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXNVM_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ @@ -818,6 +834,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -862,6 +879,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -906,6 +924,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXNVM_SIZE (256*1024) /* 256Kb */ # define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ @@ -950,6 +969,7 @@ # undef KINETIS_K20 /* Not Kinetis K20 family */ # undef KINETIS_K40 /* Not Kinetics K40 family */ # define KINETIS_K60 1 /* Kinetis K60 family */ +# undef KINETIS_K64 /* Not Kinetis K64 family */ # define KINETIS_FLASH_SIZE (512*1024) /* 512Kb */ # undef KINETIS_FLEXNVM_SIZE /* No FlexNVM */ # undef KINETIS_FLEXRAM_SIZE /* No FlexRAM */ @@ -990,6 +1010,278 @@ # undef KINETIS_NTAMPER /* No tamper detect */ # define KINETIS_NCRC 1 /* CRC */ +#elif defined(CONFIG_ARCH_CHIP_MK64FN1M0VLL12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 /* Three SPI modules */ +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + +#if defined(CONFIG_ARCH_CHIP_MK64FX512VLL12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + +#elif defined(CONFIG_ARCH_CHIP_MK64FX512VDC12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ +// +#elif defined(CONFIG_ARCH_CHIP_MK64FN1M0VDC12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + +#elif defined(CONFIG_ARCH_CHIP_MK64FX512VLQ12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + +#elif defined(CONFIG_ARCH_CHIP_MK64FN1M0VLQ12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + +#elif defined(CONFIG_ARCH_CHIP_MK64FX512VMD12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ +// +#elif defined(CONFIG_ARCH_CHIP_MK64FN1M0VMD12) +# undef KINETIS_K20 /* Not Kinetics K20 family */ +# undef KINETIS_K40 /* Not Kinetics K40 family */ +# undef KINETIS_K60 /* Not Kinetis K60 family */ +# define KINETIS_K64 1 /* Kinetis K64 family */ +# define KINETIS_FLASH_SIZE (1024*1024) /* 1Mb */ +# define KINETIS_FLEXNVM_SIZE (0*1024) /* 0Kb */ +# define KINETIS_FLEXRAM_SIZE (4*1024) /* 4Kb */ +# define KINETIS_SRAM_SIZE (256*1024) /* 256Kb */ +# define KINETIS_MPU 1 /* Memory protection unit */ +# define KINETIS_EXTBUS 1 /* External bus interface */ +# define KINETIS_NDMACH 16 /* Up to 16 DMA channels */ +# define KINETIS_NENET 1 /* One IEEE 1588 Ethernet controller */ +# define KINETIS_NUSBOTG 1 /* With USB OTG controller */ +# define KINETIS_NUSBDEV 1 /* One USB device controller */ +# define KINETIS_NSDHC 1 /* SD host controller */ +# define KINETIS_NI2C 3 /* Three I2C modules */ +# define KINETIS_NUART 6 /* Six UART modues */ +# define KINETIS_NSPI 3 Three SPI modules +# define KINETIS_NCAN 1 /* One CAN controllers */ +# define KINETIS_NI2S 1 /* One I2S modules */ +# define KINETIS_NSLCD 1 /* One segment LCD interface (up to 36x8/40x4) */ +# define KINETIS_NADC16 2 /* Four 16-bit ADC */ +# define KINETIS_NCMP 3 /* Three analog comparators */ +# define KINETIS_NDAC6 3 /* Three 6-bit DAC */ +# define KINETIS_NDAC12 2 /* Two 12-bit DAC */ +# define KINETIS_NVREF 1 /* Voltage reference */ +# define KINETIS_NTIMERS8 2 /* Two 8 channel timers */ +# define KINETIS_NTIMERS2 2 /* Two 2 channel timers */ +# define KINETIS_NRTC 1 /* Real time clock */ +# define KINETIS_NRNG 1 /* Random number generator */ +# define KINETIS_NMMCAU 1 /* Hardware encryption */ +# define KINETIS_NCRC 1 /* CRC */ + #else # error "Unsupported Kinetis chip" #endif diff --git a/arch/arm/include/kinetis/irq.h b/arch/arm/include/kinetis/irq.h index 16b59ab8ae..1e45a5b4c6 100644 --- a/arch/arm/include/kinetis/irq.h +++ b/arch/arm/include/kinetis/irq.h @@ -83,7 +83,7 @@ * K20P64M72SF1RM */ -#if defined(CONFIG_ARCH_CHIP_MK20DX256VLH7) +#if defined(CONFIG_ARCH_FAMILY_K20) # define KINETIS_IRQ_DMACH0 (16) /* Vector 16: DMA channel 0 transfer complete */ # define KINETIS_IRQ_DMACH1 (17) /* Vector 17: DMA channel 1 transfer complete */ # define KINETIS_IRQ_DMACH2 (18) /* Vector 18: DMA channel 2 transfer complete */ @@ -162,9 +162,7 @@ * K40P144M100SF2RM */ -#elif defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \ - defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \ - defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100) +#elif defined(CONFIG_ARCH_FAMILY_K40) # define KINETIS_IRQ_DMACH0 (16) /* Vector 16: DMA channel 0 transfer complete */ # define KINETIS_IRQ_DMACH1 (17) /* Vector 17: DMA channel 1 transfer complete */ @@ -274,10 +272,7 @@ * K60P144M100SF2RM */ -#elif defined(CONFIG_ARCH_CHIP_MK60N256VLQ100) || defined(CONFIG_ARCH_CHIP_MK60X256VLQ100) || \ - defined(CONFIG_ARCH_CHIP_MK60N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK60N256VMD100) || \ - defined(CONFIG_ARCH_CHIP_MK60X256VMD100) || defined(CONFIG_ARCH_CHIP_MK60N512VMD100) || \ - defined(CONFIG_ARCH_CHIP_MK60N512VLL100) +#elif defined(CONFIG_ARCH_FAMILY_K60) # define KINETIS_IRQ_DMACH0 (16) /* Vector 16: DMA channel 0 transfer complete */ # define KINETIS_IRQ_DMACH1 (17) /* Vector 17: DMA channel 1 transfer complete */ @@ -383,6 +378,105 @@ # define NR_VECTORS (120) /* 120 vectors */ # define NR_IRQS (108) /* 120 interrupts but 108 IRQ numbers */ +/* K64 Family *********************************************************************** + * + * The memory map for the following parts is defined in NXP document + * K64P144M120SF5RM.pdf + */ + +#elif defined(CONFIG_ARCH_FAMILY_K64) + +# define KINETIS_IRQ_DMACH0 (16) /* Vector 16: DMA channel 0 transfer complete */ +# define KINETIS_IRQ_DMACH1 (17) /* Vector 17: DMA channel 1 transfer complete */ +# define KINETIS_IRQ_DMACH2 (18) /* Vector 18: DMA channel 2 transfer complete */ +# define KINETIS_IRQ_DMACH3 (19) /* Vector 19: DMA channel 3 transfer complete */ +# define KINETIS_IRQ_DMACH4 (20) /* Vector 20: DMA channel 4 transfer complete */ +# define KINETIS_IRQ_DMACH5 (21) /* Vector 21: DMA channel 5 transfer complete */ +# define KINETIS_IRQ_DMACH6 (22) /* Vector 22: DMA channel 6 transfer complete */ +# define KINETIS_IRQ_DMACH7 (23) /* Vector 23: DMA channel 7 transfer complete */ +# define KINETIS_IRQ_DMACH8 (24) /* Vector 24: DMA channel 8 transfer complete */ +# define KINETIS_IRQ_DMACH9 (25) /* Vector 25: DMA channel 9 transfer complete */ +# define KINETIS_IRQ_DMACH10 (26) /* Vector 26: DMA channel 10 transfer complete */ +# define KINETIS_IRQ_DMACH11 (27) /* Vector 27: DMA channel 11 transfer complete */ +# define KINETIS_IRQ_DMACH12 (28) /* Vector 28: DMA channel 12 transfer complete */ +# define KINETIS_IRQ_DMACH13 (29) /* Vector 29: DMA channel 13 transfer complete */ +# define KINETIS_IRQ_DMACH14 (30) /* Vector 30: DMA channel 14 transfer complete */ +# define KINETIS_IRQ_DMACH15 (31) /* Vector 31: DMA channel 15 transfer complete */ +# define KINETIS_IRQ_DMAERR (32) /* Vector 32: DMA error interrupt channels 0-15 */ +# define KINETIS_IRQ_MCM (33) /* Vector 33: MCM Normal interrupt */ +# define KINETIS_IRQ_FLASHCC (34) /* Vector 34: Flash memory command complete */ +# define KINETIS_IRQ_FLASHRC (35) /* Vector 35: Flash memory read collision */ +# define KINETIS_IRQ_SMCLVD (36) /* Vector 36: Mode Controller low-voltage + * detect, low-voltage warning */ +# define KINETIS_IRQ_LLWU (37) /* Vector 37: LLWU Normal Low Leakage Wakeup */ +# define KINETIS_IRQ_WDOG (38) /* Vector 38: Watchdog */ +# define KINETIS_IRQ_RNGB (39) /* Vector 39: Random number generator */ +# define KINETIS_IRQ_I2C0 (40) /* Vector 40: I2C0 */ +# define KINETIS_IRQ_I2C1 (41) /* Vector 41: I2C1 */ +# define KINETIS_IRQ_SPI0 (42) /* Vector 42: SPI0 all sources */ +# define KINETIS_IRQ_SPI1 (43) /* Vector 43: SPI1 all sources */ +# define KINETIS_IRQ_I2S0 (44) /* Vector 44: Transmit */ +# define KINETIS_IRQ_I2S1 (45) /* Vector 45: Transmit */ + /* Vector 46: Reserved */ +# define KINETIS_IRQ_UART0S (47) /* Vector 47: UART0 status */ +# define KINETIS_IRQ_UART0E (48) /* Vector 48: UART0 error */ +# define KINETIS_IRQ_UART1S (49) /* Vector 49: UART1 status */ +# define KINETIS_IRQ_UART1E (50) /* Vector 50: UART1 error */ +# define KINETIS_IRQ_UART2S (51) /* Vector 51: UART2 status */ +# define KINETIS_IRQ_UART2E (52) /* Vector 52: UART2 error */ +# define KINETIS_IRQ_UART3S (53) /* Vector 53: UART3 status */ +# define KINETIS_IRQ_UART3E (54) /* Vector 54: UART3 error */ +# define KINETIS_IRQ_ADC0 (55) /* Vector 55: ADC0 */ +# define KINETIS_IRQ_CMP0 (56) /* Vector 56: CMP0 */ +# define KINETIS_IRQ_CMP1 (57) /* Vector 57: CMP1 */ +# define KINETIS_IRQ_FTM0 (58) /* Vector 58: FTM0 all sources */ +# define KINETIS_IRQ_FTM1 (59) /* Vector 59: FTM1 all sources */ +# define KINETIS_IRQ_FTM2 (60) /* Vector 60: FTM2 all sources */ +# define KINETIS_IRQ_CMT (61) /* Vector 61: CMT */ +# define KINETIS_IRQ_RTC0 (62) /* Vector 62: RTC alarm interrupt */ +# define KINETIS_IRQ_RTC1 (63) /* Vector 63: RTC seconds interrupt */ +# define KINETIS_IRQ_PITCH0 (64) /* Vector 64: PIT channel 0 */ +# define KINETIS_IRQ_PITCH1 (65) /* Vector 65: PIT channel 1 */ +# define KINETIS_IRQ_PITCH2 (66) /* Vector 66: PIT channel 2 */ +# define KINETIS_IRQ_PITCH3 (67) /* Vector 67: PIT channel 3 */ +# define KINETIS_IRQ_PDB (68) /* Vector 68: PDB */ +# define KINETIS_IRQ_USBOTG (69) /* Vector 68: USB OTG */ +# define KINETIS_IRQ_USBCD (70) /* Vector 70: USB charger detect */ + /* Vector 71: Reserved */ +# define KINETIS_IRQ_DAC0 (72) /* Vector 72: DAC0 */ +# define KINETIS_IRQ_MCG (73) /* Vector 73: MCG */ +# define KINETIS_IRQ_LPT (74) /* Vector 74: Low power timer */ +# define KINETIS_IRQ_PORTA (75) /* Vector 75: Pin detect port A */ +# define KINETIS_IRQ_PORTB (76) /* Vector 76: Pin detect port B */ +# define KINETIS_IRQ_PORTC (77) /* Vector 77: Pin detect port C */ +# define KINETIS_IRQ_PORTD (78) /* Vector 78: Pin detect port D */ +# define KINETIS_IRQ_PORTE (79) /* Vector 79: Pin detect port E */ +# define KINETIS_IRQ_SOFTWARE (80) /* Vector 80: Software interrupt */ +# define KINETIS_IRQ_SPI2 (81) /* Vector 81: SPI2 all sources */ +# define KINETIS_IRQ_UART4S (82) /* Vector 82: UART4 status */ +# define KINETIS_IRQ_UART4E (83) /* Vector 83: UART4 error */ +# define KINETIS_IRQ_UART5S (84) /* Vector 84: UART5 status */ +# define KINETIS_IRQ_UART5E (85) /* Vector 85: UART5 error */ +# define KINETIS_IRQ_CMP2 (86) /* Vector 86: CMP2 */ +# define KINETIS_IRQ_FTM3 (87) /* Vector 87: FTM3 all sources */ +# define KINETIS_IRQ_DAC1 (88) /* Vector 88: DAC1 */ +# define KINETIS_IRQ_ADC1 (89) /* Vector 89: ADC1 */ +# define KINETIS_IRQ_I2C2 (90) /* Vector 90: I2C2 */ +# define KINETIS_IRQ_CAN0MB (91) /* Vector 91: CAN0 OR'ed Message buffer (0-15) */ +# define KINETIS_IRQ_CAN0BO (92) /* Vector 92: CAN0 Bus Off */ +# define KINETIS_IRQ_CAN0ERR (93) /* Vector 93: CAN0 Error */ +# define KINETIS_IRQ_CAN0TW (94) /* Vector 94: CAN0 Transmit Warning */ +# define KINETIS_IRQ_CAN0RW (95) /* Vector 95: CAN0 Receive Warning */ +# define KINETIS_IRQ_CAN0WU (96) /* Vector 96: CAN0 Wake UP */ +# define KINETIS_IRQ_SDHC (97) /* Vector 97: SDHC */ +# define KINETIS_IRQ_EMACTMR (98) /* Vector 91: Ethernet MAC IEEE 1588 timer interrupt */ +# define KINETIS_IRQ_EMACTX (99) /* Vector 92: Ethernet MAC transmit interrupt */ +# define KINETIS_IRQ_EMACRX (100) /* Vector 93: Ethernet MAC receive interrupt */ +# define KINETIS_IRQ_EMACMISC (101) /* Vector 94: Ethernet MAC error and misc interrupt */ + +# define NR_VECTORS (102) /* 102 vectors */ +# define NR_IRQS (102) /* 85 interrupts but 102 IRQ numbers */ + #else /* The interrupt vectors for other parts are defined in other documents and may or * may not be the same as above (the family members are all very similar) This diff --git a/arch/arm/src/kinetis/Kconfig b/arch/arm/src/kinetis/Kconfig index 5710c2d32c..55a6930211 100644 --- a/arch/arm/src/kinetis/Kconfig +++ b/arch/arm/src/kinetis/Kconfig @@ -98,6 +98,34 @@ config ARCH_CHIP_MK60X256VMD100 bool "MK60X256VMD100" select ARCH_FAMILY_K60 +config ARCH_CHIP_MK64FN1M0VLL12 + bool "MK64FN1M0VLL12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FX512VLL12 + bool "MK64FX512VLL12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FX512VDC12 + bool "MK64FX512VDC12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FN1M0VDC12 + bool "MK64FN1M0VDC12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FX512VLQ12 + bool "MK64FX512VLQ12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FX512VMD12 + bool "MK64FX512VMD12" + select ARCH_FAMILY_K64 + +config ARCH_CHIP_MK64FN1M0VMD12 + bool "MK64FN1M0VMD12" + select ARCH_FAMILY_K64 + endchoice # Chip families @@ -114,6 +142,10 @@ config ARCH_FAMILY_K60 bool default n +config ARCH_FAMILY_K64 + bool + default n + menu "Kinetis Peripheral Support" config KINETIS_TRACE diff --git a/arch/arm/src/kinetis/kinetis_adc.h b/arch/arm/src/kinetis/chip/kinetis_adc.h similarity index 93% rename from arch/arm/src/kinetis/kinetis_adc.h rename to arch/arm/src/kinetis/chip/kinetis_adc.h index a17aa06c7f..6b3b74fa9c 100644 --- a/arch/arm/src/kinetis/kinetis_adc.h +++ b/arch/arm/src/kinetis/chip/kinetis_adc.h @@ -1,7 +1,7 @@ /******************************************************************************************** - * arch/arm/src/kinetis/kinetis_adc.h + * arch/arm/src/kinetis/chip/kinetis_adc.h * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -33,8 +33,8 @@ * ********************************************************************************************/ -#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_ADC_H -#define __ARCH_ARM_SRC_KINETIS_KINETIS_ADC_H +#ifndef __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_ADC_H +#define __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_ADC_H /******************************************************************************************** * Included Files @@ -70,7 +70,9 @@ #define KINETIS_ADC_CLP2_OFFSET 0x0044 /* ADC plus-side general calibration value register */ #define KINETIS_ADC_CLP1_OFFSET 0x0048 /* ADC plus-side general calibration value register */ #define KINETIS_ADC_CLP0_OFFSET 0x004c /* ADC plus-side general calibration value register */ -#define KINETIS_ADC_PGA_OFFSET 0x0050 /* ADC PGA register */ +#ifndef KINETIS_K64 +# define KINETIS_ADC_PGA_OFFSET 0x0050 /* ADC PGA register */ +#endif #define KINETIS_ADC_CLMD_OFFSET 0x0054 /* ADC minus-side general calibration value register */ #define KINETIS_ADC_CLMS_OFFSET 0x0058 /* ADC minus-side general calibration value register */ #define KINETIS_ADC_CLM4_OFFSET 0x005c /* ADC minus-side general calibration value register */ @@ -80,7 +82,7 @@ #define KINETIS_ADC_CLM0_OFFSET 0x006c /* ADC minus-side general calibration value register */ /* Register Addresses ***********************************************************************/ -# define KINETIS_ADC1_BASE 0x400bb000 /* Analog-to-digital converter (ADC) 1 */ +# define KINETIS_ADC1_BASE 0x400bb000 /* Analog-to-digital converter (ADC) 1 */ #define KINETIS_ADC0_SC1A (KINETIS_ADC0_BASE+KINETIS_ADC_SC1A_OFFSET) #define KINETIS_ADC0_SC1B (KINETIS_ADC0_BASE+KINETIS_ADC_SC1B_OFFSET) @@ -102,7 +104,9 @@ #define KINETIS_ADC0_CLP2 (KINETIS_ADC0_BASE+KINETIS_ADC_CLP2_OFFSET) #define KINETIS_ADC0_CLP1 (KINETIS_ADC0_BASE+KINETIS_ADC_CLP1_OFFSET) #define KINETIS_ADC0_CLP0 (KINETIS_ADC0_BASE+KINETIS_ADC_CLP0_OFFSET) -#define KINETIS_ADC0_PGA (KINETIS_ADC0_BASE+KINETIS_ADC_PGA_OFFSET) +#ifndef KINETIS_K64 +# define KINETIS_ADC0_PGA (KINETIS_ADC0_BASE+KINETIS_ADC_PGA_OFFSET) +#endif #define KINETIS_ADC0_CLMD (KINETIS_ADC0_BASE+KINETIS_ADC_CLMD_OFFSET) #define KINETIS_ADC0_CLMS (KINETIS_ADC0_BASE+KINETIS_ADC_CLMS_OFFSET) #define KINETIS_ADC0_CLM4 (KINETIS_ADC0_BASE+KINETIS_ADC_CLM4_OFFSET) @@ -131,7 +135,9 @@ #define KINETIS_ADC1_CLP2 (KINETIS_ADC1_BASE+KINETIS_ADC_CLP2_OFFSET) #define KINETIS_ADC1_CLP1 (KINETIS_ADC1_BASE+KINETIS_ADC_CLP1_OFFSET) #define KINETIS_ADC1_CLP0 (KINETIS_ADC1_BASE+KINETIS_ADC_CLP0_OFFSET) -#define KINETIS_ADC1_PGA (KINETIS_ADC1_BASE+KINETIS_ADC_PGA_OFFSET) +#ifndef KINETIS_K64 +# define KINETIS_ADC1_PGA (KINETIS_ADC1_BASE+KINETIS_ADC_PGA_OFFSET) +#endif #define KINETIS_ADC1_CLMD (KINETIS_ADC1_BASE+KINETIS_ADC_CLMD_OFFSET) #define KINETIS_ADC1_CLMS (KINETIS_ADC1_BASE+KINETIS_ADC_CLMS_OFFSET) #define KINETIS_ADC1_CLM4 (KINETIS_ADC1_BASE+KINETIS_ADC_CLM4_OFFSET) @@ -272,22 +278,26 @@ #define ADC_CLP0_MASK (0x3f) /* Bits 0-5: Calibration value */ /* ADC PGA register */ + +#ifndef KINETIS_K64 /* Bits 0-15: Reserved */ -#define ADC_PGA_PGAG_SHIFT (16) /* Bits 16-19: PGA gain setting*/ -#define ADC_PGA_PGAG_MASK (15 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_1 (0 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_2 (1 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_4 (2 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_8 (3 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_16 (4 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_32 (5 << ADC_PGA_PGAG_SHIFT) -# define ADC_PGA_PGAG_64 (6 << ADC_PGA_PGAG_SHIFT) -#ifdef KINETIS_K40 -# define ADC_PGA_PGALP (1 << 20) /* Bit 20: PGA low-power mode control */ -#endif +# define ADC_PGA_PGAG_SHIFT (16) /* Bits 16-19: PGA gain setting*/ +# define ADC_PGA_PGAG_MASK (15 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_1 (0 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_2 (1 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_4 (2 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_8 (3 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_16 (4 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_32 (5 << ADC_PGA_PGAG_SHIFT) +# define ADC_PGA_PGAG_64 (6 << ADC_PGA_PGAG_SHIFT) +# ifdef KINETIS_K40 +# define ADC_PGA_PGALP (1 << 20) /* Bit 20: PGA low-power mode control */ +# endif /* Bits 21-22: Reserved */ -#define ADC_PGA_PGAEN (1 << 23) /* Bit 23: PGA enable*/ +# define ADC_PGA_PGAEN (1 << 23) /* Bit 23: PGA enable*/ /* Bits 24-31: Reserved */ +#endif + /* ADC minus-side general calibration value registers */ #define ADC_CLMD_MASK (0x3f) /* Bits 0-5: Calibration value */ @@ -310,4 +320,4 @@ * Public Functions ********************************************************************************************/ -#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_ADC_H */ +#endif /* __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_ADC_H */ diff --git a/arch/arm/src/kinetis/kinetis_aips.h b/arch/arm/src/kinetis/chip/kinetis_aips.h similarity index 87% rename from arch/arm/src/kinetis/kinetis_aips.h rename to arch/arm/src/kinetis/chip/kinetis_aips.h index 8f460567f7..a8050fb613 100644 --- a/arch/arm/src/kinetis/kinetis_aips.h +++ b/arch/arm/src/kinetis/chip/kinetis_aips.h @@ -1,7 +1,7 @@ /************************************************************************************ - * arch/arm/src/kinetis/kinetis_aips.h + * arch/arm/src/kinetis/chip/kinetis_aips.h * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -33,8 +33,8 @@ * ************************************************************************************/ -#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_AIPS_H -#define __ARCH_ARM_SRC_KINETIS_KINETIS_AIPS_H +#ifndef __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AIPS_H +#define __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AIPS_H /************************************************************************************ * Included Files @@ -68,6 +68,9 @@ #define KINETIS_AIPS_PACRN_OFFSET 0x0064 /* Peripheral Access Control Register */ #define KINETIS_AIPS_PACRO_OFFSET 0x0068 /* Peripheral Access Control Register */ #define KINETIS_AIPS_PACRP_OFFSET 0x006c /* Peripheral Access Control Register */ +#ifdef KINETIS_K64 +# define KINETIS_AIPS_PACRU_OFFSET 0x0080 /* Peripheral Access Control Register */ +#endif /* Register Addresses ***************************************************************/ @@ -88,24 +91,30 @@ #define KINETIS_AIPS0_PACRN (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRN_OFFSET) #define KINETIS_AIPS0_PACRO (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRO_OFFSET) #define KINETIS_AIPS0_PACRP (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRP_OFFSET) +#ifdef KINETIS_K64 +# define KINETIS_AIPS0_PACRU (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRU_OFFSET) +#endif -#define KINETIS_AIPS1_MPRA (KINETIS_AIPS0_BASE+KINETIS_AIPS_MPRA_OFFSET) -#define KINETIS_AIPS1_PACRA (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRA_OFFSET) -#define KINETIS_AIPS1_PACRB (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRB_OFFSET) -#define KINETIS_AIPS1_PACRC (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRC_OFFSET) -#define KINETIS_AIPS1_PACRD (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRD_OFFSET) -#define KINETIS_AIPS1_PACRE (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRE_OFFSET) -#define KINETIS_AIPS1_PACRF (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRF_OFFSET) -#define KINETIS_AIPS1_PACRG (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRG_OFFSET) -#define KINETIS_AIPS1_PACRH (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRH_OFFSET) -#define KINETIS_AIPS1_PACRI (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRI_OFFSET) -#define KINETIS_AIPS1_PACRJ (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRJ_OFFSET) -#define KINETIS_AIPS1_PACRK (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRK_OFFSET) -#define KINETIS_AIPS1_PACRL (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRL_OFFSET) -#define KINETIS_AIPS1_PACRM (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRM_OFFSET) -#define KINETIS_AIPS1_PACRN (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRN_OFFSET) -#define KINETIS_AIPS1_PACRO (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRO_OFFSET) -#define KINETIS_AIPS1_PACRP (KINETIS_AIPS0_BASE+KINETIS_AIPS_PACRP_OFFSET) +#define KINETIS_AIPS1_MPRA (KINETIS_AIPS1_BASE+KINETIS_AIPS_MPRA_OFFSET) +#define KINETIS_AIPS1_PACRA (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRA_OFFSET) +#define KINETIS_AIPS1_PACRB (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRB_OFFSET) +#define KINETIS_AIPS1_PACRC (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRC_OFFSET) +#define KINETIS_AIPS1_PACRD (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRD_OFFSET) +#define KINETIS_AIPS1_PACRE (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRE_OFFSET) +#define KINETIS_AIPS1_PACRF (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRF_OFFSET) +#define KINETIS_AIPS1_PACRG (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRG_OFFSET) +#define KINETIS_AIPS1_PACRH (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRH_OFFSET) +#define KINETIS_AIPS1_PACRI (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRI_OFFSET) +#define KINETIS_AIPS1_PACRJ (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRJ_OFFSET) +#define KINETIS_AIPS1_PACRK (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRK_OFFSET) +#define KINETIS_AIPS1_PACRL (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRL_OFFSET) +#define KINETIS_AIPS1_PACRM (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRM_OFFSET) +#define KINETIS_AIPS1_PACRN (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRN_OFFSET) +#define KINETIS_AIPS1_PACRO (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRO_OFFSET) +#define KINETIS_AIPS1_PACRP (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRP_OFFSET) +#ifdef KINETIS_K64 +# define KINETIS_AIPS1_PACRU (KINETIS_AIPS1_BASE+KINETIS_AIPS_PACRU_OFFSET) +#endif /* Register Bit Definitions *********************************************************/ @@ -205,4 +214,4 @@ * Public Functions ************************************************************************************/ -#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_AIPS_H */ +#endif /* __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AIPS_H */ diff --git a/arch/arm/src/kinetis/kinetis_axbs.h b/arch/arm/src/kinetis/chip/kinetis_axbs.h similarity index 98% rename from arch/arm/src/kinetis/kinetis_axbs.h rename to arch/arm/src/kinetis/chip/kinetis_axbs.h index bf8543d4da..7aab308593 100644 --- a/arch/arm/src/kinetis/kinetis_axbs.h +++ b/arch/arm/src/kinetis/chip/kinetis_axbs.h @@ -1,7 +1,7 @@ /************************************************************************************ - * arch/arm/src/kinetis/kinetis_axbs.h + * arch/arm/src/kinetis/chip/kinetis_axbs.h * - * Copyright (C) 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -33,8 +33,8 @@ * ************************************************************************************/ -#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_AXBS_H -#define __ARCH_ARM_SRC_KINETIS_KINETIS_AXBS_H +#ifndef __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AXBS_H +#define __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AXBS_H /************************************************************************************ * Included Files @@ -248,4 +248,4 @@ * Public Functions ************************************************************************************/ -#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_AXBS_H */ +#endif /* __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_AXBS_H */ diff --git a/arch/arm/src/kinetis/kinetis_clockconfig.c b/arch/arm/src/kinetis/kinetis_clockconfig.c index 5abe874271..22f840a4dd 100644 --- a/arch/arm/src/kinetis/kinetis_clockconfig.c +++ b/arch/arm/src/kinetis/kinetis_clockconfig.c @@ -373,6 +373,3 @@ kinesis_setdividers(uint32_t div1, uint32_t div2, uint32_t div3, uint32_t div4) putreg32(regval, KINETIS_FMC_PFAPR); } - - - diff --git a/arch/arm/src/kinetis/kinetis_config.h b/arch/arm/src/kinetis/kinetis_config.h index ce1c6efedf..1ce2e7ee5e 100644 --- a/arch/arm/src/kinetis/kinetis_config.h +++ b/arch/arm/src/kinetis/kinetis_config.h @@ -33,8 +33,8 @@ * ************************************************************************************/ -#ifndef __ARCH_ARM_SRC_KINETISXX_KINETIS_CONFIG_H -#define __ARCH_ARM_SRC_KINETISXX_KINETIS_CONFIG_H +#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_CONFIG_H +#define __ARCH_ARM_SRC_KINETIS_KINETIS_CONFIG_H /************************************************************************************ * Included Files @@ -232,4 +232,4 @@ * Public Functions ************************************************************************************/ -#endif /* __ARCH_ARM_SRC_KINETISXX_KINETIS_CONFIG_H */ +#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_CONFIG_H */