1 /* SPDX-License-Identifier: BSD-Source-Code */
2 /* ----------------------------------------------------------------------------
3  *         ATMEL Microcontroller Software Support
4  * ----------------------------------------------------------------------------
5  * Copyright (c) 2013, Atmel Corporation
6  *
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are met:
11  *
12  * - Redistributions of source code must retain the above copyright notice,
13  * this list of conditions and the disclaimer below.
14  *
15  * Atmel's name may not be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
21  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 #ifndef MATRIX_H
30 #define MATRIX_H
31 
32 extern void matrix_write_protect_enable(unsigned int matrix_base);
33 extern void matrix_write_protect_disable(unsigned int matrix_base);
34 extern void matrix_configure_slave_security(unsigned int matrix_base,
35 				unsigned int slave,
36 				unsigned int srtop_setting,
37 				unsigned int srsplit_setting,
38 				unsigned int ssr_setting);
39 
40 int matrix_configure_periph_non_secure(unsigned int *peri_id_array,
41 				       unsigned int size);
42 int matrix_configure_periph_secure(unsigned int peri_id);
43 
44 vaddr_t matrix32_base(void);
45 vaddr_t matrix64_base(void);
46 
47 #endif /* #ifndef MATRIX_H */
48