diff options
Diffstat (limited to 'include/linux/rpmsg_resmgr.h')
-rw-r--r-- | include/linux/rpmsg_resmgr.h | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/include/linux/rpmsg_resmgr.h b/include/linux/rpmsg_resmgr.h new file mode 100644 index 0000000..707809e --- /dev/null +++ b/include/linux/rpmsg_resmgr.h @@ -0,0 +1,131 @@ +/* + * Remote processor messaging + * + * Copyright(c) 2011 Texas Instruments. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name Texas Instruments nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _LINUX_RPMSG_RESMGR_H +#define _LINUX_RPMSG_RESMGR_H + +#define MAX_NUM_SDMA_CHANNELS 16 + +enum { + RPRM_GPTIMER = 0, + RPRM_IVAHD = 1, + RPRM_IVASEQ0 = 2, + RPRM_IVASEQ1 = 3, + RPRM_L3BUS = 4, + RPRM_ISS = 5, + RPRM_FDIF = 6, + RPRM_SL2IF = 7, + RPRM_AUXCLK = 8, + RPRM_REGULATOR = 9, + RPRM_GPIO = 10, + RPRM_SDMA = 11, + RPRM_IPU = 12, + RPRM_DSP = 13, + RPRM_I2C = 14, + RPRM_MAX +}; + +enum { + RPRM_CONNECT = 0, + RPRM_REQ_ALLOC = 1, + RPRM_REQ_FREE = 2, + RPRM_DISCONNECT = 3, + RPRM_REQ_CONSTRAINTS = 4, + RPRM_REL_CONSTRAINTS = 5, +}; + +enum { + RPRM_SCALE = 0x1, + RPRM_LATENCY = 0x2, + RPRM_BANDWIDTH = 0x4, +}; + +struct rprm_request { + u32 res_type; + u32 acquire; + u32 res_id; + char data[]; +} __packed; + +struct rprm_ack { + u32 ret; + u32 res_type; + u32 res_id; + u32 base; + char data[]; +} __packed; + +struct rprm_gpt { + u32 id; + u32 src_clk; +}; + +struct rprm_auxclk { + u32 id; + u32 clk_rate; + u32 parent_src_clk; + u32 parent_src_clk_rate; +}; + +struct rprm_regulator { + u32 id; + u32 min_uv; + u32 max_uv; +}; + +struct rprm_gpio { + u32 id; +}; + +/** + * struct rprm_i2c - resource i2c + * @id: i2c id + * + * meant to store the i2c related information + */ +struct rprm_i2c { + u32 id; +}; + +struct rprm_sdma { + u32 num_chs; + s32 channels[MAX_NUM_SDMA_CHANNELS]; +}; + +struct rprm_constraints_data { + u32 mask; + long frequency; + long bandwidth; + long latency; +}; + +#endif /* _LINUX_RPMSG_RESMGR_H */ |