new driver for Ahanix D.Vine 5 IR/VFD
Subsystems (3)
Sean Young
maintainercover new driver for Ahanix D.Vine 5 IR/VFD
This is a newer driver for this device. It originally supported by the lirc_sasem.c staging driver, which was removed in kernel v4.12.
Here a some more information about the hardware and my attempts to understand it:
http://www.mess.org/2018/01/17/Ahanix-D-Vine-5-IR-VFD-module/
Sean Young (5):
auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing
changes
auxdisplay: charlcd: add flush function
auxdisplay: charlcd: add escape sequence for brightness on NEC
µPD16314
media: rc: add keymap for Dign Remote
media: rc: new driver for Sasem Remote Controller VFD/IR
MAINTAINERS | 6 + drivers/auxdisplay/charlcd.c | 33 ++++- drivers/media/rc/Kconfig | 16 ++ drivers/media/rc/Makefile | 1 + drivers/media/rc/keymaps/Makefile | 1 + drivers/media/rc/keymaps/rc-dign.c | 70 +++++++++ drivers/media/rc/sasem_ir.c | 297 +++++++++++++++++++++++++++++++++++++ include/media/rc-map.h | 1 + include/misc/charlcd.h | 1 + 9 files changed, 421 insertions(+), 5 deletions(-) create mode 100644 drivers/media/rc/keymaps/rc-dign.c create mode 100644 drivers/media/rc/sasem_ir.c
Signature · 1 line
2.14.3
Sean Young
maintainerPATCH 1/5 auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes
If the line extends beyond the width to the screen, nothing changes. The existing code will call charlcd_gotoxy every time for this case.
--- drivers/auxdisplay/charlcd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/auxdisplay/charlcd.c +4 -3
@@ -192,10 +192,11 @@ static void charlcd_print(struct charlcd *lcd, char c) c = lcd->char_conv[(unsigned char )c]; lcd->ops->write_data (lcd, c); priv->addr.x++; + +/* prevents the cursor from wrapping onto the next line */ +if (priv->addr.x == lcd->bwidth) +charlcd_gotoxy (lcd); } -/* prevents the cursor from wrapping onto the next line */ -if (priv->addr.x == lcd->bwidth) -charlcd_gotoxy (lcd); }static void charlcd_clear_fast (struct charlcd *lcd)
Signature · 1 line
2.14.3
Re: [PATCH 1/5] auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes
Quoted 16 lines · Sean Young
If the line extends beyond the width to the screen, nothing changes. The existing code will call
charlcd_gotoxyevery time for this case.Signed-off-by Sean Young <[email protected]>--- drivers/auxdisplay/charlcd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)drivers/auxdisplay/charlcd.c +0
-0@@ -192,10 +192,11 @@ static void charlcd_print(struct charlcd *lcd, char c) c = lcd->char_conv[(unsigned char )c]; lcd->ops->write_data (lcd, c); priv->addr.x++;
drivers/auxdisplay/charlcd.c static void charlcd_print(struct charlcd *lcd, char c) · line 201
Quoted 10 lines
drivers/auxdisplay/charlcd.c +4
-3+ +/* prevents the cursor from wrapping onto the next line */ +if (priv->addr.x == lcd->bwidth) +charlcd_gotoxy (lcd); } -/* prevents the cursor from wrapping onto the next line */ -if (priv->addr.x == lcd->bwidth) -charlcd_gotoxy (lcd); }
Willy, Geert: is this fine with you? Seems fine: charlcd_write_char() right now does an unconditional write_cmd() when writing a normal character; so unless some HW requires the command for some reason even if there is nothing changed, we can skip it.
Quoted 4 lines
drivers/auxdisplay/charlcd.c +0
-1static void charlcd_clear_fast (struct charlcd *lcd) --2.14.3
Re: [PATCH 1/5] auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes
Quoted 24 lines · Miguel Ojeda
Quoted 23 lines · Sean Young
If the line extends beyond the width to the screen, nothing changes. The existing code will call
charlcd_gotoxyevery time for this case.Signed-off-by Sean Young <[email protected]>--- drivers/auxdisplay/charlcd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)drivers/auxdisplay/charlcd.c +4
-2@@ -192,10 +192,11 @@ static void charlcd_print(struct charlcd *lcd, char c) c = lcd->char_conv[(unsigned char )c]; lcd->ops->write_data (lcd, c); priv->addr.x++; + +/* prevents the cursor from wrapping onto the next line */ +if (priv->addr.x == lcd->bwidth) +charlcd_gotoxy (lcd); } -/* prevents the cursor from wrapping onto the next line */ -if (priv->addr.x == lcd->bwidth)
Quoted 8 lines
drivers/auxdisplay/charlcd.c static void charlcd_print(struct charlcd *lcd, char c) · line 201
Quoted 3 lines
drivers/auxdisplay/charlcd.c +0
-1-charlcd_gotoxy (lcd); }Willy, Geert: is this fine with you? Seems fine:
charlcd_write_char()right now does an unconditionalwrite_cmd()when writing a normal character; so unless some HW requires the command for some reason even if there is nothing changed, we can skip it.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Re: [PATCH 1/5] auxdisplay: charlcd: no need to call charlcd_gotoxy() if nothing changes
Quoted 35 lines · Geert Uytterhoeven
Quoted 24 lines · Miguel Ojeda
Quoted 23 lines · Sean Young
If the line extends beyond the width to the screen, nothing changes. The existing code will call
charlcd_gotoxyevery time for this case.Signed-off-by Sean Young <[email protected]>--- drivers/auxdisplay/charlcd.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)drivers/auxdisplay/charlcd.c +4
-2@@ -192,10 +192,11 @@ static void charlcd_print(struct charlcd *lcd, char c) c = lcd->char_conv[(unsigned char )c]; lcd->ops->write_data (lcd, c); priv->addr.x++; + +/* prevents the cursor from wrapping onto the next line */ +if (priv->addr.x == lcd->bwidth) +charlcd_gotoxy (lcd); } -/* prevents the cursor from wrapping onto the next line */ -if (priv->addr.x == lcd->bwidth)Quoted 8 lines
drivers/auxdisplay/charlcd.c static void charlcd_print(struct charlcd *lcd, char c) · line 201
Quoted 3 lines
drivers/auxdisplay/charlcd.c +0
-1-charlcd_gotoxy (lcd); }Willy, Geert: is this fine with you? Seems fine:
charlcd_write_char()right now does an unconditionalwrite_cmd()when writing a normal character; so unless some HW requires the command for some reason even if there is nothing changed, we can skip it.
Quoted 2 lines
Reviewed-by Geert Uytterhoeven <[email protected]>
Thanks a lot, picking it up then.
Miguel
Quoted 10 lines
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Sean Young
maintainerPATCH 2/5 auxdisplay: charlcd: add flush function
In reply to Sean YoungThe Sasem Remote Controller has an LCD, which is connnected via usb. Multiple write reg or write data commands can be combined into one usb packet.
The latency of usb is such that if we send commands one by one, we get very obvious tearing on the LCD.
By adding a flush function, we can buffer all commands until either the usb packet is full or the lcd changes are complete.
--- drivers/auxdisplay/charlcd.c | 6 ++++++ include/misc/charlcd.h | 1 + 2 files changed, 7 insertions(+)
drivers/auxdisplay/charlcd.c +6 -0
@@ -642,6 +642,9 @@ static ssize_t charlcd_write(struct file *file, const char __user *buf,charlcd_write_char (the_charlcd, c); } +if (the_charlcd->ops->flush) + the_charlcd->ops->flush (the_charlcd); +return tmp - buf; }
@@ -703,6 +706,9 @@ static void charlcd_puts(struct charlcd *lcd, const char *s)charlcd_write_char (lcd, *tmp); } + +if (lcd->ops->flush) + lcd->ops->flush (lcd); }/* initialize the LCD driver */
include/misc/charlcd.h +1 -0
@@ -32,6 +32,7 @@ struct charlcd_ops {void (*write_cmd_raw4)(struct charlcd *lcd,int cmd);/* 4-bit only */ void (*clear_fast)(struct charlcd *lcd);void (*backlight)(struct charlcd *lcd,int on); +void (*flush)(struct charlcd *lcd); };struct charlcd *charlcd_alloc (unsigned int drvdata_size);
Signature · 1 line
2.14.3
Re: [PATCH 2/5] auxdisplay: charlcd: add flush function
Quoted 7 lines · Sean Young
The Sasem Remote Controller has an LCD, which is connnected via usb. Multiple write reg or write data commands can be combined into one usb packet.
The latency of usb is such that if we send commands one by one, we get very obvious tearing on the LCD.
Quoted 6 lines
By adding a flush function, we can buffer all commands until either the usb packet is full or the lcd changes are complete.
Signed-off-by Sean Young <[email protected]>--- drivers/auxdisplay/charlcd.c | 6 ++++++
Cc'ing Arnd and Greg since this touches include/misc as well.
Miguel
Quoted 42 lines
include/misc/charlcd.h | 1 + 2 files changed, 7 insertions(+)drivers/auxdisplay/charlcd.c +6
-0@@ -642,6 +642,9 @@ static ssize_t charlcd_write(struct file *file, const char __user *buf,charlcd_write_char (the_charlcd, c); } +if (the_charlcd->ops->flush) + the_charlcd->ops->flush (the_charlcd); +return tmp - buf; }@@ -703,6 +706,9 @@ static void charlcd_puts(struct charlcd *lcd, const char *s)charlcd_write_char (lcd, *tmp); } + +if (lcd->ops->flush) + lcd->ops->flush (lcd); }/* initialize the LCD driver */ include/misc/charlcd.h +1
-1@@ -32,6 +32,7 @@ struct charlcd_ops {void (*write_cmd_raw4)(struct charlcd *lcd,int cmd);/* 4-bit only */ void (*clear_fast)(struct charlcd *lcd);void (*backlight)(struct charlcd *lcd,int on); +void (*flush)(struct charlcd *lcd); };struct charlcd *charlcd_alloc (unsigned int drvdata_size); --2.14.3
Re: [PATCH 2/5] auxdisplay: charlcd: add flush function
Quoted 8 lines · Miguel Ojeda
Quoted 7 lines · Sean Young
The Sasem Remote Controller has an LCD, which is connnected via usb. Multiple write reg or write data commands can be combined into one usb packet.
The latency of usb is such that if we send commands one by one, we get very obvious tearing on the LCD.
Quoted 7 lines
Quoted 2 lines
By adding a flush function, we can buffer all commands until either the usb packet is full or the lcd changes are complete.
Cc'ing Arnd and Greg since this touches
include/miscas well.include/misc/charlcd.h
Quoted 2 lines
include/misc/charlcd.h +0
-0
As far as I can see better to create a subfolder under include for auxdisplay stuff.
Currently we have three candidates here:linux/cfag12864b.hlinux/ks0108.hmisc/charlcd.h
Another possibility to get rid of them under include/ by (re)moving to drivers/auxdisplay/.
Signature · 2 lines
With Best Regards, Andy Shevchenko
Sean Young
maintainerPATCH 3/5 auxdisplay: charlcd: add escape sequence for brightness on NEC µPD16314
In reply to Sean YoungThe NEC µPD16314 can alter the the brightness of the LCD. Make it possible to set this via escape sequence Y0 - Y3. B and R were already taken, so I picked Y for luminance.
--- drivers/auxdisplay/charlcd.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
drivers/auxdisplay/charlcd.c +18 -2
@@ -39,6 +39,8 @@#define LCD_FLAG_F 0x0020/* Large font mode */ #define LCD_FLAG_N 0x0040/* 2-rows mode */ #define LCD_FLAG_L 0x0080/* Backlight enabled */ +#define LCD_BRIGHTNESS_MASK 0x0300/* Brightness */ +#define LCD_BRIGHTNESS_SHIFT 8/* LCD commands */ #define LCD_CMD_DISPLAY_CLEAR 0x01/* Clear entire display */
@@ -490,6 +492,17 @@ static inline int handle_lcd_special_code(struct charlcd *lcd)charlcd_gotoxy (lcd); processed =1 ;break ; +case 'Y' :/* brightness (luma) */ +switch (esc[1 ]) { +case '0' :/* 25% */ +case '1' :/* 50% */ +case '2' :/* 75% */ +case '3' :/* 100% */ + priv->flags = (priv->flags & ~(LCD_BRIGHTNESS_MASK )) | + (('3' - esc[1 ]) <<LCD_BRIGHTNESS_SHIFT ); + processed =1 ; +break ; + } }/* TODO: This indent party here got ugly, clean it! */
@@ -507,12 +520,15 @@ static inline int handle_lcd_special_code(struct charlcd *lcd) ((priv->flags &LCD_FLAG_C ) ?LCD_CMD_CURSOR_ON :0 ) | ((priv->flags & LCD_FLAG_B) ? LCD_CMD_BLINK_ON : 0));/* check whether one of F,N flags was changed */ - else if ((oldflags ^ priv->flags) & (LCD_FLAG_F | LCD_FLAG_N)) + else if ((oldflags ^ priv->flags) & (LCD_FLAG_F | LCD_FLAG_N | + LCD_BRIGHTNESS_MASK)) lcd->ops->write_cmd(lcd,LCD_CMD_FUNCTION_SET | ((lcd->ifwidth ==8 ) ?LCD_CMD_DATA_LEN_8BITS :0 ) | ((priv->flags &LCD_FLAG_F ) ?LCD_CMD_FONT_5X10_DOTS :0 ) | - ((priv->flags &LCD_FLAG_N ) ?LCD_CMD_TWO_LINES :0 )); + ((priv->flags &LCD_FLAG_N ) ?LCD_CMD_TWO_LINES :0 ) | + ((priv->flags &LCD_BRIGHTNESS_MASK ) >> +LCD_BRIGHTNESS_SHIFT ));/* check whether L flag was changed */ else if ((oldflags ^ priv->flags) & LCD_FLAG_L) charlcd_backlight(lcd, !!(priv->flags & LCD_FLAG_L));
Signature · 1 line
2.14.3
Re: [PATCH 3/5] auxdisplay: charlcd: add escape sequence for brightness on NEC µPD16314
Quoted 5 lines · Sean Young
The NEC µPD16314 can alter the the brightness of the LCD. Make it possible to set this via escape sequence Y0 - Y3. B and R were already taken, so I picked Y for luminance.
Signed-off-by Sean Young <[email protected]>
CC'ing Willy and Geert.
Quoted 9 lines
--- drivers/auxdisplay/charlcd.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)drivers/auxdisplay/charlcd.c +0
-0
drivers/auxdisplay/charlcd.c line 43
Quoted 5 lines
drivers/auxdisplay/charlcd.c +2
-0@@ -39,6 +39,8 @@#define LCD_FLAG_F 0x0020/* Large font mode */ #define LCD_FLAG_N 0x0040/* 2-rows mode */ #define LCD_FLAG_L 0x0080/* Backlight enabled */ +#define LCD_BRIGHTNESS_MASK 0x0300/* Brightness */ +#define LCD_BRIGHTNESS_SHIFT 8
Not sure about the name (since the brightness is also used in priv->flags). By the way, should we start using the bitops.h stuff (e.g. BIT(9) | BIT(8), GENMASK(9, 8)...) in new code? Not sure how widespread they are.
Quoted 22 lines
drivers/auxdisplay/charlcd.c +11
-0/* LCD commands */ #define LCD_CMD_DISPLAY_CLEAR 0x01/* Clear entire display */ @@ -490,6 +492,17 @@ static inline int handle_lcd_special_code(struct charlcd *lcd)charlcd_gotoxy (lcd); processed =1 ;break ; +case 'Y' :/* brightness (luma) */ +switch (esc[1 ]) { +case '0' :/* 25% */ +case '1' :/* 50% */ +case '2' :/* 75% */ +case '3' :/* 100% */ + priv->flags = (priv->flags & ~(LCD_BRIGHTNESS_MASK )) | + (('3' - esc[1 ]) <<LCD_BRIGHTNESS_SHIFT ); + processed =1 ; +break ; + } }/* TODO: This indent party here got ugly, clean it! */
drivers/auxdisplay/charlcd.c static inline int handle_lcd_special_code(struct charlcd *lcd) · line 522
Quoted 3 lines
drivers/auxdisplay/charlcd.c +0
-0@@ -507,12 +520,15 @@ static inline int handle_lcd_special_code(struct charlcd *lcd) ((priv->flags &LCD_FLAG_C ) ?LCD_CMD_CURSOR_ON :0 ) | ((priv->flags & LCD_FLAG_B) ? LCD_CMD_BLINK_ON : 0));/* check whether one of F,N flags was changed */
Should we add "or brightness" to the comment?
Quoted 17 lines
drivers/auxdisplay/charlcd.c +5
-3-else if ((oldflags ^ priv->flags) & (LCD_FLAG_F |LCD_FLAG_N )) +else if ((oldflags ^ priv->flags) & (LCD_FLAG_F |LCD_FLAG_N | +LCD_BRIGHTNESS_MASK )) lcd->ops->write_cmd (lcd,LCD_CMD_FUNCTION_SET | ((lcd->ifwidth ==8 ) ?LCD_CMD_DATA_LEN_8BITS :0 ) | ((priv->flags &LCD_FLAG_F ) ?LCD_CMD_FONT_5X10_DOTS :0 ) | - ((priv->flags &LCD_FLAG_N ) ?LCD_CMD_TWO_LINES :0 )); + ((priv->flags &LCD_FLAG_N ) ?LCD_CMD_TWO_LINES :0 ) | + ((priv->flags &LCD_BRIGHTNESS_MASK ) >> +LCD_BRIGHTNESS_SHIFT ));/* check whether L flag was changed */ else if ((oldflags ^ priv->flags) &LCD_FLAG_L )charlcd_backlight (lcd, !!(priv->flags &LCD_FLAG_L )); --2.14.3
Sean Young
maintainerRe: [PATCH 3/5] auxdisplay: charlcd: add escape sequence for brightness on NEC µPD16314
Quoted 13 lines · Miguel Ojeda
Quoted 5 lines · Sean Young
The NEC µPD16314 can alter the the brightness of the LCD. Make it possible to set this via escape sequence Y0 - Y3. B and R were already taken, so I picked Y for luminance.
Signed-off-by Sean Young <[email protected]>CC'ing Willy and Geert.
Quoted 4 lines
--- drivers/auxdisplay/charlcd.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
Quoted 15 lines
drivers/auxdisplay/charlcd.c line 43
Quoted 10 lines
drivers/auxdisplay/charlcd.c +2
-0@@ -39,6 +39,8 @@#define LCD_FLAG_F 0x0020/* Large font mode */ #define LCD_FLAG_N 0x0040/* 2-rows mode */ #define LCD_FLAG_L 0x0080/* Backlight enabled */ +#define LCD_BRIGHTNESS_MASK 0x0300/* Brightness */ +#define LCD_BRIGHTNESS_SHIFT 8Not sure about the name (since the brightness is also used in
priv->flags). By the way, should we start using thebitops.hstuff (e.g. BIT(9) | BIT(8),GENMASK(9, 8)...) in new code? Not sure how widespread they are.
The brightness is not really a flag, maybe it belongs in a separate field; we could use bit fields in order to waste less space.
BIT() would be nicer and is more idiomatic by current standards.
Note that x, y and flags are currently unsigned long, they could be u8.
Quoted 21 lines
Quoted 21 lines
drivers/auxdisplay/charlcd.c +11
-0/* LCD commands */ #define LCD_CMD_DISPLAY_CLEAR 0x01/* Clear entire display */ @@ -490,6 +492,17 @@ static inline int handle_lcd_special_code(struct charlcd *lcd)charlcd_gotoxy (lcd); processed =1 ;break ; +case 'Y' :/* brightness (luma) */ +switch (esc[1 ]) { +case '0' :/* 25% */ +case '1' :/* 50% */ +case '2' :/* 75% */ +case '3' :/* 100% */ + priv->flags = (priv->flags & ~(LCD_BRIGHTNESS_MASK )) | + (('3' - esc[1 ]) <<LCD_BRIGHTNESS_SHIFT ); + processed =1 ; +break ; + } }
Quoted 7 lines
drivers/auxdisplay/charlcd.c static inline int handle_lcd_special_code(struct charlcd *lcd) · line 522
Quoted 5 lines
drivers/auxdisplay/charlcd.c +0
-0/* TODO: This indent party here got ugly, clean it! */ @@ -507,12 +520,15 @@ static inline int handle_lcd_special_code(struct charlcd *lcd) ((priv->flags &LCD_FLAG_C ) ?LCD_CMD_CURSOR_ON :0 ) | ((priv->flags & LCD_FLAG_B) ? LCD_CMD_BLINK_ON : 0));/* check whether one of F,N flags was changed */ Should we add "or brightness" to the comment?
Indeed we should.
Quoted 10 lines
Quoted 10 lines
drivers/auxdisplay/charlcd.c +3
-2-else if ((oldflags ^ priv->flags) & (LCD_FLAG_F |LCD_FLAG_N )) +else if ((oldflags ^ priv->flags) & (LCD_FLAG_F |LCD_FLAG_N | +LCD_BRIGHTNESS_MASK )) lcd->ops->write_cmd(lcd, LCD_CMD_FUNCTION_SET | ((lcd->ifwidth == 8) ? LCD_CMD_DATA_LEN_8BITS : 0) | ((priv->flags & LCD_FLAG_F) ? LCD_CMD_FONT_5X10_DOTS : 0) | - ((priv->flags &LCD_FLAG_N ) ?LCD_CMD_TWO_LINES :0 )); + ((priv->flags & LCD_FLAG_N) ? LCD_CMD_TWO_LINES : 0) |
Quoted 8 lines
Quoted 8 lines
drivers/auxdisplay/charlcd.c +2
-1+ ((priv->flags &LCD_BRIGHTNESS_MASK ) >> + LCD_BRIGHTNESS_SHIFT));/* check whether L flag was changed */ else if ((oldflags ^ priv->flags) & LCD_FLAG_L) charlcd_backlight(lcd, !!(priv->flags & LCD_FLAG_L)); --2.14.3
I've discovered an issue in my sasem driver, I'll send out a new version of these patch series once that is resolved.
Thanks,
Sean
Sean Young
maintainerPATCH 4/5 media: rc: add keymap for Dign Remote
In reply to Sean YoungThis is the remote which comes with the Ahanix D.Vine 5 HTPC case.
--- drivers/media/rc/keymaps/Makefile | 1 + drivers/media/rc/keymaps/rc-dign.c | 70 ++++++++++++++++++++++++++++++++++++++ include/media/rc-map.h | 1 + 3 files changed, 72 insertions(+) create mode 100644 drivers/media/rc/keymaps/rc-dign.c
drivers/media/rc/keymaps/Makefile +1 -0
@@ -29,6 +29,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ rc-dib0700-rc5.o \ rc-digitalnow-tinytwin.o \ rc-digittrade.o \ + rc-dign.o \ rc-dm1105-nec.o \ rc-dntv-live-dvb-t.o \ rc-dntv-live-dvbt-pro.o \
drivers/media/rc/keymaps/rc-dign.c new file +70 -0
70 lines not on this page · raw message
include/media/rc-map.h +1 -0
@@ -185,6 +185,7 @@ struct rc_map *rc_map_get(const char *name);#define RC_MAP_DIB0700_RC5_TABLE "rc-dib0700-rc5"#define RC_MAP_DIGITALNOW_TINYTWIN "rc-digitalnow-tinytwin"#define RC_MAP_DIGITTRADE "rc-digittrade" +#define RC_MAP_DIGN "rc-dign"#define RC_MAP_DM1105_NEC "rc-dm1105-nec"#define RC_MAP_DNTV_LIVE_DVBT_PRO "rc-dntv-live-dvbt-pro"#define RC_MAP_DNTV_LIVE_DVB_T "rc-dntv-live-dvb-t"
Signature · 1 line
2.14.3
Sean Young
maintainerPATCH 5/5 media: rc: new driver for Sasem Remote Controller VFD/IR
In reply to Sean YoungThis device is built into the Ahanix D.Vine 5 HTPC case. It has an LCD device, and an IR receiver.
The LCD can be controlled via the charlcd driver. Unfortunately the device does not seem to provide a method for accessing the character generator ram.
--- MAINTAINERS | 6 + drivers/media/rc/Kconfig | 16 +++ drivers/media/rc/Makefile | 1 + drivers/media/rc/sasem_ir.c | 297 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 320 insertions(+) create mode 100644 drivers/media/rc/sasem_ir.c
MAINTAINERS +6 -0
@@ -12066,6 +12066,12 @@ F: drivers/phy/samsung/phy-s5pv210-usb2.c F: drivers/phy/samsung/phy-samsung-usb2.c F: drivers/phy/samsung/phy-samsung-usb2.h +SASEM REMOTE CONTROLLER +M: Sean Young <[email protected]> +L: [email protected] +S: Maintained +F: drivers/media/rc/sasem_ir.c + SC1200 WDT DRIVER M: Zwane Mwaikambo <[email protected]> S: Maintained
drivers/media/rc/Kconfig +16 -0
@@ -457,6 +457,22 @@ config IR_SERIAL To compile this driver as a module, choose M here: the module will be called serial-ir. +config IR_SASEM + tristate "Sasem Remote Controller" + depends on USB_ARCH_HAS_HCD + depends on RC_CORE + select USB + select CHARLCD + ---help--- + Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module + + The LCD can be controlled via the charlcd driver. Unfortunately the + device does not seem to provide a method for accessing the + character generator ram. + + To compile this driver as a module, choose M here: the module will + be called sesam_ir. + config IR_SERIAL_TRANSMITTER bool "Serial Port Transmitter" default y
drivers/media/rc/Makefile +1 -0
@@ -41,6 +41,7 @@ obj-$(CONFIG_IR_TTUSBIR) += ttusbir.o obj-$(CONFIG_RC_ST) += st_rc.o obj-$(CONFIG_IR_SUNXI) += sunxi-cir.o obj-$(CONFIG_IR_IMG) += img-ir/ +obj-$(CONFIG_IR_SASEM) += sasem_ir.o obj-$(CONFIG_IR_SERIAL) += serial_ir.o obj-$(CONFIG_IR_SIR) += sir_ir.o obj-$(CONFIG_IR_MTK) += mtk-cir.o
drivers/media/rc/sasem_ir.c new file +297 -0
297 lines not on this page · raw message
Signature · 1 line
2.14.3