• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Allwinner SoCs display driver.
3  *
4  * Copyright (C) 2016 Allwinner.
5  *
6  * This file is licensed under the terms of the GNU General Public
7  * License version 2.  This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 
11 #ifndef _DISP_SYS_INTF_
12 #define _DISP_SYS_INTF_
13 #include "asm/cacheflush.h"
14 #include <linux/pinctrl/consumer.h>
15 #include <linux/clk-provider.h>
16 
17 /* cache flush flags */
18 #define  CACHE_FLUSH_I_CACHE_REGION       0
19 #define  CACHE_FLUSH_D_CACHE_REGION       1
20 #define  CACHE_FLUSH_CACHE_REGION         2
21 #define  CACHE_CLEAN_D_CACHE_REGION       3
22 #define  CACHE_CLEAN_FLUSH_D_CACHE_REGION 4
23 #define  CACHE_CLEAN_FLUSH_CACHE_REGION   5
24 
25 struct disp_gpio_info {
26 	unsigned gpio;
27 	char name[32];
28 	int value;
29 };
30 
31 #define DISP_IRQ_RETURN IRQ_HANDLED
32 #define DISP_PIN_STATE_ACTIVE "active"
33 #define DISP_PIN_STATE_SLEEP "sleep"
34 
35 void disp_sys_cache_flush(void *address, u32 length, u32 flags);
36 
37 int disp_sys_register_irq(u32 IrqNo, u32 Flags, void *Handler, void *pArg,
38 			  u32 DataSize, u32 Prio);
39 void disp_sys_unregister_irq(u32 IrqNo, void *Handler, void *pArg);
40 void disp_sys_disable_irq(u32 IrqNo);
41 void disp_sys_enable_irq(u32 IrqNo);
42 
43 /* returns: 0:invalid, 1: int; 2:str, 3: gpio */
44 int disp_sys_script_get_item(char *main_name, char *sub_name, int value[],
45 			     int count);
46 
47 int disp_sys_get_ic_ver(void);
48 
49 int disp_sys_gpio_request(struct disp_gpio_info *gpio_info);
50 void disp_sys_gpio_release(struct disp_gpio_info *gpio_info);
51 
52 /* direction: 0:input, 1:output */
53 int disp_sys_gpio_set_direction(u32 p_handler, u32 direction,
54 				const char *gpio_name);
55 int disp_sys_gpio_get_value(u32 p_handler, const char *gpio_name);
56 int disp_sys_gpio_set_value(u32 p_handler, u32 value_to_gpio,
57 			    const char *gpio_name);
58 int disp_sys_pin_set_state(char *dev_name, char *name);
59 
60 int disp_sys_power_enable(struct regulator *regulator);
61 int disp_sys_power_disable(struct regulator *regulator);
62 
63 void *disp_sys_malloc(u32 size);
64 
65 uintptr_t disp_sys_pwm_request(u32 pwm_id);
66 int disp_sys_pwm_free(uintptr_t p_handler);
67 int disp_sys_pwm_enable(uintptr_t p_handler);
68 int disp_sys_pwm_disable(uintptr_t p_handler);
69 int disp_sys_pwm_config(uintptr_t p_handler, int duty_ns, int period_ns);
70 int disp_sys_pwm_set_polarity(uintptr_t p_handler, int polarity);
71 
72 #endif
73