# HG changeset patch # User Paul Boddie # Date 1456160487 -3600 # Node ID ccf05eea0d54b100e979284a6f1337136e1e2c9d # Parent ff38ea1d8e699c7217d7110af189db4bd79ff44c Converted various multi-line macros into inline functions. Added some missing definitions to the MiniPC/Letux/Trendtac files. diff -r ff38ea1d8e69 -r ccf05eea0d54 include/minipc.h --- a/include/minipc.h Mon Feb 22 17:07:55 2016 +0100 +++ b/include/minipc.h Mon Feb 22 18:01:27 2016 +0100 @@ -27,5 +27,7 @@ */ #define GPIO_LED_EN 92 #define GPIO_DISP_OFF_N 93 +#define GPIO_PWM0 94 +#define GPIO_POWER 97 #endif /* __MINIPC_H__ */ diff -r ff38ea1d8e69 -r ccf05eea0d54 stage2/board.h --- a/stage2/board.h Mon Feb 22 17:07:55 2016 +0100 +++ b/stage2/board.h Mon Feb 22 18:01:27 2016 +0100 @@ -12,6 +12,7 @@ #ifdef CONFIG_CPU_JZ4730 #include "jz4730.h" +#include "jz4730_compat.h" #define READ_TIMER __ost_get_count(TIMER_CHAN) /* macro to read the 32 bit timer */ #define TIMER_CHAN_IRQ IRQ_OST0 #else diff -r ff38ea1d8e69 -r ccf05eea0d54 stage2/minipc_claa070vc01.h --- a/stage2/minipc_claa070vc01.h Mon Feb 22 17:07:55 2016 +0100 +++ b/stage2/minipc_claa070vc01.h Mon Feb 22 18:01:27 2016 +0100 @@ -2,7 +2,7 @@ * MiniPC panel-specific definitions * * Copyright (C) Xiangfu Liu - * Copyright (C) 2015 Paul Boddie + * Copyright (C) 2015, 2016 Paul Boddie * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -23,36 +23,39 @@ #ifndef __MINIPC_CLAA070VC01_H__ #define __MINIPC_CLAA070VC01_H__ -#define __lcd_set_backlight_level(n) \ -do { \ - __gpio_as_pwm(); \ - REG_PWM_DUT(0) = n; \ - REG_PWM_PER(0) = 7; \ - REG_PWM_CTR(0) = 0xc1; \ -} while (0) +#include "board.h" +#include "minipc.h" -#define __lcd_close_backlight() \ -do { \ -__gpio_as_output(GPIO_PWM0);\ -__gpio_clear_pin(GPIO_PWM0);\ -} while (0) +static inline void __lcd_set_backlight_level(u16 n) +{ + __gpio_as_pwm(); + REG_PWM_DUT(0) = n; + REG_PWM_PER(0) = 7; + REG_PWM_CTR(0) = 0xc1; +} + +static inline void __lcd_close_backlight() +{ + __gpio_as_output(GPIO_PWM0); + __gpio_clear_pin(GPIO_PWM0); +} -#define __lcd_display_pin_init() \ -do { \ - __gpio_as_output(GPIO_DISP_OFF_N); \ - __lcd_set_backlight_level(8); \ -} while (0) +static inline void __lcd_display_pin_init() +{ + __gpio_as_output(GPIO_DISP_OFF_N); + __lcd_set_backlight_level(8); +} -#define __lcd_display_on() \ -do { \ - __gpio_set_pin(GPIO_DISP_OFF_N); \ - __lcd_set_backlight_level(8); \ -} while (0) +static inline void __lcd_display_on() +{ + __gpio_set_pin(GPIO_DISP_OFF_N); + __lcd_set_backlight_level(8); +} -#define __lcd_display_off() \ -do { \ - __lcd_close_backlight(); \ - __gpio_clear_pin(GPIO_DISP_OFF_N); \ -} while (0) +static inline void __lcd_display_off() +{ + __lcd_close_backlight(); + __gpio_clear_pin(GPIO_DISP_OFF_N); +} #endif /* __MINIPC_CLAA070VC01_H__ */ diff -r ff38ea1d8e69 -r ccf05eea0d54 stage2/nanonote_gpm940b0.h --- a/stage2/nanonote_gpm940b0.h Mon Feb 22 17:07:55 2016 +0100 +++ b/stage2/nanonote_gpm940b0.h Mon Feb 22 18:01:27 2016 +0100 @@ -2,7 +2,7 @@ * Ben NanoNote panel-specific definitions * * Copyright (C) Xiangfu Liu - * Copyright (C) 2015 Paul Boddie + * Copyright (C) 2015, 2016 Paul Boddie * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -23,50 +23,56 @@ #ifndef __NANONOTE_GPM940B0_H__ #define __NANONOTE_GPM940B0_H__ -#define __spi_write_reg1(reg, val) \ -do { \ - unsigned char no; \ - unsigned short value; \ - unsigned char a=reg; \ - unsigned char b=val; \ - __gpio_set_pin(SPEN); \ - __gpio_set_pin(SPCK); \ - __gpio_clear_pin(SPDA); \ - __gpio_clear_pin(SPEN); \ - value=((a<<8)|(b&0xFF)); \ - for(no=0;no<16;no++) \ - { \ - __gpio_clear_pin(SPCK); \ - if((value&0x8000)==0x8000) \ - __gpio_set_pin(SPDA); \ - else \ - __gpio_clear_pin(SPDA); \ - __gpio_set_pin(SPCK); \ - value=(value<<1); \ - } \ - __gpio_set_pin(SPEN); \ -} while (0) +#include "board.h" +#include "nanonote.h" + +static inline void __spi_write_reg1(u8 reg, u8 val) +{ + u8 no, a=reg, b=val; + u16 value; + + __gpio_set_pin(SPEN); + __gpio_set_pin(SPCK); + __gpio_clear_pin(SPDA); + __gpio_clear_pin(SPEN); + + value = ((a << 8) | (b & 0xFF)); + + for (no=0; no<16; no++) + { + __gpio_clear_pin(SPCK); + + if ((value & 0x8000) == 0x8000) + __gpio_set_pin(SPDA); + else + __gpio_clear_pin(SPDA); -#define __lcd_display_pin_init() \ -do { \ - __cpm_start_tcu(); \ - __gpio_as_output(SPEN); \ - __gpio_as_output(SPCK); \ - __gpio_as_output(SPDA); \ -} while (0) + __gpio_set_pin(SPCK); + value = (value << 1); + } + __gpio_set_pin(SPEN); +} + +static inline void __lcd_display_pin_init() +{ + __cpm_start_tcu(); + __gpio_as_output(SPEN); + __gpio_as_output(SPCK); + __gpio_as_output(SPDA); +} -#define __lcd_display_on() \ -do { \ - __spi_write_reg1(0x05, 0x1e); \ - __spi_write_reg1(0x05, 0x5e); \ - __spi_write_reg1(0x07, 0x8d); \ - __spi_write_reg1(0x13, 0x01); \ - __spi_write_reg1(0x05, 0x5f); \ -} while (0) +static inline void __lcd_display_on() +{ + __spi_write_reg1(0x05, 0x1e); + __spi_write_reg1(0x05, 0x5e); + __spi_write_reg1(0x07, 0x8d); + __spi_write_reg1(0x13, 0x01); + __spi_write_reg1(0x05, 0x5f); +} -#define __lcd_display_off() \ -do { \ - __spi_write_reg1(0x05, 0x5e); \ -} while (0) +static inline void __lcd_display_off() +{ + __spi_write_reg1(0x05, 0x5e); +} #endif /* __NANONOTE_GPM940B0_H__ */