#include <linux/device.h>
#include <linux/gpio/consumer.h>
#include <linux/irqflags.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/firmware.h>
#include <linux/gpio/aspeed.h>
#include <linux/mfd/syscon.h>
#include <linux/of_address.h>
#include <linux/genalloc.h>
#define FW_FILE_NAME "cf-fsi-fw.bin"
#define SCU_COPRO_CTRL 0x100
#define SCU_COPRO_RESET 0x00000002
#define SCU_COPRO_CLK_EN 0x00000001
#define SCU_2500_COPRO_SEG0 0x104
#define SCU_2500_COPRO_SEG1 0x108
#define SCU_2500_COPRO_SEG2 0x10c
#define SCU_2500_COPRO_SEG3 0x110
#define SCU_2500_COPRO_SEG4 0x114
#define SCU_2500_COPRO_SEG5 0x118
#define SCU_2500_COPRO_SEG6 0x11c
#define SCU_2500_COPRO_SEG7 0x120
#define SCU_2500_COPRO_SEG8 0x124
#define SCU_2500_COPRO_SEG_SWAP 0x00000001
#define SCU_2500_COPRO_CACHE_CTL 0x128
#define SCU_2500_COPRO_CACHE_EN 0x00000001
#define SCU_2500_COPRO_SEG0_CACHE_EN 0x00000002
#define SCU_2500_COPRO_SEG1_CACHE_EN 0x00000004
#define SCU_2500_COPRO_SEG2_CACHE_EN 0x00000008
#define SCU_2500_COPRO_SEG3_CACHE_EN 0x00000010
#define SCU_2500_COPRO_SEG4_CACHE_EN 0x00000020
#define SCU_2500_COPRO_SEG5_CACHE_EN 0x00000040
#define SCU_2500_COPRO_SEG6_CACHE_EN 0x00000080
#define SCU_2500_COPRO_SEG7_CACHE_EN 0x00000100
#define SCU_2500_COPRO_SEG8_CACHE_EN 0x00000200
#define SCU_2400_COPRO_SEG0 0x104
#define SCU_2400_COPRO_SEG2 0x108
#define SCU_2400_COPRO_SEG4 0x10c
#define SCU_2400_COPRO_SEG6 0x110
#define SCU_2400_COPRO_SEG8 0x114
#define SCU_2400_COPRO_SEG_SWAP 0x80000000