oleavr-rgl-a500-mini-linux-.../drivers/soc/allwinner/pm/standby/standby_debug.c
Ole André Vadla Ravnås 169c65d57e Initial commit
2022-05-07 01:01:45 +02:00

89 lines
1.6 KiB
C

/*
* Copyright (c) 2011-2020 yanggq.young@allwinnertech.com
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*/
#include "standby.h"
#include "../pm_config.h"
void mem_status_init(char *name)
{
return;
}
void mem_status_init_nommu(void)
{
return;
}
void mem_status_clear(void)
{
int i = 0;
while (i < STANDBY_STATUS_REG_NUM) {
*(volatile int *)(STANDBY_STATUS_REG + i * 4) = 0x0;
i++;
}
return;
}
void mem_status_exit(void)
{
return;
}
void save_mem_status(volatile __u32 val)
{
*(volatile __u32 *)(STANDBY_STATUS_REG + 0x0c) = val;
asm volatile ("dsb");
asm volatile ("isb");
return;
}
__u32 get_mem_status(void)
{
return *(volatile __u32 *)(STANDBY_STATUS_REG + 0x0c);
}
void show_mem_status(void)
{
int i = 0;
while (i < STANDBY_STATUS_REG_NUM) {
printk("addr %x, value = %x. \n",
(STANDBY_STATUS_REG + i * 4),
*(volatile int *)(STANDBY_STATUS_REG + i * 4));
i++;
}
}
void save_mem_status_nommu(volatile __u32 val)
{
*(volatile __u32 *)(STANDBY_STATUS_REG_PA + 0x0c) = val;
return;
}
void save_cpux_mem_status_nommu(volatile __u32 val)
{
*(volatile __u32 *)(STANDBY_STATUS_REG_PA + 0x04) = val;
return;
}
void save_super_flags(volatile __u32 val)
{
*(volatile __u32 *)(STANDBY_SUPER_FLAG_REG) = val;
asm volatile ("dsb");
asm volatile ("isb");
return;
}
void save_super_addr(volatile __u32 val)
{
*(volatile __u32 *)(STANDBY_SUPER_ADDR_REG) = val;
asm volatile ("dsb");
asm volatile ("isb");
return;
}