Skip to content

Commit a6254f4

Browse files
committed
atmel-samd: Add basic support for experimental Metro M0 with an external flash chip.
1 parent 5d6c410 commit a6254f4

File tree

12 files changed

+904
-0
lines changed

12 files changed

+904
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/**
2+
* \file
3+
*
4+
* \brief Memory access control configuration file.
5+
*
6+
* Copyright (c) 2014-2015 Atmel Corporation. All rights reserved.
7+
*
8+
* \asf_license_start
9+
*
10+
* \page License
11+
*
12+
* Redistribution and use in source and binary forms, with or without
13+
* modification, are permitted provided that the following conditions are met:
14+
*
15+
* 1. Redistributions of source code must retain the above copyright notice,
16+
* this list of conditions and the following disclaimer.
17+
*
18+
* 2. Redistributions in binary form must reproduce the above copyright notice,
19+
* this list of conditions and the following disclaimer in the documentation
20+
* and/or other materials provided with the distribution.
21+
*
22+
* 3. The name of Atmel may not be used to endorse or promote products derived
23+
* from this software without specific prior written permission.
24+
*
25+
* 4. This software may only be redistributed and used in connection with an
26+
* Atmel microcontroller product.
27+
*
28+
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
29+
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
31+
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
32+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
36+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38+
* POSSIBILITY OF SUCH DAMAGE.
39+
*
40+
* \asf_license_stop
41+
*
42+
*/
43+
/*
44+
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
45+
*/
46+
47+
#ifndef _CONF_ACCESS_H_
48+
#define _CONF_ACCESS_H_
49+
50+
#include "compiler.h"
51+
#include "board.h"
52+
53+
54+
/*! \name Activation of Logical Unit Numbers
55+
*/
56+
//! @{
57+
#define LUN_0 ENABLE //!< On-Chip Virtual Memory.
58+
#define LUN_1 DISABLE //!< AT45DBX Data Flash.
59+
#define LUN_2 DISABLE //!< SD/MMC Card over SPI.
60+
#define LUN_3 DISABLE //!< SD/MMC Card over MCI Slot 0.
61+
#define LUN_4 DISABLE
62+
#define LUN_5 DISABLE
63+
#define LUN_6 DISABLE
64+
#define LUN_7 DISABLE
65+
#define LUN_USB DISABLE //!< Host Mass-Storage Memory.
66+
//! @}
67+
68+
/*! \name LUN 0 Definitions
69+
*/
70+
//! @{
71+
#define LUN_0_INCLUDE "rom_fs.h"
72+
#define Lun_0_test_unit_ready rom_fs_test_unit_ready
73+
#define Lun_0_read_capacity rom_fs_read_capacity
74+
#define Lun_0_unload NULL /* Can not be unloaded */
75+
#define Lun_0_wr_protect rom_fs_wr_protect
76+
#define Lun_0_removal rom_fs_removal
77+
#define Lun_0_usb_read_10 rom_fs_usb_read_10
78+
#define Lun_0_usb_write_10 rom_fs_usb_write_10
79+
#define LUN_0_NAME "\"On-Chip ROM\""
80+
//! @}
81+
82+
#define MEM_USB LUN_USB
83+
84+
/*! \name Actions Associated with Memory Accesses
85+
*
86+
* Write here the action to associate with each memory access.
87+
*
88+
* \warning Be careful not to waste time in order not to disturb the functions.
89+
*/
90+
//! @{
91+
#define memory_start_read_action(nb_sectors)
92+
#define memory_stop_read_action()
93+
#define memory_start_write_action(nb_sectors)
94+
#define memory_stop_write_action()
95+
//! @}
96+
97+
/*! \name Activation of Interface Features
98+
*/
99+
//! @{
100+
#define ACCESS_USB true //!< MEM <-> USB interface.
101+
#define ACCESS_MEM_TO_RAM false //!< MEM <-> RAM interface.
102+
#define ACCESS_STREAM false //!< Streaming MEM <-> MEM interface.
103+
#define ACCESS_STREAM_RECORD false //!< Streaming MEM <-> MEM interface in record mode.
104+
#define ACCESS_MEM_TO_MEM false //!< MEM <-> MEM interface.
105+
#define ACCESS_CODEC false //!< Codec interface.
106+
//! @}
107+
108+
/*! \name Specific Options for Access Control
109+
*/
110+
//! @{
111+
#define GLOBAL_WR_PROTECT false //!< Management of a global write protection.
112+
//! @}
113+
114+
115+
#endif // _CONF_ACCESS_H_
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* \file
3+
*
4+
* \brief User board configuration template
5+
*
6+
*/
7+
/*
8+
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
9+
*/
10+
11+
#ifndef CONF_BOARD_H
12+
#define CONF_BOARD_H
13+
14+
#endif // CONF_BOARD_H
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
/**
2+
* \file
3+
*
4+
* \brief SAM D21 Clock configuration
5+
*
6+
* Copyright (C) 2014-2015 Atmel Corporation. All rights reserved.
7+
*
8+
* \asf_license_start
9+
*
10+
* \page License
11+
*
12+
* Redistribution and use in source and binary forms, with or without
13+
* modification, are permitted provided that the following conditions are met:
14+
*
15+
* 1. Redistributions of source code must retain the above copyright notice,
16+
* this list of conditions and the following disclaimer.
17+
*
18+
* 2. Redistributions in binary form must reproduce the above copyright notice,
19+
* this list of conditions and the following disclaimer in the documentation
20+
* and/or other materials provided with the distribution.
21+
*
22+
* 3. The name of Atmel may not be used to endorse or promote products derived
23+
* from this software without specific prior written permission.
24+
*
25+
* 4. This software may only be redistributed and used in connection with an
26+
* Atmel microcontroller product.
27+
*
28+
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
29+
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
31+
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
32+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
36+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38+
* POSSIBILITY OF SUCH DAMAGE.
39+
*
40+
* \asf_license_stop
41+
*
42+
*/
43+
/*
44+
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
45+
*/
46+
#include <clock.h>
47+
48+
#ifndef CONF_CLOCKS_H_INCLUDED
49+
# define CONF_CLOCKS_H_INCLUDED
50+
51+
/* System clock bus configuration */
52+
# define CONF_CLOCK_CPU_CLOCK_FAILURE_DETECT false
53+
# define CONF_CLOCK_FLASH_WAIT_STATES 2
54+
# define CONF_CLOCK_CPU_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
55+
# define CONF_CLOCK_APBA_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
56+
# define CONF_CLOCK_APBB_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
57+
# define CONF_CLOCK_APBC_DIVIDER SYSTEM_MAIN_CLOCK_DIV_1
58+
59+
/* SYSTEM_CLOCK_SOURCE_OSC8M configuration - Internal 8MHz oscillator */
60+
# define CONF_CLOCK_OSC8M_PRESCALER SYSTEM_OSC8M_DIV_1
61+
# define CONF_CLOCK_OSC8M_ON_DEMAND true
62+
# define CONF_CLOCK_OSC8M_RUN_IN_STANDBY false
63+
64+
/* SYSTEM_CLOCK_SOURCE_XOSC configuration - External clock/oscillator */
65+
# define CONF_CLOCK_XOSC_ENABLE false
66+
# define CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL SYSTEM_CLOCK_EXTERNAL_CRYSTAL
67+
# define CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY 12000000UL
68+
# define CONF_CLOCK_XOSC_STARTUP_TIME SYSTEM_XOSC_STARTUP_32768
69+
# define CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL true
70+
# define CONF_CLOCK_XOSC_ON_DEMAND true
71+
# define CONF_CLOCK_XOSC_RUN_IN_STANDBY false
72+
73+
/* SYSTEM_CLOCK_SOURCE_XOSC32K configuration - External 32KHz crystal/clock oscillator */
74+
# define CONF_CLOCK_XOSC32K_ENABLE true
75+
# define CONF_CLOCK_XOSC32K_EXTERNAL_CRYSTAL SYSTEM_CLOCK_EXTERNAL_CRYSTAL
76+
# define CONF_CLOCK_XOSC32K_STARTUP_TIME SYSTEM_XOSC32K_STARTUP_65536
77+
# define CONF_CLOCK_XOSC32K_AUTO_AMPLITUDE_CONTROL false
78+
# define CONF_CLOCK_XOSC32K_ENABLE_1KHZ_OUPUT false
79+
# define CONF_CLOCK_XOSC32K_ENABLE_32KHZ_OUTPUT true
80+
# define CONF_CLOCK_XOSC32K_ON_DEMAND false
81+
# define CONF_CLOCK_XOSC32K_RUN_IN_STANDBY true
82+
83+
/* SYSTEM_CLOCK_SOURCE_OSC32K configuration - Internal 32KHz oscillator */
84+
# define CONF_CLOCK_OSC32K_ENABLE false
85+
# define CONF_CLOCK_OSC32K_STARTUP_TIME SYSTEM_OSC32K_STARTUP_130
86+
# define CONF_CLOCK_OSC32K_ENABLE_1KHZ_OUTPUT true
87+
# define CONF_CLOCK_OSC32K_ENABLE_32KHZ_OUTPUT true
88+
# define CONF_CLOCK_OSC32K_ON_DEMAND true
89+
# define CONF_CLOCK_OSC32K_RUN_IN_STANDBY false
90+
91+
/* SYSTEM_CLOCK_SOURCE_DFLL configuration - Digital Frequency Locked Loop */
92+
# define CONF_CLOCK_DFLL_ENABLE true
93+
# define CONF_CLOCK_DFLL_LOOP_MODE SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED
94+
# define CONF_CLOCK_DFLL_ON_DEMAND true
95+
96+
/* DFLL open loop mode configuration */
97+
# define CONF_CLOCK_DFLL_FINE_VALUE (512)
98+
99+
/* DFLL closed loop mode configuration */
100+
# define CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR GCLK_GENERATOR_1
101+
# define CONF_CLOCK_DFLL_MULTIPLY_FACTOR (48000000 / 32768)
102+
# define CONF_CLOCK_DFLL_QUICK_LOCK true
103+
# define CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK true
104+
# define CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP true
105+
# define CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE true
106+
# define CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE (0x1f / 4)
107+
# define CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE (0xff / 4)
108+
109+
/* SYSTEM_CLOCK_SOURCE_DPLL configuration - Digital Phase-Locked Loop */
110+
# define CONF_CLOCK_DPLL_ENABLE false
111+
# define CONF_CLOCK_DPLL_ON_DEMAND true
112+
# define CONF_CLOCK_DPLL_RUN_IN_STANDBY false
113+
# define CONF_CLOCK_DPLL_LOCK_BYPASS false
114+
# define CONF_CLOCK_DPLL_WAKE_UP_FAST false
115+
# define CONF_CLOCK_DPLL_LOW_POWER_ENABLE false
116+
117+
# define CONF_CLOCK_DPLL_LOCK_TIME SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_DEFAULT
118+
# define CONF_CLOCK_DPLL_REFERENCE_CLOCK SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC32K
119+
# define CONF_CLOCK_DPLL_FILTER SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT
120+
121+
# define CONF_CLOCK_DPLL_REFERENCE_FREQUENCY 32768
122+
# define CONF_CLOCK_DPLL_REFERENCE_DIVIDER 1
123+
# define CONF_CLOCK_DPLL_OUTPUT_FREQUENCY 48000000
124+
125+
/* DPLL GCLK reference configuration */
126+
# define CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR GCLK_GENERATOR_1
127+
/* DPLL GCLK lock timer configuration */
128+
# define CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR GCLK_GENERATOR_1
129+
130+
/* Set this to true to configure the GCLK when running clocks_init. If set to
131+
* false, none of the GCLK generators will be configured in clocks_init(). */
132+
# define CONF_CLOCK_CONFIGURE_GCLK true
133+
134+
/* Configure GCLK generator 0 (Main Clock) */
135+
# define CONF_CLOCK_GCLK_0_ENABLE true
136+
# define CONF_CLOCK_GCLK_0_RUN_IN_STANDBY true
137+
# define CONF_CLOCK_GCLK_0_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_DFLL
138+
# define CONF_CLOCK_GCLK_0_PRESCALER 1
139+
# define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE false
140+
141+
/* Configure GCLK generator 1 */
142+
# define CONF_CLOCK_GCLK_1_ENABLE true
143+
# define CONF_CLOCK_GCLK_1_RUN_IN_STANDBY false
144+
# define CONF_CLOCK_GCLK_1_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_XOSC32K
145+
# define CONF_CLOCK_GCLK_1_PRESCALER 1
146+
# define CONF_CLOCK_GCLK_1_OUTPUT_ENABLE true
147+
148+
/* Configure GCLK generator 2 (RTC) */
149+
# define CONF_CLOCK_GCLK_2_ENABLE false
150+
# define CONF_CLOCK_GCLK_2_RUN_IN_STANDBY false
151+
# define CONF_CLOCK_GCLK_2_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC32K
152+
# define CONF_CLOCK_GCLK_2_PRESCALER 32
153+
# define CONF_CLOCK_GCLK_2_OUTPUT_ENABLE false
154+
155+
/* Configure GCLK generator 3 */
156+
# define CONF_CLOCK_GCLK_3_ENABLE true
157+
# define CONF_CLOCK_GCLK_3_RUN_IN_STANDBY false
158+
# define CONF_CLOCK_GCLK_3_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
159+
# define CONF_CLOCK_GCLK_3_PRESCALER 1
160+
# define CONF_CLOCK_GCLK_3_OUTPUT_ENABLE false
161+
162+
/* Configure GCLK generator 4 */
163+
# define CONF_CLOCK_GCLK_4_ENABLE false
164+
# define CONF_CLOCK_GCLK_4_RUN_IN_STANDBY false
165+
# define CONF_CLOCK_GCLK_4_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
166+
# define CONF_CLOCK_GCLK_4_PRESCALER 1
167+
# define CONF_CLOCK_GCLK_4_OUTPUT_ENABLE false
168+
169+
/* Configure GCLK generator 5 */
170+
# define CONF_CLOCK_GCLK_5_ENABLE false
171+
# define CONF_CLOCK_GCLK_5_RUN_IN_STANDBY false
172+
# define CONF_CLOCK_GCLK_5_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
173+
# define CONF_CLOCK_GCLK_5_PRESCALER 1
174+
# define CONF_CLOCK_GCLK_5_OUTPUT_ENABLE false
175+
176+
/* Configure GCLK generator 6 */
177+
# define CONF_CLOCK_GCLK_6_ENABLE false
178+
# define CONF_CLOCK_GCLK_6_RUN_IN_STANDBY false
179+
# define CONF_CLOCK_GCLK_6_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
180+
# define CONF_CLOCK_GCLK_6_PRESCALER 1
181+
# define CONF_CLOCK_GCLK_6_OUTPUT_ENABLE false
182+
183+
/* Configure GCLK generator 7 */
184+
# define CONF_CLOCK_GCLK_7_ENABLE false
185+
# define CONF_CLOCK_GCLK_7_RUN_IN_STANDBY false
186+
# define CONF_CLOCK_GCLK_7_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
187+
# define CONF_CLOCK_GCLK_7_PRESCALER 1
188+
# define CONF_CLOCK_GCLK_7_OUTPUT_ENABLE false
189+
190+
/* Configure GCLK generator 8 */
191+
# define CONF_CLOCK_GCLK_8_ENABLE false
192+
# define CONF_CLOCK_GCLK_8_RUN_IN_STANDBY false
193+
# define CONF_CLOCK_GCLK_8_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_OSC8M
194+
# define CONF_CLOCK_GCLK_8_PRESCALER 1
195+
# define CONF_CLOCK_GCLK_8_OUTPUT_ENABLE false
196+
197+
#endif /* CONF_CLOCKS_H_INCLUDED */
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/**
2+
* \file
3+
*
4+
* \brief Sleep manager configuration
5+
*
6+
* Copyright (c) 2014-2015 Atmel Corporation. All rights reserved.
7+
*
8+
* \asf_license_start
9+
*
10+
* \page License
11+
*
12+
* Redistribution and use in source and binary forms, with or without
13+
* modification, are permitted provided that the following conditions are met:
14+
*
15+
* 1. Redistributions of source code must retain the above copyright notice,
16+
* this list of conditions and the following disclaimer.
17+
*
18+
* 2. Redistributions in binary form must reproduce the above copyright notice,
19+
* this list of conditions and the following disclaimer in the documentation
20+
* and/or other materials provided with the distribution.
21+
*
22+
* 3. The name of Atmel may not be used to endorse or promote products derived
23+
* from this software without specific prior written permission.
24+
*
25+
* 4. This software may only be redistributed and used in connection with an
26+
* Atmel microcontroller product.
27+
*
28+
* THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
29+
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
31+
* EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
32+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
33+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
34+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
35+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
36+
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
37+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38+
* POSSIBILITY OF SUCH DAMAGE.
39+
*
40+
* \asf_license_stop
41+
*
42+
*/
43+
/*
44+
* Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
45+
*/
46+
47+
#ifndef CONF_SLEEPMGR_H_INCLUDED
48+
#define CONF_SLEEPMGR_H_INCLUDED
49+
50+
#define CONFIG_SLEEPMGR_ENABLE
51+
52+
#endif /* CONF_SLEEPMGR_H_INCLUDED */

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy