1.1 --- a/stage2/minipc_claa070vc01.c Tue Jul 11 18:45:08 2017 +0200
1.2 +++ b/stage2/minipc_claa070vc01.c Wed Jul 12 15:46:53 2017 +0200
1.3 @@ -1,5 +1,5 @@
1.4 /*
1.5 - * MiniPC screen details
1.6 + * MiniPC screen details and panel-specific functions.
1.7 *
1.8 * Copyright (C) 2005-2007, Ingenic Semiconductor Inc.
1.9 * Copyright (C) 2015, 2016, 2017 Paul Boddie <paul@boddie.org.uk>
1.10 @@ -20,9 +20,10 @@
1.11 * Boston, MA 02110-1301, USA
1.12 */
1.13
1.14 -#include "minipc_claa070vc01.h"
1.15 +#include "board.h"
1.16 #include "jzlcd.h"
1.17 #include "minipc.h"
1.18 +#include "gpio.h"
1.19
1.20 struct jzfb_info jzfb = {
1.21 MODE_TFT_GEN | PCLK_N | HSYNC_N | VSYNC_N,
1.22 @@ -33,3 +34,39 @@
1.23 .jz_fb=&jzfb, // this will need correcting for user mode usage
1.24 .lcd=0, // base address for registers
1.25 };
1.26 +
1.27 +void lcd_set_backlight_level(uint16_t n)
1.28 +{
1.29 + jz4740_gpio_as_pwm((void *) GPIO_BASE, 0);
1.30 + REG_PWM_DUT(0) = n;
1.31 + REG_PWM_PER(0) = 7;
1.32 + REG_PWM_CTR(0) = 0xc1;
1.33 +}
1.34 +
1.35 +void lcd_close_backlight()
1.36 +{
1.37 + void *gpio_port_base = jz4740_gpio_get_port((void *) GPIO_BASE, GPIO_PORT_PWM);
1.38 + jz4740_gpio_as_output(gpio_port_base, GPIO_PWM0);
1.39 + jz4740_gpio_clear_pin(gpio_port_base, GPIO_PWM0);
1.40 +}
1.41 +
1.42 +void lcd_display_pin_init()
1.43 +{
1.44 + void *gpio_port_base = jz4740_gpio_get_port((void *) GPIO_BASE, GPIO_PORT_LED);
1.45 + jz4740_gpio_as_output(gpio_port_base, GPIO_DISP_OFF_N);
1.46 + lcd_set_backlight_level(8);
1.47 +}
1.48 +
1.49 +void lcd_display_on()
1.50 +{
1.51 + void *gpio_port_base = jz4740_gpio_get_port((void *) GPIO_BASE, GPIO_PORT_LED);
1.52 + jz4740_gpio_set_pin(gpio_port_base, GPIO_DISP_OFF_N);
1.53 + lcd_set_backlight_level(8);
1.54 +}
1.55 +
1.56 +void lcd_display_off()
1.57 +{
1.58 + void *gpio_port_base = jz4740_gpio_get_port((void *) GPIO_BASE, GPIO_PORT_LED);
1.59 + lcd_close_backlight();
1.60 + jz4740_gpio_clear_pin(gpio_port_base, GPIO_DISP_OFF_N);
1.61 +}