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) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * OpenRISC Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Linux architectural port borrowing liberally from similar works of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * others.  All original copyrights apply as per the original source
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * declaration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  * OpenRISC implementation:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)  * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #ifndef __ASM_OPENRISC_SPR_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define __ASM_OPENRISC_SPR_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define mtspr(_spr, _val) __asm__ __volatile__ (		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	"l.mtspr r0,%1,%0"					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	: : "K" (_spr), "r" (_val))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define mtspr_off(_spr, _off, _val) __asm__ __volatile__ (	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	"l.mtspr %0,%1,%2"					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	: : "r" (_off), "r" (_val), "K" (_spr))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) static inline unsigned long mfspr(unsigned long add)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	unsigned long ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	__asm__ __volatile__ ("l.mfspr %0,r0,%1" : "=r" (ret) : "K" (add));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) static inline unsigned long mfspr_off(unsigned long add, unsigned long offset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	unsigned long ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	__asm__ __volatile__ ("l.mfspr %0,%1,%2" : "=r" (ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 						 : "r" (offset), "K" (add));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #endif