diff options
author | Vinod Koul <vinod.koul@intel.com> | 2016-12-14 06:37:07 +0300 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2016-12-14 06:37:07 +0300 |
commit | 4625d2a513d60ca9c3e8cae42c8f3d9efc1b4211 (patch) | |
tree | 12206d852d868d6ba2df3dd9bc3387555c0b4883 /include/linux | |
parent | 57fb7ee10c27b315600445b2bad72236a11951ad (diff) | |
parent | 3d6b3715fb5d4b7321a9ebd664991be2ed8f5f7b (diff) | |
download | linux-4625d2a513d60ca9c3e8cae42c8f3d9efc1b4211.tar.xz |
Merge branch 'topic/st_fdma' into for-linus
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/remoteproc/st_slim_rproc.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/include/linux/remoteproc/st_slim_rproc.h b/include/linux/remoteproc/st_slim_rproc.h new file mode 100644 index 000000000000..4155556fa4b2 --- /dev/null +++ b/include/linux/remoteproc/st_slim_rproc.h @@ -0,0 +1,58 @@ +/* + * SLIM core rproc driver header + * + * Copyright (C) 2016 STMicroelectronics + * + * Author: Peter Griffin <peter.griffin@linaro.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ +#ifndef _ST_REMOTEPROC_SLIM_H +#define _ST_REMOTEPROC_SLIM_H + +#define ST_SLIM_MEM_MAX 2 +#define ST_SLIM_MAX_CLK 4 + +enum { + ST_SLIM_DMEM, + ST_SLIM_IMEM, +}; + +/** + * struct st_slim_mem - slim internal memory structure + * @cpu_addr: MPU virtual address of the memory region + * @bus_addr: Bus address used to access the memory region + * @size: Size of the memory region + */ +struct st_slim_mem { + void __iomem *cpu_addr; + phys_addr_t bus_addr; + size_t size; +}; + +/** + * struct st_slim_rproc - SLIM slim core + * @rproc: rproc handle + * @mem: slim memory information + * @slimcore: slim slimcore regs + * @peri: slim peripheral regs + * @clks: slim clocks + */ +struct st_slim_rproc { + struct rproc *rproc; + struct st_slim_mem mem[ST_SLIM_MEM_MAX]; + void __iomem *slimcore; + void __iomem *peri; + + /* st_slim_rproc private */ + struct clk *clks[ST_SLIM_MAX_CLK]; +}; + +struct st_slim_rproc *st_slim_rproc_alloc(struct platform_device *pdev, + char *fw_name); +void st_slim_rproc_put(struct st_slim_rproc *slim_rproc); + +#endif |