Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2)  * arch/xtensa/kernel/platform.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * Default platform functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * License.  See the file "COPYING" in the main directory of this archive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  * for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)  * Copyright (C) 2005 Tensilica Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)  * Chris Zankel <chris@zankel.net>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include <linux/printk.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #include <asm/platform.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #include <asm/timex.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define _F(r,f,a,b)							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	r __platform_##f a b;                                   	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	r platform_##f a __attribute__((weak, alias("__platform_"#f)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)  * Default functions that are used if no platform specific function is defined.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)  * (Please, refer to include/asm-xtensa/platform.h for more information)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) _F(void, init, (bp_tag_t *first), { });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) _F(void, setup, (char** cmd), { });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) _F(void, restart, (void), { while(1); });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) _F(void, halt, (void), { while(1); });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) _F(void, power_off, (void), { while(1); });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) _F(void, idle, (void), { __asm__ __volatile__ ("waiti 0" ::: "memory"); });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) _F(void, heartbeat, (void), { });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #ifdef CONFIG_XTENSA_CALIBRATE_CCOUNT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) _F(void, calibrate_ccount, (void),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	pr_err("ERROR: Cannot calibrate cpu frequency! Assuming 10MHz.\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	ccount_freq = 10 * 1000000UL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) });
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #endif