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+ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (c) 2004 Simtec Electronics
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *	Ben Dooks <ben@simtec.co.uk>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * S3C2410 Power Manager (Suspend-To-RAM) support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  * Based on PXA/SA1100 sleep code by:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  *	Nicolas Pitre, (c) 2002 Monta Vista Software Inc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)  *	Cliff Brake, (c) 2001
^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) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <linux/serial_s3c.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include <asm/assembler.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include "map.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #include "regs-gpio.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #include "regs-clock.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)  * S3C24XX_DEBUG_RESUME is dangerous if your bootloader does not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)  * reset the UART configuration, only enable if you really need this!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) //#define S3C24XX_DEBUG_RESUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	.text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	/* sleep magic, to allow the bootloader to check for an valid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	 * image to resume to. Must be the first word before the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	 * s3c_cpu_resume entry.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	.word	0x2bedf00d
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	/* s3c_cpu_resume
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	 *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	 * resume code entry for bootloader to call
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ENTRY(s3c_cpu_resume)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	mov	r0, #PSR_I_BIT | PSR_F_BIT | SVC_MODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	msr	cpsr_c, r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	@@ load UART to allow us to print the two characters for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	@@ resume debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	mov	r2, #S3C24XX_PA_UART & 0xff000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	orr	r2, r2, #S3C24XX_PA_UART & 0xff000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #if 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	/* SMDK2440 LED set */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	mov	r14, #S3C24XX_PA_GPIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	ldr	r12, [ r14, #0x54 ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	bic	r12, r12, #3<<4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	orr	r12, r12, #1<<7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 	str	r12, [ r14, #0x54 ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #ifdef S3C24XX_DEBUG_RESUME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	mov	r3, #'L'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 	strb	r3, [ r2, #S3C2410_UTXH ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 1001:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	ldrb	r14, [ r3, #S3C2410_UTRSTAT ]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	tst	r14, #S3C2410_UTRSTAT_TXE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	beq	1001b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #endif /* S3C24XX_DEBUG_RESUME */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 	b	cpu_resume