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