1 /* SPDX-License-Identifier: GPL-2.0+ 2 * 3 * Copyright (C) 2016 Nexell Co., Ltd. 4 * 5 * Author: junghyun, kim <jhkim@nexell.co.kr> 6 */ 7 8 #ifndef _S5PXX18_SOC_LVDS_H_ 9 #define _S5PXX18_SOC_LVDS_H_ 10 11 /* 12 * refter to s5pxx18_soc_disptop.h 13 * 14 * #define NUMBER_OF_LVDS_MODULE 1 15 * #define PHY_BASEADDR_LVDS_MODULE 0xC010A000 16 */ 17 #define PHY_BASEADDR_LVDS_LIST \ 18 { PHY_BASEADDR_LVDS_MODULE } 19 20 struct nx_lvds_register_set { 21 u32 lvdsctrl0; 22 u32 lvdsctrl1; 23 u32 lvdsctrl2; 24 u32 lvdsctrl3; 25 u32 lvdsctrl4; 26 u32 _reserved0[3]; 27 u32 lvdsloc0; 28 u32 lvdsloc1; 29 u32 lvdsloc2; 30 u32 lvdsloc3; 31 u32 lvdsloc4; 32 u32 lvdsloc5; 33 u32 lvdsloc6; 34 u32 _reserved1; 35 u32 lvdslocmask0; 36 u32 lvdslocmask1; 37 u32 lvdslocpol0; 38 u32 lvdslocpol1; 39 u32 lvdstmode0; 40 u32 lvdstmode1; 41 u32 _reserved2[2]; 42 }; 43 44 int nx_lvds_initialize(void); 45 u32 nx_lvds_get_number_of_module(void); 46 u32 nx_lvds_get_size_of_register_set(void); 47 void nx_lvds_set_base_address(u32 module_index, void *base_address); 48 void *nx_lvds_get_base_address(u32 module_index); 49 u32 nx_lvds_get_physical_address(u32 module_index); 50 int nx_lvds_open_module(u32 module_index); 51 int nx_lvds_close_module(u32 module_index); 52 int nx_lvds_check_busy(u32 module_index); 53 54 void nx_lvds_set_lvdsctrl0(u32 module_index, u32 regvalue); 55 void nx_lvds_set_lvdsctrl1(u32 module_index, u32 regvalue); 56 void nx_lvds_set_lvdsctrl2(u32 module_index, u32 regvalue); 57 void nx_lvds_set_lvdsctrl3(u32 module_index, u32 regvalue); 58 void nx_lvds_set_lvdsctrl4(u32 module_index, u32 regvalue); 59 u32 nx_lvds_get_lvdsctrl0(u32 module_index); 60 u32 nx_lvds_get_lvdsctrl1(u32 module_index); 61 u32 nx_lvds_get_lvdsctrl2(u32 module_index); 62 u32 nx_lvds_get_lvdsctrl3(u32 module_index); 63 u32 nx_lvds_get_lvdsctrl4(u32 module_index); 64 65 void nx_lvds_set_lvdstmode0(u32 module_index, u32 regvalue); 66 void nx_lvds_set_lvdsloc0(u32 module_index, u32 regvalue); 67 void nx_lvds_set_lvdsloc1(u32 module_index, u32 regvalue); 68 void nx_lvds_set_lvdsloc2(u32 module_index, u32 regvalue); 69 void nx_lvds_set_lvdsloc3(u32 module_index, u32 regvalue); 70 void nx_lvds_set_lvdsloc4(u32 module_index, u32 regvalue); 71 void nx_lvds_set_lvdsloc5(u32 module_index, u32 regvalue); 72 void nx_lvds_set_lvdsloc6(u32 module_index, u32 regvalue); 73 void nx_lvds_set_lvdslocmask0(u32 module_index, u32 regvalue); 74 void nx_lvds_set_lvdslocmask1(u32 module_index, u32 regvalue); 75 void nx_lvds_set_lvdslocpol0(u32 module_index, u32 regvalue); 76 void nx_lvds_set_lvdslocpol1(u32 module_index, u32 regvalue); 77 78 void nx_lvds_set_lvdslocpol1(u32 module_index, u32 regvalue); 79 80 void nx_lvds_set_lvdsdummy(u32 module_index, u32 regvalue); 81 u32 nx_lvds_get_lvdsdummy(u32 module_index); 82 83 #endif 84