msm_rotator.h revision 5bccd2d0d6de8ffd0c244c1b66ef5a9ac9409404
164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#ifndef __MSM_ROTATOR_H__ 264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define __MSM_ROTATOR_H__ 364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#include <linux/types.h> 564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#include <linux/msm_mdp.h> 664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define MSM_ROTATOR_IOCTL_MAGIC 'R' 864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define MSM_ROTATOR_IOCTL_START \ 1064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci _IOWR(MSM_ROTATOR_IOCTL_MAGIC, 1, struct msm_rotator_img_info) 1164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define MSM_ROTATOR_IOCTL_ROTATE \ 1264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci _IOW(MSM_ROTATOR_IOCTL_MAGIC, 2, struct msm_rotator_data_info) 1364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define MSM_ROTATOR_IOCTL_FINISH \ 1464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci _IOW(MSM_ROTATOR_IOCTL_MAGIC, 3, int) 1564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 1664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#define ROTATOR_VERSION_01 0xA5B4C301 1764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 1864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcienum rotator_clk_type { 1964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci ROTATOR_CORE_CLK, 2064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci ROTATOR_PCLK, 2164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci ROTATOR_IMEM_CLK 2264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci}; 2364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 2464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcistruct msm_rotator_img_info { 2564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int session_id; 2664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msmfb_img src; 2764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msmfb_img dst; 2864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct mdp_rect src_rect; 2964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int dst_x; 3064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int dst_y; 3164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned char rotations; 3264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int enable; 3364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int downscale_ratio; 3464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int secure; 3564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci}; 3664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 3764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcistruct msm_rotator_data_info { 3864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci int session_id; 3964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msmfb_data src; 4064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msmfb_data dst; 4164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int version_key; 42382ddccb550e1c822ef26a0e65988998f7446624Max Cai struct msmfb_data src_chroma; 4364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msmfb_data dst_chroma; 4464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci}; 4564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 4664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcistruct msm_rot_clocks { 4764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci const char *clk_name; 4864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci enum rotator_clk_type clk_type; 4964d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int clk_rate; 5064d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci}; 5164d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci 5264d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazcistruct msm_rotator_platform_data { 5364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int number_of_clocks; 5464d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci unsigned int hardware_version_number; 5564d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msm_rot_clocks *rotator_clks; 5664d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#ifdef CONFIG_MSM_BUS_SCALING 5764d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci struct msm_bus_scale_pdata *bus_scale_table; 5864d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci#endif 59f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao char rot_iommu_split_domain; 60f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao}; 61f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao#endif 62f4e01452f159ae6b53f5edd25fa647ca2919ae10Tom Chao 6364d8d8f89050c5ada85341f967af391f4716a7cbUlas Kirazci