enable hdmi audio output
[firefly-linux-kernel-4.4.55.git] / drivers / video / hdmi / chips / anx7150.h
1 #ifndef _ANX7150_H\r
2 #define _ANX7150_H\r
3 \r
4 #include <linux/hdmi.h>\r
5 \r
6 #define ANX7150_I2C_ADDR0               0X39\r
7 #define ANX7150_I2C_ADDR1               0X3d\r
8 \r
9 #define ANX7150_SCL_RATE 100 * 1000\r
10 \r
11 /* HDMI STATUS */\r
12 #define HDMI_DISABLE   0\r
13 #define HDMI_ENABLE    1\r
14 \r
15 /* HDMI auto switch */\r
16 #define HDMI_AUTO_SWITCH HDMI_ENABLE\r
17 \r
18 /* HDMI reciver status */\r
19 #define HDMI_RECIVER_INACTIVE 0\r
20 #define HDMI_RECIVER_ACTIVE   1\r
21 \r
22 /* ANX7150 reciver HPD Status */\r
23 #define HDMI_RECIVER_UNPLUG 0\r
24 #define HDMI_RECIVER_PLUG   1\r
25 \r
26 #define LCD  0\r
27 #define HDMI 1\r
28 \r
29 #define RK29_OUTPUT_STATUS_LCD     LCD\r
30 #define RK29_OUTPUT_STATUS_HDMI    HDMI\r
31 \r
32 /* HDMI HDCP ENABLE */\r
33 #define ANX7150_HDCP_EN  HDMI_DISABLE\r
34 \r
35 /* HDMI default resolution */\r
36 #define HDMI_DEFAULT_RESOLUTION HDMI_1280x720p_50Hz\r
37 /* I2S Fs */\r
38 #define HDMI_I2S_Fs_44100 0\r
39 #define HDMI_I2S_Fs_48000 2\r
40 \r
41 /* I2S default sample rate */\r
42 #define HDMI_I2S_DEFAULT_Fs HDMI_I2S_Fs_44100\r
43 \r
44 /* ANX7150 state machine */\r
45 enum{\r
46         HDMI_INITIAL = 1,\r
47         WAIT_HOTPLUG,\r
48         READ_PARSE_EDID,\r
49         WAIT_RX_SENSE,\r
50         WAIT_HDMI_ENABLE,\r
51         SYSTEM_CONFIG,\r
52         CONFIG_VIDEO,\r
53         CONFIG_AUDIO,\r
54         CONFIG_PACKETS,\r
55         HDCP_AUTHENTICATION,\r
56         PLAY_BACK,\r
57         RESET_LINK,\r
58         UNKNOWN,\r
59 };\r
60 \r
61 \r
62 struct anx7150_dev_s{\r
63         struct i2c_driver *i2c_driver;\r
64         struct fasync_struct *async_queue;\r
65         struct workqueue_struct *workqueue;\r
66         struct delayed_work delay_work;\r
67         struct miscdevice *mdev;\r
68         void (*notifier_callback)(struct anx7150_dev_s *);\r
69         int anx7150_detect;\r
70         int resolution_set;\r
71         int resolution_real;\r
72         int i2s_Fs;\r
73         int hdmi_enable;\r
74         int hdmi_auto_switch;\r
75         int reciver_status;\r
76         int HPD_change_cnt;\r
77         int HPD_status;\r
78         int rk29_output_status;\r
79         int hdcp_enable;\r
80         int parameter_config;\r
81         int rate;\r
82         int fb_switch_state;\r
83 \r
84         struct hdmi *hdmi;\r
85 };\r
86 \r
87 struct anx7150_pdata {\r
88         int irq;\r
89         int gpio;\r
90         int init;\r
91         struct i2c_client *client;\r
92         struct anx7150_dev_s dev;\r
93 };\r
94 \r
95 \r
96 \r
97 int anx7150_i2c_read_p0_reg(struct i2c_client *client, char reg, char *val);\r
98 int anx7150_i2c_write_p0_reg(struct i2c_client *client, char reg, char *val);\r
99 int anx7150_i2c_read_p1_reg(struct i2c_client *client, char reg, char *val);\r
100 int anx7150_i2c_write_p1_reg(struct i2c_client *client, char reg, char *val);\r
101 \r
102 #endif\r