#ifndef __BR28_CHARGESTORE_H__ #define __BR28_CHARGESTORE_H__ #include "generic/typedef.h" enum { CMD_COMPLETE, CMD_RECVDATA, }; enum { MODE_RECVDATA, MODE_SENDDATA, }; enum { TYPE_NORMAL, TYPE_F95, }; #define PROTOCAL_DEFAULT 0 #define PROTOCAL_LOADER 1 #define LDOIN_BIND_IO IO_PORTP_00 struct chargestore_platform_data { u32 baudrate; u32 io_port; u8 uart_irq; void (*init)(const struct chargestore_platform_data *); void (*open)(u8 mode); void (*close)(void); void (*write)(u8 *, u8); }; struct chargestore_data_handler { int (*data_cb)(u8 *buf, u8 len); }; #define CHARGESTORE_HANDLE_REG(name, data_callback) \ const struct chargestore_data_handler chargestore_##name \ SEC_USED(.chargestore_callback_txt) = {data_callback}; extern struct chargestore_data_handler chargestore_handler_begin[]; extern struct chargestore_data_handler chargestore_handler_end[]; #define list_for_each_loop_chargestore(h) \ for (h=chargestore_handler_begin; h