All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH linux v5 0/4] Seven segment display support
@ 2016-11-20  7:27 Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 1/4] Documentation: dt-bindings: Document bindings for seven " Jaghathiswari Rankappagounder Natarajan
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-11-20  7:27 UTC (permalink / raw)
  To: openbmc, joel; +Cc: Jaghathiswari Rankappagounder Natarajan

This patchset includes:

Documentation for the binding which provides an interface for adding clock,
data and clear signal GPIO lines to control seven segment display.

The platform device driver provides an API for displaying on two 7-segment
displays, and implements the required bit-banging. The hardware assumed is
74HC164 wired to two 7-segment displays.

The character device driver implements the user-space API for letting a user
write to two 7-segment displays including any conversion methods necessary
to map the user input to two 7-segment displays.

Adding clock, data and clear signal GPIO lines in the devicetree to control
seven segment display on zaius platform.

The platform driver matches on the device tree node; the platform driver also
initializes the character device.

Tested that the seven segment display works properly by writing to the
character device file on EVB AST2500 board and on Zaius board.

A changelog between versions is included in the individual patches. Please
provide feedback.

Jaghathiswari Rankappagounder Natarajan (4):
  Documentation: dt-bindings: Document bindings for seven segment
    display support
  drivers: misc: Character device driver for seven segment display
  drivers: misc: Platform driver for seven segment display support
  arm: dts: Add dt-binding to support seven segment display on zaius

 .../devicetree/bindings/misc/seven-seg-gpio.txt    |  27 +++
 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts         |   8 +
 drivers/misc/Kconfig                               |  16 ++
 drivers/misc/Makefile                              |   2 +
 drivers/misc/seven_seg_disp.c                      | 197 ++++++++++++++++++++
 drivers/misc/seven_seg_disp.h                      |  34 ++++
 drivers/misc/seven_seg_gpio.c                      | 206 +++++++++++++++++++++
 7 files changed, 490 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
 create mode 100644 drivers/misc/seven_seg_disp.c
 create mode 100644 drivers/misc/seven_seg_disp.h
 create mode 100644 drivers/misc/seven_seg_gpio.c

--
2.8.0.rc3.226.g39d4020

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH linux v5 1/4] Documentation: dt-bindings: Document bindings for seven segment display support
  2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
@ 2016-11-20  7:27 ` Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 2/4] drivers: misc: Character device driver for seven segment display Jaghathiswari Rankappagounder Natarajan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-11-20  7:27 UTC (permalink / raw)
  To: openbmc, joel; +Cc: Jaghathiswari Rankappagounder Natarajan

This binding provides interface for adding clock, data and clear signal GPIO
lines to control seven segment display.

Signed-off-by: Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>
---
v2:
- No changes made

v3:
- No changes made

v4:
- No changes made

v5:
- Made the binding documentation update as a separate patch

 .../devicetree/bindings/misc/seven-seg-gpio.txt    | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/misc/seven-seg-gpio.txt

diff --git a/Documentation/devicetree/bindings/misc/seven-seg-gpio.txt b/Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
new file mode 100644
index 0000000..9a4e255
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
@@ -0,0 +1,27 @@
+This binding defines interface to add clock, data and clear GPIO lines required
+for seven segment display support.
+
+Required properties:
+- compatible : should be "seven-seg-gpio-dev".
+- clock-gpios :  Should specify the GPIO pin connected to the Clock line on the
+  hardware.
+- data-gpios : Should specify the GPIO pin connected to Data line on the
+  hardware.
+- clear-gpios : Should specify the GPIO pin connected to Clear line on the
+  hardware.
+
+Optional properties:
+- refresh-interval-ms : The interval at which to refresh the display.
+  If this property is not present, the default value is 1000.
+
+Examples:
+
+#include <dt-bindings/gpio/gpio.h>
+
+seven-seg-disp {
+	compatible = "seven-seg-gpio-dev";
+	refresh-interval-ms = "1000";
+	clock-gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+	data-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+	clear-gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
+};
--
2.8.0.rc3.226.g39d4020

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH linux v5 2/4] drivers: misc: Character device driver for seven segment display
  2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 1/4] Documentation: dt-bindings: Document bindings for seven " Jaghathiswari Rankappagounder Natarajan
@ 2016-11-20  7:27 ` Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 3/4] drivers: misc: Platform driver for seven segment display support Jaghathiswari Rankappagounder Natarajan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-11-20  7:27 UTC (permalink / raw)
  To: openbmc, joel; +Cc: Jaghathiswari Rankappagounder Natarajan

Character device driver which implements the user-space
API for letting a user write to two 7-segment displays including
any conversion methods necessary to map the user input
to two 7-segment displays.

Signed-off-by: Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>
---
v2:
- Renamed driver as suggested by Rick
- Made the character driver generic so that the character device can attach
-  to any compatible display drivers as suggested by Rick

v3:
- Provide support for user to also read the current display data as suggested
-  by Rick
- Picked more descriptive names for variables as suggested by Rick
- Made the header name same as .c file name as suggested by Rick
- Made the guards match header name as suggested by Rick
- Picked a more descriptive name for setup_cdev function as suggested by Rick

v4:
- Provided changelog entry as suggested by Joel

v5:
- Corrected the style of multi-line comments as suggested by Joel
- Removed the name of driver from the top of file as suggested by Joel
- Added GPL version 2 or later as suggested by Joel
- Added a bool variable which indicates if any valid value is written to the
-  char device file; so that correct result is returned when value is read
-  from the file.

 drivers/misc/Kconfig          |   8 ++
 drivers/misc/Makefile         |   1 +
 drivers/misc/seven_seg_disp.c | 197 ++++++++++++++++++++++++++++++++++++++++++
 drivers/misc/seven_seg_disp.h |  34 ++++++++
 4 files changed, 240 insertions(+)
 create mode 100644 drivers/misc/seven_seg_disp.c
 create mode 100644 drivers/misc/seven_seg_disp.h

diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index a216b46..a21aec1 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -791,6 +791,14 @@ config PANEL_CHANGE_MESSAGE
 	  If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
 	  say 'N' and keep the default message with the version.

+config SEVEN_SEGMENT_DISPLAY
+	tristate "Character driver for seven segment display support"
+	help
+	  Character device driver which implements the user-space
+	  API for letting a user write to two 7-segment displays including
+	  any conversion methods necessary to map the user input
+	  to two 7-segment displays.
+
 config PANEL_BOOT_MESSAGE
 	depends on PANEL && PANEL_CHANGE_MESSAGE="y"
 	string "New initialization message"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index b2fb6dbf..c2defbd 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -56,4 +56,5 @@ obj-$(CONFIG_GENWQE)		+= genwqe/
 obj-$(CONFIG_ECHO)		+= echo/
 obj-$(CONFIG_VEXPRESS_SYSCFG)	+= vexpress-syscfg.o
 obj-$(CONFIG_CXL_BASE)		+= cxl/
+obj-$(CONFIG_SEVEN_SEGMENT_DISPLAY)	+= seven_seg_disp.o
 obj-$(CONFIG_PANEL)             += panel.o
diff --git a/drivers/misc/seven_seg_disp.c b/drivers/misc/seven_seg_disp.c
new file mode 100644
index 0000000..4daeac5
--- /dev/null
+++ b/drivers/misc/seven_seg_disp.c
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2016 Google, Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 or later as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/module.h>
+#include <linux/version.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/kdev_t.h>
+#include <linux/fs.h>
+#include <linux/uaccess.h>
+#include <linux/ctype.h>
+#include <linux/of.h>
+#include <linux/io.h>
+#include <linux/slab.h>
+#include <linux/platform_device.h>
+
+#include "seven_seg_disp.h"
+
+#define LED_DOT 0x01
+
+/*
+ * 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+ *  _       _   _       _   _   _   _   _   _       _       _   _
+ * | |   |  _|  _| |_| |_  |_    | |_| |_| |_| |_  |    _| |_  |_
+ * |_|   | |_   _|   |  _| |_|   | |_|   | | | |_| |_  |_| |_  |
+ *
+ * data[7:1] = led[a:g]
+ */
+const u8 seven_seg_bits[] = {
+	0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0,
+	0xFE, 0xF6, 0xEE, 0x3E, 0x9C, 0x7A, 0x9E, 0x8E
+	};
+
+/*
+ * 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+ *      _       _   _                              _            _
+ *     |   |_  |_| |_  _   _   _   _   _   _   _  |_    _|  _| | |
+ *     |_  |_  |   |                               _|  |_| |_| | |
+ *
+ * data[7:1] = led[a:g]
+ */
+const u8 special_seven_seg_bits[] = {
+	0x00, 0x9C, 0x1E, 0xCE, 0x8E, 0x02, 0x02, 0x02,
+	0x02, 0x02, 0x02, 0x02, 0xB6, 0x7A, 0x7A, 0xEC
+	};
+
+static dev_t seven_seg_devno;
+static struct class *seven_seg_disp_class;
+
+static int seven_seg_disp_open(struct inode *inode, struct file *filp)
+{
+	struct seven_seg_disp_dev *disp_dev;
+
+	disp_dev = container_of(inode->i_cdev,
+				 struct seven_seg_disp_dev, cdev);
+	filp->private_data = disp_dev;
+	return 0;
+}
+
+static int seven_seg_disp_close(struct inode *inode, struct file *filp)
+{
+	filp->private_data = NULL;
+	return 0;
+}
+
+static ssize_t seven_seg_disp_read(struct file *filp, char __user *buf, size_t
+				len, loff_t *off)
+{
+	struct seven_seg_disp_dev *disp_dev = filp->private_data;
+
+	if (disp_dev->disp_data_valid)
+		return -EINVAL;
+
+	if (copy_to_user(buf, disp_dev->seven_seg_disp_data_array,
+				MAX_DISP_CHAR_SIZE) != 0) {
+		return -EFAULT;
+	}
+
+	return 0;
+}
+
+static u16 convert_to_disp_data(char *buf)
+{
+	u8 low_display;
+	u8 high_display;
+	u16 led_value;
+
+	low_display = seven_seg_bits[hex_to_bin(buf[2])];
+
+	high_display = (buf[0] == '1') ?
+	special_seven_seg_bits[hex_to_bin(buf[1])] :
+	seven_seg_bits[hex_to_bin(buf[1])];
+
+	led_value = low_display | (high_display << 8);
+	if (buf[0] == '1')
+		led_value |= LED_DOT | (LED_DOT << 8);
+
+	return led_value;
+}
+
+static ssize_t seven_seg_disp_write(struct file *filp, const char __user *buf,
+				size_t len, loff_t *off)
+{
+	int length = len - 1;
+	int i;
+
+	struct seven_seg_disp_dev *disp_dev = filp->private_data;
+
+	if (length != MAX_DISP_CHAR_SIZE)
+		return -EINVAL;
+
+	if (copy_from_user(disp_dev->seven_seg_disp_data_array,
+				buf, length) != 0) {
+		return -EFAULT;
+	}
+
+	for (i = 0; i < MAX_DISP_CHAR_SIZE; i++) {
+		if (!isxdigit(disp_dev->seven_seg_disp_data_array[i]))
+			return -EINVAL;
+	}
+
+	disp_dev->current_seven_seg_disp_data = convert_to_disp_data(
+			disp_dev->seven_seg_disp_data_array);
+	disp_dev->disp_data_valid = true;
+	disp_dev->update_seven_seg_data(&disp_dev->parent,
+			disp_dev->current_seven_seg_disp_data);
+
+	return len;
+}
+
+static const struct file_operations seven_seg_disp_fops = {
+
+	.owner = THIS_MODULE,
+	.open = seven_seg_disp_open,
+	.release = seven_seg_disp_close,
+	.read = seven_seg_disp_read,
+	.write = seven_seg_disp_write
+};
+
+void seven_seg_rem_cdev(struct seven_seg_disp_dev *disp_dev)
+{
+	cdev_del(&disp_dev->cdev);
+	device_destroy(seven_seg_disp_class, seven_seg_devno);
+}
+
+int seven_seg_setup_cdev(struct seven_seg_disp_dev *disp_dev,
+	void (*update_disp_data)(struct device *, u16 data))
+{
+	struct device *dev;
+	int err;
+
+	dev = device_create(seven_seg_disp_class, &disp_dev->parent,
+			seven_seg_devno,
+			NULL, "seven_seg_disp_val");
+	if (dev == NULL)
+		return -1;
+	disp_dev->dev = dev;
+	disp_dev->update_seven_seg_data = update_disp_data;
+	disp_dev->disp_data_valid = false;
+
+	cdev_init(&disp_dev->cdev, &seven_seg_disp_fops);
+	err = cdev_add(&disp_dev->cdev, seven_seg_devno, 1);
+	if (err)
+		device_destroy(seven_seg_disp_class, seven_seg_devno);
+	return err;
+}
+
+static int __init seven_seg_disp_init(void)
+{
+	if (alloc_chrdev_region(&seven_seg_devno, 0, 1, "disp_state") < 0)
+		return -1;
+
+	seven_seg_disp_class = class_create(THIS_MODULE, "disp_state");
+	if (seven_seg_disp_class == NULL)
+		goto unreg_chrdev;
+
+unreg_chrdev:
+	unregister_chrdev_region(seven_seg_devno, 1);
+	return -1;
+}
+
+static void __exit seven_seg_disp_exit(void)
+{
+	class_destroy(seven_seg_disp_class);
+	unregister_chrdev_region(seven_seg_devno, 1);
+}
+
+module_init(seven_seg_disp_init);
+module_exit(seven_seg_disp_exit);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>");
+MODULE_DESCRIPTION("Seven segment display character driver");
diff --git a/drivers/misc/seven_seg_disp.h b/drivers/misc/seven_seg_disp.h
new file mode 100644
index 0000000..b0f93c5
--- /dev/null
+++ b/drivers/misc/seven_seg_disp.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2016 Google, Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 or later as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef SEVEN_SEG_DISP_H
+#define SEVEN_SEG_DISP_H
+
+#include <linux/device.h>
+#include <linux/cdev.h>
+
+#define MAX_DISP_CHAR_SIZE 3
+
+#define DEFAULT_REFRESH_INTERVAL_MS 1000
+
+struct seven_seg_disp_dev {
+	bool disp_data_valid;
+	u16 current_seven_seg_disp_data;
+	char seven_seg_disp_data_array[MAX_DISP_CHAR_SIZE];
+	struct device parent;
+	struct device *dev;
+	struct cdev cdev;
+	void (*update_seven_seg_data)(struct device *, u16 data);
+};
+
+int seven_seg_setup_cdev(struct seven_seg_disp_dev *disp_dev,
+	void (*update_disp_data)(struct device *, u16 data));
+
+void seven_seg_rem_cdev(struct seven_seg_disp_dev *disp_dev);
+
+#endif
--
2.8.0.rc3.226.g39d4020

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH linux v5 3/4] drivers: misc: Platform driver for seven segment display support
  2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 1/4] Documentation: dt-bindings: Document bindings for seven " Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 2/4] drivers: misc: Character device driver for seven segment display Jaghathiswari Rankappagounder Natarajan
@ 2016-11-20  7:27 ` Jaghathiswari Rankappagounder Natarajan
  2016-11-20  7:27 ` [PATCH linux v5 4/4] arm: dts: Add dt-binding to support seven segment display on zaius Jaghathiswari Rankappagounder Natarajan
  2016-11-23  2:45 ` [PATCH linux v5 0/4] Seven segment display support Joel Stanley
  4 siblings, 0 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-11-20  7:27 UTC (permalink / raw)
  To: openbmc, joel; +Cc: Jaghathiswari Rankappagounder Natarajan

Platform device driver which provides an API for displaying on two
7-segment displays, and implements the required bit-banging.
The hardware assumed is 74HC164 wired to two 7-segment displays.

Signed-off-by: Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>
---
v2:
- Renamed driver as suggested by Rick, Xo, Joel
- Moved static data members to a struct and used platform_set_drvdata
-  to save the struct as suggested by Rick, Xo
- Moved the conversion logic(string to LED pattern) to the seven segment
-  display driver(character device driver) as suggested by Rick
- Included a device tree property for display refresh interval as suggested
-  by Xo
- Made the delay value used in udelay as a constant as suggested by Xo
- Included copyright header as suggested by Joel
- Corrected the style for multi-line comments as suggested by Joel
- Dropped the @param/@return annotations as suggested by Joel
- Removed obvious comments as suggested by Joel
- Used del_timer_sync as suggested by Joel

v3:
- Included API for clearing display as suggested by Rick

v4:
- Included changelog entry as suggested by Joel

v5:
- Corrected the style of multi-line comments as suggested by Joel
- Removed the name of driver from the top of file as suggested by Joel
- Added GPL version 2 or later as suggested by Joel
- Removed the variable which was used to indicate if
-  the user has given a valid display data; instead send data as 0(which
-  does not make the LED light up) before the user gives valid data;
-  after user gives valid data, send the valid data. Also removed the
-  mutex logic

 drivers/misc/Kconfig          |   8 ++
 drivers/misc/Makefile         |   1 +
 drivers/misc/seven_seg_gpio.c | 206 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 215 insertions(+)
 create mode 100644 drivers/misc/seven_seg_gpio.c

diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index a21aec1..6508108 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -812,6 +812,14 @@ config PANEL_BOOT_MESSAGE
 	  An empty message will only clear the display at driver init time. Any other
 	  printf()-formatted message is valid with newline and escape codes.

+config SEVEN_SEGMENT_GPIO
+	tristate "Platform driver to update seven segment display"
+	depends on SEVEN_SEGMENT_DISPLAY
+	help
+	  Platform device driver which provides an API for displaying on two
+	  7-segment displays, and implements the required bit-banging.
+	  The hardware assumed is 74HC164 wired to two 7-segment displays.
+
 source "drivers/misc/c2port/Kconfig"
 source "drivers/misc/eeprom/Kconfig"
 source "drivers/misc/cb710/Kconfig"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index c2defbd..d9c0d20 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -58,3 +58,4 @@ obj-$(CONFIG_VEXPRESS_SYSCFG)	+= vexpress-syscfg.o
 obj-$(CONFIG_CXL_BASE)		+= cxl/
 obj-$(CONFIG_SEVEN_SEGMENT_DISPLAY)	+= seven_seg_disp.o
 obj-$(CONFIG_PANEL)             += panel.o
+obj-$(CONFIG_SEVEN_SEGMENT_GPIO)	+= seven_seg_gpio.o
diff --git a/drivers/misc/seven_seg_gpio.c b/drivers/misc/seven_seg_gpio.c
new file mode 100644
index 0000000..3dcb903
--- /dev/null
+++ b/drivers/misc/seven_seg_gpio.c
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2016 Google, Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 or later as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/timer.h>
+#include <linux/jiffies.h>
+#include <linux/sizes.h>
+#include <linux/io.h>
+#include <linux/delay.h>
+#include <linux/uaccess.h>
+#include <linux/mutex.h>
+#include <linux/of_platform.h>
+#include <linux/gpio/consumer.h>
+
+#include "seven_seg_disp.h"
+
+#define DELAY_INTVL_US 1
+
+#define CLOCK_GPIO_NAME "clock"
+#define DATA_GPIO_NAME "data"
+#define CLEAR_GPIO_NAME "clear"
+
+struct seven_seg_gpio_info {
+	u16 curr_disp_value;
+	u16 refresh_interval;
+	struct timer_list update_timer;
+	struct gpio_desc *clock_gpio;
+	struct gpio_desc *data_gpio;
+	struct gpio_desc *clear_gpio;
+};
+
+static void update_seven_seg_gpio_data(struct device *dev, u16 data)
+{
+	struct platform_device *pdev;
+	struct seven_seg_gpio_info *gpio_info;
+
+	pdev = container_of(dev, struct platform_device, dev);
+	if (pdev == NULL) {
+		pr_err("invalid NULL platform_device\n");
+		return;
+	}
+
+	gpio_info = platform_get_drvdata(pdev);
+	if (gpio_info == NULL) {
+		pr_err("invalid NULL gpio_info\n");
+		return;
+	}
+
+	gpio_info->curr_disp_value = data;
+}
+
+static void clear_seven_seg_gpio_data(struct device *dev, u16 data)
+{
+	struct platform_device *pdev;
+	struct seven_seg_gpio_info *gpio_info;
+
+	pdev = container_of(dev, struct platform_device, dev);
+	if (pdev == NULL) {
+		pr_err("invalid NULL platform_device\n");
+		return;
+	}
+
+	gpio_info = platform_get_drvdata(pdev);
+	if (gpio_info == NULL) {
+		pr_err("invalid NULL gpio_info\n");
+		return;
+	}
+
+	gpio_info->curr_disp_value = 0;
+}
+
+static void send_seven_seg_gpio_data(u16 disp_data,
+		struct seven_seg_gpio_info *gpio_info)
+{
+	int i;
+
+	gpiod_set_value(gpio_info->clear_gpio, 0);
+	udelay(DELAY_INTVL_US);
+	gpiod_set_value(gpio_info->clear_gpio, 1);
+	udelay(DELAY_INTVL_US);
+
+	for (i = 0; i < 16; i++) {
+		if (disp_data & 0x01)
+			gpiod_set_value(gpio_info->data_gpio, 1);
+		else
+			gpiod_set_value(gpio_info->data_gpio, 0);
+
+		udelay(DELAY_INTVL_US);
+
+		gpiod_set_value(gpio_info->clock_gpio, 0);
+		udelay(DELAY_INTVL_US);
+		gpiod_set_value(gpio_info->clock_gpio, 1);
+		udelay(DELAY_INTVL_US);
+
+		disp_data >>= 1;
+	}
+}
+
+static void disp_refresh_timer_handler(unsigned long data)
+{
+	u16 disp_data;
+	struct seven_seg_gpio_info *gpio_info =
+		(struct seven_seg_gpio_info *)data;
+	disp_data = gpio_info->curr_disp_value;
+
+	send_seven_seg_gpio_data(disp_data, gpio_info);
+	mod_timer(&gpio_info->update_timer,
+		jiffies + msecs_to_jiffies(gpio_info->refresh_interval));
+}
+
+static const struct of_device_id of_seven_seg_gpio_match[] = {
+		{ .compatible = "seven-seg-gpio-dev" },
+		{},
+};
+
+MODULE_DEVICE_TABLE(of, of_seven_seg_gpio_match);
+
+static int seven_seg_gpio_probe(struct platform_device *pdev)
+{
+	u16 interval;
+	int result;
+	struct seven_seg_gpio_info *gpio_info;
+	struct device *dev = &pdev->dev;
+	struct seven_seg_disp_dev *disp_dev;
+
+	gpio_info = devm_kzalloc(dev,
+			sizeof(struct seven_seg_gpio_info),
+			GFP_KERNEL);
+	if (gpio_info == NULL)
+		return -ENOMEM;
+
+	/* Requesting the clock gpio */
+	gpio_info->clock_gpio = devm_gpiod_get(dev, CLOCK_GPIO_NAME,
+		GPIOD_OUT_HIGH);
+	if (IS_ERR(gpio_info->clock_gpio))
+		return PTR_ERR(gpio_info->clock_gpio);
+
+	/* Requesting the data gpio */
+	gpio_info->data_gpio = devm_gpiod_get(dev, DATA_GPIO_NAME,
+		GPIOD_OUT_HIGH);
+	if (IS_ERR(gpio_info->data_gpio))
+		return PTR_ERR(gpio_info->data_gpio);
+
+	/* Requesting the clear gpio */
+	gpio_info->clear_gpio = devm_gpiod_get(dev, CLEAR_GPIO_NAME,
+		GPIOD_OUT_HIGH);
+	if (IS_ERR(gpio_info->clear_gpio))
+		return PTR_ERR(gpio_info->clear_gpio);
+
+	result = of_property_read_u16(pdev->dev.of_node,
+		"refresh-interval-ms", &interval);
+	gpio_info->refresh_interval = result ? DEFAULT_REFRESH_INTERVAL_MS :
+		interval;
+
+	/* Start timer to update seven segment display every second */
+	setup_timer(&gpio_info->update_timer, disp_refresh_timer_handler,
+			(unsigned long)gpio_info);
+	result = mod_timer(&gpio_info->update_timer,
+			jiffies +
+			msecs_to_jiffies(gpio_info->refresh_interval));
+	if (result)
+		return result;
+
+	gpio_info->curr_disp_value = 0;
+
+	platform_set_drvdata(pdev, gpio_info);
+
+	disp_dev = devm_kzalloc(dev, sizeof(struct seven_seg_disp_dev),
+				GFP_KERNEL);
+	disp_dev->parent = *dev;
+	seven_seg_setup_cdev(disp_dev, &update_seven_seg_gpio_data);
+	return 0;
+}
+
+static int seven_seg_gpio_remove(struct platform_device *pdev)
+{
+	struct seven_seg_gpio_info *gpio_info = platform_get_drvdata(pdev);
+	struct seven_seg_disp_dev *disp_dev =
+				container_of(&pdev->dev,
+				struct seven_seg_disp_dev, parent);
+	seven_seg_rem_cdev(disp_dev);
+	del_timer_sync(&gpio_info->update_timer);
+	platform_set_drvdata(pdev, NULL);
+	return 0;
+}
+
+static struct platform_driver seven_seg_gpio_driver = {
+	.probe		= seven_seg_gpio_probe,
+	.remove		= seven_seg_gpio_remove,
+	.driver		= {
+		.name	= "seven-seg-gpio",
+		.of_match_table = of_seven_seg_gpio_match,
+	},
+};
+
+module_platform_driver(seven_seg_gpio_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>");
+MODULE_DESCRIPTION("Seven segment display driver using GPIO config");
--
2.8.0.rc3.226.g39d4020

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH linux v5 4/4] arm: dts: Add dt-binding to support seven segment display on zaius
  2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
                   ` (2 preceding siblings ...)
  2016-11-20  7:27 ` [PATCH linux v5 3/4] drivers: misc: Platform driver for seven segment display support Jaghathiswari Rankappagounder Natarajan
@ 2016-11-20  7:27 ` Jaghathiswari Rankappagounder Natarajan
  2016-11-23  2:45 ` [PATCH linux v5 0/4] Seven segment display support Joel Stanley
  4 siblings, 0 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-11-20  7:27 UTC (permalink / raw)
  To: openbmc, joel; +Cc: Jaghathiswari Rankappagounder Natarajan

Add clock, data and clear signal GPIO lines to control seven segment display on
zaius platform.

Signed-off-by: Jaghathiswari Rankappagounder Natarajan <jaghu@google.com>
---
v2:
- Moved the doc file to the same commit as the driver that it describes
-  as suggested by Xo
- Removed abbreviation of names as suggested by Xo
- Corrected mismatch of property names between doc and actual usage
-  as suggested by Xo
- Corrected the gpio designator in the second gpios property as suggested by
-  Xo

v3:
- No changes made

v4:
- Included changelog entry as suggested by Joel

v5:
- No changes made

 arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
index 8ef4ece..ccb8147 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
@@ -43,6 +43,14 @@
 			gpios = <&gpio ASPEED_GPIO(H, 7) GPIO_ACTIVE_LOW>;
 		};
 	};
+
+	seven-seg-disp {
+		compatible = "seven-seg-gpio-dev";
+		refresh-interval-ms = "1000";
+		clock-gpios = <&gpio ASPEED_GPIO(J, 0) GPIO_ACTIVE_HIGH>;
+		data-gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_HIGH>;
+		clear-gpios = <&gpio ASPEED_GPIO(J, 1) GPIO_ACTIVE_HIGH>;
+	};
 };

 &fmc {
--
2.8.0.rc3.226.g39d4020

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH linux v5 0/4] Seven segment display support
  2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
                   ` (3 preceding siblings ...)
  2016-11-20  7:27 ` [PATCH linux v5 4/4] arm: dts: Add dt-binding to support seven segment display on zaius Jaghathiswari Rankappagounder Natarajan
@ 2016-11-23  2:45 ` Joel Stanley
  2016-12-12 23:58   ` Jaghathiswari Rankappagounder Natarajan
  4 siblings, 1 reply; 9+ messages in thread
From: Joel Stanley @ 2016-11-23  2:45 UTC (permalink / raw)
  To: Jaghathiswari Rankappagounder Natarajan; +Cc: OpenBMC Maillist

We spoke on IRC about the clock changes. Lets wait until those issues
are addressed before reviewing this series.

Cheers,

Joel

On Sun, Nov 20, 2016 at 5:57 PM, Jaghathiswari Rankappagounder
Natarajan <jaghu@google.com> wrote:
> This patchset includes:
>
> Documentation for the binding which provides an interface for adding clock,
> data and clear signal GPIO lines to control seven segment display.
>
> The platform device driver provides an API for displaying on two 7-segment
> displays, and implements the required bit-banging. The hardware assumed is
> 74HC164 wired to two 7-segment displays.
>
> The character device driver implements the user-space API for letting a user
> write to two 7-segment displays including any conversion methods necessary
> to map the user input to two 7-segment displays.
>
> Adding clock, data and clear signal GPIO lines in the devicetree to control
> seven segment display on zaius platform.
>
> The platform driver matches on the device tree node; the platform driver also
> initializes the character device.
>
> Tested that the seven segment display works properly by writing to the
> character device file on EVB AST2500 board and on Zaius board.
>
> A changelog between versions is included in the individual patches. Please
> provide feedback.
>
> Jaghathiswari Rankappagounder Natarajan (4):
>   Documentation: dt-bindings: Document bindings for seven segment
>     display support
>   drivers: misc: Character device driver for seven segment display
>   drivers: misc: Platform driver for seven segment display support
>   arm: dts: Add dt-binding to support seven segment display on zaius
>
>  .../devicetree/bindings/misc/seven-seg-gpio.txt    |  27 +++
>  arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts         |   8 +
>  drivers/misc/Kconfig                               |  16 ++
>  drivers/misc/Makefile                              |   2 +
>  drivers/misc/seven_seg_disp.c                      | 197 ++++++++++++++++++++
>  drivers/misc/seven_seg_disp.h                      |  34 ++++
>  drivers/misc/seven_seg_gpio.c                      | 206 +++++++++++++++++++++
>  7 files changed, 490 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
>  create mode 100644 drivers/misc/seven_seg_disp.c
>  create mode 100644 drivers/misc/seven_seg_disp.h
>  create mode 100644 drivers/misc/seven_seg_gpio.c
>
> --
> 2.8.0.rc3.226.g39d4020
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH linux v5 0/4] Seven segment display support
  2016-11-23  2:45 ` [PATCH linux v5 0/4] Seven segment display support Joel Stanley
@ 2016-12-12 23:58   ` Jaghathiswari Rankappagounder Natarajan
  2016-12-13  0:31     ` Joel Stanley
  0 siblings, 1 reply; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-12-12 23:58 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 2981 bytes --]

Hi Joel,
Could you please help review this patch series. Would like to have the
seven segment display driver for testing out on zaius machine.
(I am trying to get the fan tach driver to work and I hope to send that
along with pwm driver for review soon.)

Also you had mentioned about writing the LPC driver. Is that checked in?

Thanks,
Jagha

On Tue, Nov 22, 2016 at 6:45 PM, Joel Stanley <joel@jms.id.au> wrote:

> We spoke on IRC about the clock changes. Lets wait until those issues
> are addressed before reviewing this series.
>
> Cheers,
>
> Joel
>
> On Sun, Nov 20, 2016 at 5:57 PM, Jaghathiswari Rankappagounder
> Natarajan <jaghu@google.com> wrote:
> > This patchset includes:
> >
> > Documentation for the binding which provides an interface for adding
> clock,
> > data and clear signal GPIO lines to control seven segment display.
> >
> > The platform device driver provides an API for displaying on two
> 7-segment
> > displays, and implements the required bit-banging. The hardware assumed
> is
> > 74HC164 wired to two 7-segment displays.
> >
> > The character device driver implements the user-space API for letting a
> user
> > write to two 7-segment displays including any conversion methods
> necessary
> > to map the user input to two 7-segment displays.
> >
> > Adding clock, data and clear signal GPIO lines in the devicetree to
> control
> > seven segment display on zaius platform.
> >
> > The platform driver matches on the device tree node; the platform driver
> also
> > initializes the character device.
> >
> > Tested that the seven segment display works properly by writing to the
> > character device file on EVB AST2500 board and on Zaius board.
> >
> > A changelog between versions is included in the individual patches.
> Please
> > provide feedback.
> >
> > Jaghathiswari Rankappagounder Natarajan (4):
> >   Documentation: dt-bindings: Document bindings for seven segment
> >     display support
> >   drivers: misc: Character device driver for seven segment display
> >   drivers: misc: Platform driver for seven segment display support
> >   arm: dts: Add dt-binding to support seven segment display on zaius
> >
> >  .../devicetree/bindings/misc/seven-seg-gpio.txt    |  27 +++
> >  arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts         |   8 +
> >  drivers/misc/Kconfig                               |  16 ++
> >  drivers/misc/Makefile                              |   2 +
> >  drivers/misc/seven_seg_disp.c                      | 197
> ++++++++++++++++++++
> >  drivers/misc/seven_seg_disp.h                      |  34 ++++
> >  drivers/misc/seven_seg_gpio.c                      | 206
> +++++++++++++++++++++
> >  7 files changed, 490 insertions(+)
> >  create mode 100644 Documentation/devicetree/
> bindings/misc/seven-seg-gpio.txt
> >  create mode 100644 drivers/misc/seven_seg_disp.c
> >  create mode 100644 drivers/misc/seven_seg_disp.h
> >  create mode 100644 drivers/misc/seven_seg_gpio.c
> >
> > --
> > 2.8.0.rc3.226.g39d4020
> >
>

[-- Attachment #2: Type: text/html, Size: 3858 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH linux v5 0/4] Seven segment display support
  2016-12-12 23:58   ` Jaghathiswari Rankappagounder Natarajan
@ 2016-12-13  0:31     ` Joel Stanley
  2016-12-14  7:13       ` Jaghathiswari Rankappagounder Natarajan
  0 siblings, 1 reply; 9+ messages in thread
From: Joel Stanley @ 2016-12-13  0:31 UTC (permalink / raw)
  To: Jaghathiswari Rankappagounder Natarajan; +Cc: OpenBMC Maillist

Hi Jagha,

On Tue, Dec 13, 2016 at 10:58 AM, Jaghathiswari Rankappagounder
Natarajan <jaghu@google.com> wrote:
> Hi Joel,
> Could you please help review this patch series. Would like to have the seven
> segment display driver for testing out on zaius machine.

I have spent a fair amount of time reading your code. It would be nice
to see other developers take a look as well. Have you asked for review
from your peers?

> (I am trying to get the fan tach driver to work and I hope to send that a> along with pwm driver for review soon.)

If you think this driver is ready to go, I suggest you send it
upstream for wider community review. Same for the pwm driver. Make
sure you cc me so I can help out.

> Also you had mentioned about writing the LPC driver. Is that checked in?

Andrew sent a proposed driver some time ago. Did you have time to review it?

 http://patchwork.ozlabs.org/patch/693032/

I think we may prefer an ioctl based approach, but this is up for debate.

Cheers,

Joel

>
> Thanks,
> Jagha
>
> On Tue, Nov 22, 2016 at 6:45 PM, Joel Stanley <joel@jms.id.au> wrote:
>>
>> We spoke on IRC about the clock changes. Lets wait until those issues
>> are addressed before reviewing this series.
>>
>> Cheers,
>>
>> Joel
>>
>> On Sun, Nov 20, 2016 at 5:57 PM, Jaghathiswari Rankappagounder
>> Natarajan <jaghu@google.com> wrote:
>> > This patchset includes:
>> >
>> > Documentation for the binding which provides an interface for adding
>> > clock,
>> > data and clear signal GPIO lines to control seven segment display.
>> >
>> > The platform device driver provides an API for displaying on two
>> > 7-segment
>> > displays, and implements the required bit-banging. The hardware assumed
>> > is
>> > 74HC164 wired to two 7-segment displays.
>> >
>> > The character device driver implements the user-space API for letting a
>> > user
>> > write to two 7-segment displays including any conversion methods
>> > necessary
>> > to map the user input to two 7-segment displays.
>> >
>> > Adding clock, data and clear signal GPIO lines in the devicetree to
>> > control
>> > seven segment display on zaius platform.
>> >
>> > The platform driver matches on the device tree node; the platform driver
>> > also
>> > initializes the character device.
>> >
>> > Tested that the seven segment display works properly by writing to the
>> > character device file on EVB AST2500 board and on Zaius board.
>> >
>> > A changelog between versions is included in the individual patches.
>> > Please
>> > provide feedback.
>> >
>> > Jaghathiswari Rankappagounder Natarajan (4):
>> >   Documentation: dt-bindings: Document bindings for seven segment
>> >     display support
>> >   drivers: misc: Character device driver for seven segment display
>> >   drivers: misc: Platform driver for seven segment display support
>> >   arm: dts: Add dt-binding to support seven segment display on zaius
>> >
>> >  .../devicetree/bindings/misc/seven-seg-gpio.txt    |  27 +++
>> >  arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts         |   8 +
>> >  drivers/misc/Kconfig                               |  16 ++
>> >  drivers/misc/Makefile                              |   2 +
>> >  drivers/misc/seven_seg_disp.c                      | 197
>> > ++++++++++++++++++++
>> >  drivers/misc/seven_seg_disp.h                      |  34 ++++
>> >  drivers/misc/seven_seg_gpio.c                      | 206
>> > +++++++++++++++++++++
>> >  7 files changed, 490 insertions(+)
>> >  create mode 100644
>> > Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
>> >  create mode 100644 drivers/misc/seven_seg_disp.c
>> >  create mode 100644 drivers/misc/seven_seg_disp.h
>> >  create mode 100644 drivers/misc/seven_seg_gpio.c
>> >
>> > --
>> > 2.8.0.rc3.226.g39d4020
>> >
>
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH linux v5 0/4] Seven segment display support
  2016-12-13  0:31     ` Joel Stanley
@ 2016-12-14  7:13       ` Jaghathiswari Rankappagounder Natarajan
  0 siblings, 0 replies; 9+ messages in thread
From: Jaghathiswari Rankappagounder Natarajan @ 2016-12-14  7:13 UTC (permalink / raw)
  To: Joel Stanley; +Cc: OpenBMC Maillist

[-- Attachment #1: Type: text/plain, Size: 4163 bytes --]

Ok. I will send this driver upstream. Thanks for the feedback.
I haven't looked into the proposed lpc driver. I will look at that.

On Mon, Dec 12, 2016 at 4:31 PM, Joel Stanley <joel@jms.id.au> wrote:

> Hi Jagha,
>
> On Tue, Dec 13, 2016 at 10:58 AM, Jaghathiswari Rankappagounder
> Natarajan <jaghu@google.com> wrote:
> > Hi Joel,
> > Could you please help review this patch series. Would like to have the
> seven
> > segment display driver for testing out on zaius machine.
>
> I have spent a fair amount of time reading your code. It would be nice
> to see other developers take a look as well. Have you asked for review
> from your peers?
>
> > (I am trying to get the fan tach driver to work and I hope to send that
> a> along with pwm driver for review soon.)
>
> If you think this driver is ready to go, I suggest you send it
> upstream for wider community review. Same for the pwm driver. Make
> sure you cc me so I can help out.
>
> > Also you had mentioned about writing the LPC driver. Is that checked in?
>
> Andrew sent a proposed driver some time ago. Did you have time to review
> it?
>
>  http://patchwork.ozlabs.org/patch/693032/
>
> I think we may prefer an ioctl based approach, but this is up for debate.
>
> Cheers,
>
> Joel
>
> >
> > Thanks,
> > Jagha
> >
> > On Tue, Nov 22, 2016 at 6:45 PM, Joel Stanley <joel@jms.id.au> wrote:
> >>
> >> We spoke on IRC about the clock changes. Lets wait until those issues
> >> are addressed before reviewing this series.
> >>
> >> Cheers,
> >>
> >> Joel
> >>
> >> On Sun, Nov 20, 2016 at 5:57 PM, Jaghathiswari Rankappagounder
> >> Natarajan <jaghu@google.com> wrote:
> >> > This patchset includes:
> >> >
> >> > Documentation for the binding which provides an interface for adding
> >> > clock,
> >> > data and clear signal GPIO lines to control seven segment display.
> >> >
> >> > The platform device driver provides an API for displaying on two
> >> > 7-segment
> >> > displays, and implements the required bit-banging. The hardware
> assumed
> >> > is
> >> > 74HC164 wired to two 7-segment displays.
> >> >
> >> > The character device driver implements the user-space API for letting
> a
> >> > user
> >> > write to two 7-segment displays including any conversion methods
> >> > necessary
> >> > to map the user input to two 7-segment displays.
> >> >
> >> > Adding clock, data and clear signal GPIO lines in the devicetree to
> >> > control
> >> > seven segment display on zaius platform.
> >> >
> >> > The platform driver matches on the device tree node; the platform
> driver
> >> > also
> >> > initializes the character device.
> >> >
> >> > Tested that the seven segment display works properly by writing to the
> >> > character device file on EVB AST2500 board and on Zaius board.
> >> >
> >> > A changelog between versions is included in the individual patches.
> >> > Please
> >> > provide feedback.
> >> >
> >> > Jaghathiswari Rankappagounder Natarajan (4):
> >> >   Documentation: dt-bindings: Document bindings for seven segment
> >> >     display support
> >> >   drivers: misc: Character device driver for seven segment display
> >> >   drivers: misc: Platform driver for seven segment display support
> >> >   arm: dts: Add dt-binding to support seven segment display on zaius
> >> >
> >> >  .../devicetree/bindings/misc/seven-seg-gpio.txt    |  27 +++
> >> >  arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts         |   8 +
> >> >  drivers/misc/Kconfig                               |  16 ++
> >> >  drivers/misc/Makefile                              |   2 +
> >> >  drivers/misc/seven_seg_disp.c                      | 197
> >> > ++++++++++++++++++++
> >> >  drivers/misc/seven_seg_disp.h                      |  34 ++++
> >> >  drivers/misc/seven_seg_gpio.c                      | 206
> >> > +++++++++++++++++++++
> >> >  7 files changed, 490 insertions(+)
> >> >  create mode 100644
> >> > Documentation/devicetree/bindings/misc/seven-seg-gpio.txt
> >> >  create mode 100644 drivers/misc/seven_seg_disp.c
> >> >  create mode 100644 drivers/misc/seven_seg_disp.h
> >> >  create mode 100644 drivers/misc/seven_seg_gpio.c
> >> >
> >> > --
> >> > 2.8.0.rc3.226.g39d4020
> >> >
> >
> >
>

[-- Attachment #2: Type: text/html, Size: 5849 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-12-14  7:14 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-20  7:27 [PATCH linux v5 0/4] Seven segment display support Jaghathiswari Rankappagounder Natarajan
2016-11-20  7:27 ` [PATCH linux v5 1/4] Documentation: dt-bindings: Document bindings for seven " Jaghathiswari Rankappagounder Natarajan
2016-11-20  7:27 ` [PATCH linux v5 2/4] drivers: misc: Character device driver for seven segment display Jaghathiswari Rankappagounder Natarajan
2016-11-20  7:27 ` [PATCH linux v5 3/4] drivers: misc: Platform driver for seven segment display support Jaghathiswari Rankappagounder Natarajan
2016-11-20  7:27 ` [PATCH linux v5 4/4] arm: dts: Add dt-binding to support seven segment display on zaius Jaghathiswari Rankappagounder Natarajan
2016-11-23  2:45 ` [PATCH linux v5 0/4] Seven segment display support Joel Stanley
2016-12-12 23:58   ` Jaghathiswari Rankappagounder Natarajan
2016-12-13  0:31     ` Joel Stanley
2016-12-14  7:13       ` Jaghathiswari Rankappagounder Natarajan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.