mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
![Linus Walleij](/assets/img/avatar_default.png)
Instead of using hardcoded base addresses implicitly obtained through <linux/io.h>, pass the physical base for the three NPE blocks as memory resources and remap these in the driver. Drop the memory request region business, this will anyways be done by devm_* remapping functions. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
38 lines
978 B
C
38 lines
978 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __IXP4XX_NPE_H
|
|
#define __IXP4XX_NPE_H
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
extern const char *npe_names[];
|
|
|
|
struct npe_regs {
|
|
u32 exec_addr, exec_data, exec_status_cmd, exec_count;
|
|
u32 action_points[4];
|
|
u32 watchpoint_fifo, watch_count;
|
|
u32 profile_count;
|
|
u32 messaging_status, messaging_control;
|
|
u32 mailbox_status, /*messaging_*/ in_out_fifo;
|
|
};
|
|
|
|
struct npe {
|
|
struct npe_regs __iomem *regs;
|
|
int id;
|
|
int valid;
|
|
};
|
|
|
|
|
|
static inline const char *npe_name(struct npe *npe)
|
|
{
|
|
return npe_names[npe->id];
|
|
}
|
|
|
|
int npe_running(struct npe *npe);
|
|
int npe_send_message(struct npe *npe, const void *msg, const char *what);
|
|
int npe_recv_message(struct npe *npe, void *msg, const char *what);
|
|
int npe_send_recv_message(struct npe *npe, void *msg, const char *what);
|
|
int npe_load_firmware(struct npe *npe, const char *name, struct device *dev);
|
|
struct npe *npe_request(unsigned id);
|
|
void npe_release(struct npe *npe);
|
|
|
|
#endif /* __IXP4XX_NPE_H */
|