Skip to contentSkip to conversation

auxdisplay: Introduce driver for ht16k33 LED controller

PATCH In review Robin van der Gracht 2 participants 7 messages Mar 16, 2016 – Mar 21, 2016

Subsystems (5)
lore
Share & tools
lore

Robin van der Gracht

author maintainer
#0 lore raw

cover auxdisplay: Introduce driver for ht16k33 LED controller

This patch series adds a driver for the ht16k33 LED controller and a new vendor prefix for Holtek Semiconductor Inc.

Robin van der Gracht (2):
of: add vendor prefix for Holtek Semiconductor
auxdisplay: ht16k33: Driver for LED controller

 .../devicetree/bindings/display/ht16k33.txt        |  42 ++
 .../devicetree/bindings/vendor-prefixes.txt        |   1 +
 drivers/auxdisplay/Kconfig                         |   9 +
 drivers/auxdisplay/Makefile                        |   1 +
 drivers/auxdisplay/ht16k33.c                       | 563 +++++++++++++++++++++
 5 files changed, 616 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ht16k33.txt
 create mode 100644 drivers/auxdisplay/ht16k33.c
Signature · 6 lines
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author maintainer
#1 lore raw

PATCH 1/2 of: add vendor prefix for Holtek Semiconductor

This patch introduces a vendor prefix for Holtek Semiconductor Inc.

---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
index dd72e05..fa70359d 100644
@@ -108,6 +108,7 @@ hitex	Hitex Development Tools
 holt	Holt Integrated Circuits, Inc.
 honeywell	Honeywell
 hp	Hewlett Packard
+ht	Holtek Semiconductor Inc.
 i2se	I2SE GmbH
 ibm	International Business Machines (IBM)
 idt	Integrated Device Technologies, Inc.
Signature · 1 line
2.5.0
maintainer
#2 lore raw

Re: [PATCH 1/2] of: add vendor prefix for Holtek Semiconductor

Quoted 12 lines · Robin van der Gracht

This patch introduces a vendor prefix for Holtek Semiconductor Inc.

---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/vendor-prefixes.txt +0 -0
index dd72e05..fa70359d 100644

Documentation/devicetree/bindings/vendor-prefixes.txt hitex Hitex Development Tools · line 111

Quoted 4 lines
Documentation/devicetree/bindings/vendor-prefixes.txt +1 -0
@@ -108,6 +108,7 @@ hitex	Hitex Development Tools
 holt	Holt Integrated Circuits, Inc.
 honeywell	Honeywell
 hp	Hewlett Packard
+ht	Holtek Semiconductor Inc.

I think holtek being a bit longer would be better here.

Quoted 10 lines
Documentation/devicetree/bindings/vendor-prefixes.txt +0 -0
 i2se	I2SE GmbH
 ibm	International Business Machines (IBM)
 idt	Integrated Device Technologies, Inc.
Signature · 6 lines
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author maintainer
#3 lore raw

Re: [PATCH 1/2] of: add vendor prefix for Holtek Semiconductor

Quoted 1 line · On Fri, 18 Mar 2016 16:32:59 -0500 Rob Herring…

I think holtek being a bit longer would be better here.

Thank you for your feedback. I'll adjust this.

Kind regards,

Signature · 6 lines
Robin van der Gracht
Protonic Holland
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author maintainer
#4 lore raw

PATCH v4 2/2 auxdisplay: ht16k33: Driver for LED controller

In reply to Robin van der Gracht

This is a driver for the Holtek HT16K33 RAM mapping LED controller with keyscan.

---

Changes in v4:
- Removed trailing dot from patch title
- Removed unused defines
- Fixed brightness range (0 was presumed to be off but its 1/16 duty cycle)
- No longer checking 'reschedule' before setting it in ht16k33_keypad_scan()
- Use more efficient ffs() to find changed rows in ht16k33_keypad_scan()
- Use BIT macro in ht16k33_keypad_scan()
- Removed extra space in return line from ht16k33_bl_check_fb()
- Removed redundant 'Out of Memory' prints from ht16k33_probe()
- Changed bustype from BUS_HOST to BUS_I2C

 .../devicetree/bindings/display/ht16k33.txt        |  42 ++
 drivers/auxdisplay/Kconfig                         |   9 +
 drivers/auxdisplay/Makefile                        |   1 +
 drivers/auxdisplay/ht16k33.c                       | 563 +++++++++++++++++++++
 4 files changed, 615 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ht16k33.txt
 create mode 100644 drivers/auxdisplay/ht16k33.c
Documentation/devicetree/bindings/display/ht16k33.txt new file +42 -0
new file mode 100644
index 0000000..20ef996
@@ -0,0 +1,42 @@
+Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
+-------------------------------------------------------------------------------
+
+Required properties:
+- compatible:		"ht,ht16k33"
+- reg:			I2C slave address of the chip.
+- interrupt-parent:	A phandle pointing to the interrupt controller\
+			serving the interrupt for this chip.
+- interrupts:		Interrupt specification for the key pressed interrupt.
+- refresh-rate-hz:	Display update interval in HZ.
+- debounce-delay-ms:	Debouncing interval time in microseconds.
+- linux,keymap: 	The keymap for keys as described in the binding
+			document (devicetree/bindings/input/matrix-keymap.txt).
+
+Optional properties:
+- linux,no-autorepeat:	Disable keyrepeat.
+- default-brightness-level: Initial brightness level [0-15] (default: 15).
+
+Example:
+
+&i2c1 {
+	ht16k33: ht16k33@70 {
+		compatible = "ht,ht16k33";
+		reg = <0x70>;
+		refresh-rate-hz = <20>;
+		debounce-delay-ms = <50>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+		linux,keymap = <
+			MATRIX_KEY(2, 0, KEY_F6)
+			MATRIX_KEY(3, 0, KEY_F8)
+			MATRIX_KEY(4, 0, KEY_F0)
+			MATRIX_KEY(5, 0, KEY_F4)
+			MATRIX_KEY(6, 0, KEY_F2)
+			MATRIX_KEY(2, 1, KEY_F5)
+			MATRIX_KEY(3, 1, KEY_F7)
+			MATRIX_KEY(4, 1, KEY_F9)
+			MATRIX_KEY(5, 1, KEY_F3)
+			MATRIX_KEY(6, 1, KEY_F1)
+		>;
+	};
+};
drivers/auxdisplay/Kconfig +9 -0
index c07e725..75ad4f5 100644
@@ -119,4 +119,13 @@ config CFAG12864B_RATE
 	  If you compile this as a module, you can still override this
 	  value using the module parameters.
 
+config HT16K33
+	tristate "Holtek Ht16K33 LED controller with keyscan"
+	depends on FB && OF && I2C && INPUT
+	select INPUT_MATRIXKMAP
+	select FB_BACKLIGHT
+	help
+	  Say yes here to add support for Holtek HT16K33, RAM mapping 16*8
+	  LED controller driver with keyscan.
+
 endif # AUXDISPLAY
drivers/auxdisplay/Makefile +1 -0
index 8a8936a..d7c9ef5 100644
@@ -4,3 +4,4 @@
 
 obj-$(CONFIG_KS0108)		+= ks0108.o
 obj-$(CONFIG_CFAG12864B)	+= cfag12864b.o cfag12864bfb.o
+obj-$(CONFIG_HT16K33)		+= ht16k33.o
drivers/auxdisplay/ht16k33.c new file +563 -0

563 lines not on this page · raw message

Signature · 1 line
2.5.0
maintainer
#5 lore raw

Re: [PATCH v4 2/2] auxdisplay: ht16k33: Driver for LED controller

Quoted 1 line · Robin van der Gracht

This is a driver for the Holtek HT16K33 RAM mapping LED controller with keyscan.

Wrap your lines to less than 80 chars.

Quoted 28 lines

---

Changes in v4:
- Removed trailing dot from patch title
- Removed unused defines
- Fixed brightness range (0 was presumed to be off but its 1/16 duty cycle)
- No longer checking 'reschedule' before setting it in ht16k33_keypad_scan()
- Use more efficient ffs() to find changed rows in ht16k33_keypad_scan()
- Use BIT macro in ht16k33_keypad_scan()
- Removed extra space in return line from ht16k33_bl_check_fb()
- Removed redundant 'Out of Memory' prints from ht16k33_probe()
- Changed bustype from BUS_HOST to BUS_I2C

 .../devicetree/bindings/display/ht16k33.txt        |  42 ++
 drivers/auxdisplay/Kconfig                         |   9 +
 drivers/auxdisplay/Makefile                        |   1 +
 drivers/auxdisplay/ht16k33.c                       | 563 +++++++++++++++++++++
 4 files changed, 615 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ht16k33.txt
 create mode 100644 drivers/auxdisplay/ht16k33.c
Documentation/devicetree/bindings/display/ht16k33.txt new file +0 -0
new file mode 100644
index 0000000..20ef996

Documentation/devicetree/bindings/display/ht16k33.txt line 7

Quoted 7 lines
Documentation/devicetree/bindings/display/ht16k33.txt new file +7 -0
@@ -0,0 +1,42 @@
+Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
+-------------------------------------------------------------------------------
+
+Required properties:
+- compatible:		"ht,ht16k33"
+- reg:			I2C slave address of the chip.
+- interrupt-parent:	A phandle pointing to the interrupt controller\

Drop the \

Quoted 25 lines
Documentation/devicetree/bindings/display/ht16k33.txt new file +25 -0
+			serving the interrupt for this chip.
+- interrupts:		Interrupt specification for the key pressed interrupt.
+- refresh-rate-hz:	Display update interval in HZ.
+- debounce-delay-ms:	Debouncing interval time in microseconds.
+- linux,keymap: 	The keymap for keys as described in the binding
+			document (devicetree/bindings/input/matrix-keymap.txt).
+
+Optional properties:
+- linux,no-autorepeat:	Disable keyrepeat.
+- default-brightness-level: Initial brightness level [0-15] (default: 15).
+
+Example:
+
+&i2c1 {
+	ht16k33: ht16k33@70 {
+		compatible = "ht,ht16k33";
+		reg = <0x70>;
+		refresh-rate-hz = <20>;
+		debounce-delay-ms = <50>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
+		linux,keymap = <
+			MATRIX_KEY(2, 0, KEY_F6)
+			MATRIX_KEY(3, 0, KEY_F8)
+			MATRIX_KEY(4, 0, KEY_F0)

Documentation/devicetree/bindings/display/ht16k33.txt line 42

Quoted 10 lines
Documentation/devicetree/bindings/display/ht16k33.txt new file +10 -0
+			MATRIX_KEY(5, 0, KEY_F4)
+			MATRIX_KEY(6, 0, KEY_F2)
+			MATRIX_KEY(2, 1, KEY_F5)
+			MATRIX_KEY(3, 1, KEY_F7)
+			MATRIX_KEY(4, 1, KEY_F9)
+			MATRIX_KEY(5, 1, KEY_F3)
+			MATRIX_KEY(6, 1, KEY_F1)
+		>;
+	};
+};

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

author maintainer
#6 lore raw

Re: [PATCH v4 2/2] auxdisplay: ht16k33: Driver for LED controller

Quoted 5 lines · On Fri, 18 Mar 2016 16:42:17 -0500 Rob Herring <[email protected]> wrote:
Quoted 2 lines · Robin van der Gracht

This is a driver for the Holtek HT16K33 RAM mapping LED controller with keyscan.

Wrap your lines to less than 80 chars.

I must have missed that one..

Quoted 27 lines
Quoted 27 lines

---

Changes in v4:
- Removed trailing dot from patch title
- Removed unused defines
- Fixed brightness range (0 was presumed to be off but its 1/16
duty cycle)
- No longer checking 'reschedule' before setting it in
ht16k33_keypad_scan()
- Use more efficient ffs() to find changed rows in
ht16k33_keypad_scan()
- Use BIT macro in ht16k33_keypad_scan()
- Removed extra space in return line from ht16k33_bl_check_fb()
- Removed redundant 'Out of Memory' prints from ht16k33_probe()
- Changed bustype from BUS_HOST to BUS_I2C

 .../devicetree/bindings/display/ht16k33.txt        |  42 ++
 drivers/auxdisplay/Kconfig                         |   9 +
 drivers/auxdisplay/Makefile                        |   1 +
 drivers/auxdisplay/ht16k33.c                       | 563
+++++++++++++++++++++ 4 files changed, 615 insertions(+)
 create mode 100644

Documentation/devicetree/bindings/display/ht16k33.txt create mode 100644 drivers/auxdisplay/ht16k33.c

Quoted 16 lines
Quoted 13 lines
(quoted diff) +0 -0

b/Documentation/devicetree/bindings/display/ht16k33.txt new file mode 100644 index 0000000..20ef996

Documentation/devicetree/bindings/display/ht16k33.txt new file +7 -0
@@ -0,0 +1,42 @@
+Holtek ht16k33 RAM mapping 16*8 LED controller driver with keyscan
+-------------------------------------------------------------------------------
+
+Required properties:
+- compatible:		"ht,ht16k33"
+- reg:			I2C slave address of the chip.
+- interrupt-parent:	A phandle pointing to the interrupt
Quoted 1 line

controller\

Drop the \

Will do.

Quoted 30 lines
Quoted 30 lines
Documentation/devicetree/bindings/display/ht16k33.txt new file +2 -0
+			serving the interrupt for this chip.
+- interrupts:		Interrupt specification for the key

pressed interrupt. +- refresh-rate-hz: Display update
interval in HZ. +- debounce-delay-ms: Debouncing interval
time in microseconds. +- linux,keymap: The keymap for keys
as described in the binding

Documentation/devicetree/bindings/display/ht16k33.txt new file +1 -0
+			document

(devicetree/bindings/input/matrix-keymap.txt). +
+Optional properties:

+- linux,no-autorepeat:	Disable keyrepeat.
+- default-brightness-level: Initial brightness level [0-15]

(default: 15). +

Documentation/devicetree/bindings/display/ht16k33.txt new file +10 -0
+Example:
+
+&i2c1 {
+	ht16k33: ht16k33@70 {
+		compatible = "ht,ht16k33";
+		reg = <0x70>;
+		refresh-rate-hz = <20>;
+		debounce-delay-ms = <50>;
+		interrupt-parent = <&gpio4>;
+		interrupts = <5 (IRQ_TYPE_LEVEL_HIGH |

IRQ_TYPE_EDGE_RISING)>;

Documentation/devicetree/bindings/display/ht16k33.txt new file +6 -0
+		linux,keymap = <
+			MATRIX_KEY(2, 0, KEY_F6)
+			MATRIX_KEY(3, 0, KEY_F8)
+			MATRIX_KEY(4, 0, KEY_F0)
+			MATRIX_KEY(5, 0, KEY_F4)
+			MATRIX_KEY(6, 0, KEY_F2)
Quoted 8 lines

Documentation/devicetree/bindings/display/ht16k33.txt line 42

Quoted 8 lines
Documentation/devicetree/bindings/display/ht16k33.txt new file +8 -0
+			MATRIX_KEY(2, 1, KEY_F5)
+			MATRIX_KEY(3, 1, KEY_F7)
+			MATRIX_KEY(4, 1, KEY_F9)
+			MATRIX_KEY(5, 1, KEY_F3)
+			MATRIX_KEY(6, 1, KEY_F1)
+		>;
+	};
+};

Best regards,

Signature · 2 lines
Robin van der Gracht
Protonic Holland