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-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *  linux/arch/arm/mach-mmp/common.c
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *  Code common to PXA168 processor lines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <linux/init.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/module.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/page.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/mach/map.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <asm/system_misc.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include "addr-map.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include <linux/soc/mmp/cputype.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #include "common.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define MMP_CHIPID	CIU_REG(0x00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) unsigned int mmp_chip_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) EXPORT_SYMBOL(mmp_chip_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) static struct map_desc standard_io_desc[] __initdata = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 		.pfn		= __phys_to_pfn(APB_PHYS_BASE),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 		.virtual	= (unsigned long)APB_VIRT_BASE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 		.length		= APB_PHYS_SIZE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 		.type		= MT_DEVICE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	}, {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 		.pfn		= __phys_to_pfn(AXI_PHYS_BASE),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		.virtual	= (unsigned long)AXI_VIRT_BASE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 		.length		= AXI_PHYS_SIZE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 		.type		= MT_DEVICE,
^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) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) static struct map_desc mmp2_io_desc[] __initdata = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 		.pfn		= __phys_to_pfn(PGU_PHYS_BASE),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 		.virtual	= (unsigned long)PGU_VIRT_BASE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 		.length		= PGU_PHYS_SIZE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 		.type		= MT_DEVICE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) void __init mmp_map_io(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	/* this is early, initialize mmp_chip_id here */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	mmp_chip_id = __raw_readl(MMP_CHIPID);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) void __init mmp2_map_io(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	mmp_map_io();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	iotable_init(mmp2_io_desc, ARRAY_SIZE(mmp2_io_desc));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) void mmp_restart(enum reboot_mode mode, const char *cmd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	soft_restart(0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) }