* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
@ 2014-11-27 15:34 Sjoerd Simons
2014-11-30 18:58 ` Simon Glass
2014-12-15 22:34 ` Pavel Machek
0 siblings, 2 replies; 6+ messages in thread
From: Sjoerd Simons @ 2014-11-27 15:34 UTC (permalink / raw)
To: u-boot
The ChromeOS EC keyboard is used by various different chromebooks. Peach
pi being the third board in the u-boot tree to use it (snow and peach
pit the other two). Rather then embedding the same big DT node in the
peach-pi DT again, copy the dtsi snippit & bindings documentation from
linux and include it in all 3 boards.
This slightly changes the dt bindings in u-boot:
* google,key-rows becomes keypad,num-rows
* google,key-colums becomes keypad,num-colums
* google,repeat-delay-ms and google,repeat-rate-ms are no longer used
and replaced by hardcoded values (similar to tegra kbc)
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
---
arch/arm/dts/cros-ec-keyboard.dtsi | 105 ++++++++++++++++++++++++
arch/arm/dts/exynos5250-snow.dts | 59 +------------
arch/arm/dts/exynos5420-peach-pit.dts | 59 +------------
arch/arm/dts/exynos5800-peach-pi.dts | 4 +-
doc/device-tree-bindings/input/cros-ec-keyb.txt | 53 ++++++------
drivers/input/cros_ec_keyb.c | 16 ++--
6 files changed, 143 insertions(+), 153 deletions(-)
create mode 100644 arch/arm/dts/cros-ec-keyboard.dtsi
diff --git a/arch/arm/dts/cros-ec-keyboard.dtsi b/arch/arm/dts/cros-ec-keyboard.dtsi
new file mode 100644
index 0000000..9c7fb0a
--- /dev/null
+++ b/arch/arm/dts/cros-ec-keyboard.dtsi
@@ -0,0 +1,105 @@
+/*
+ * Keyboard dts fragment for devices that use cros-ec-keyboard
+ *
+ * Copyright (c) 2014 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 as
+ * published by the Free Software Foundation.
+*/
+
+#include <dt-bindings/input/input.h>
+
+&cros_ec {
+ keyboard-controller {
+ compatible = "google,cros-ec-keyb";
+ keypad,num-rows = <8>;
+ keypad,num-columns = <13>;
+ google,needs-ghost-filter;
+
+ linux,keymap = <
+ MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA)
+ MATRIX_KEY(0x00, 0x02, KEY_F1)
+ MATRIX_KEY(0x00, 0x03, KEY_B)
+ MATRIX_KEY(0x00, 0x04, KEY_F10)
+ MATRIX_KEY(0x00, 0x06, KEY_N)
+ MATRIX_KEY(0x00, 0x08, KEY_EQUAL)
+ MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT)
+
+ MATRIX_KEY(0x01, 0x01, KEY_ESC)
+ MATRIX_KEY(0x01, 0x02, KEY_F4)
+ MATRIX_KEY(0x01, 0x03, KEY_G)
+ MATRIX_KEY(0x01, 0x04, KEY_F7)
+ MATRIX_KEY(0x01, 0x06, KEY_H)
+ MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE)
+ MATRIX_KEY(0x01, 0x09, KEY_F9)
+ MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE)
+
+ MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL)
+ MATRIX_KEY(0x02, 0x01, KEY_TAB)
+ MATRIX_KEY(0x02, 0x02, KEY_F3)
+ MATRIX_KEY(0x02, 0x03, KEY_T)
+ MATRIX_KEY(0x02, 0x04, KEY_F6)
+ MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE)
+ MATRIX_KEY(0x02, 0x06, KEY_Y)
+ MATRIX_KEY(0x02, 0x07, KEY_102ND)
+ MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE)
+ MATRIX_KEY(0x02, 0x09, KEY_F8)
+
+ MATRIX_KEY(0x03, 0x01, KEY_GRAVE)
+ MATRIX_KEY(0x03, 0x02, KEY_F2)
+ MATRIX_KEY(0x03, 0x03, KEY_5)
+ MATRIX_KEY(0x03, 0x04, KEY_F5)
+ MATRIX_KEY(0x03, 0x06, KEY_6)
+ MATRIX_KEY(0x03, 0x08, KEY_MINUS)
+ MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH)
+
+ MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
+ MATRIX_KEY(0x04, 0x01, KEY_A)
+ MATRIX_KEY(0x04, 0x02, KEY_D)
+ MATRIX_KEY(0x04, 0x03, KEY_F)
+ MATRIX_KEY(0x04, 0x04, KEY_S)
+ MATRIX_KEY(0x04, 0x05, KEY_K)
+ MATRIX_KEY(0x04, 0x06, KEY_J)
+ MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON)
+ MATRIX_KEY(0x04, 0x09, KEY_L)
+ MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH)
+ MATRIX_KEY(0x04, 0x0b, KEY_ENTER)
+
+ MATRIX_KEY(0x05, 0x01, KEY_Z)
+ MATRIX_KEY(0x05, 0x02, KEY_C)
+ MATRIX_KEY(0x05, 0x03, KEY_V)
+ MATRIX_KEY(0x05, 0x04, KEY_X)
+ MATRIX_KEY(0x05, 0x05, KEY_COMMA)
+ MATRIX_KEY(0x05, 0x06, KEY_M)
+ MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT)
+ MATRIX_KEY(0x05, 0x08, KEY_SLASH)
+ MATRIX_KEY(0x05, 0x09, KEY_DOT)
+ MATRIX_KEY(0x05, 0x0b, KEY_SPACE)
+
+ MATRIX_KEY(0x06, 0x01, KEY_1)
+ MATRIX_KEY(0x06, 0x02, KEY_3)
+ MATRIX_KEY(0x06, 0x03, KEY_4)
+ MATRIX_KEY(0x06, 0x04, KEY_2)
+ MATRIX_KEY(0x06, 0x05, KEY_8)
+ MATRIX_KEY(0x06, 0x06, KEY_7)
+ MATRIX_KEY(0x06, 0x08, KEY_0)
+ MATRIX_KEY(0x06, 0x09, KEY_9)
+ MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT)
+ MATRIX_KEY(0x06, 0x0b, KEY_DOWN)
+ MATRIX_KEY(0x06, 0x0c, KEY_RIGHT)
+
+ MATRIX_KEY(0x07, 0x01, KEY_Q)
+ MATRIX_KEY(0x07, 0x02, KEY_E)
+ MATRIX_KEY(0x07, 0x03, KEY_R)
+ MATRIX_KEY(0x07, 0x04, KEY_W)
+ MATRIX_KEY(0x07, 0x05, KEY_I)
+ MATRIX_KEY(0x07, 0x06, KEY_U)
+ MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT)
+ MATRIX_KEY(0x07, 0x08, KEY_P)
+ MATRIX_KEY(0x07, 0x09, KEY_O)
+ MATRIX_KEY(0x07, 0x0b, KEY_UP)
+ MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
+ >;
+ };
+};
diff --git a/arch/arm/dts/exynos5250-snow.dts b/arch/arm/dts/exynos5250-snow.dts
index 95af025..bac5015 100644
--- a/arch/arm/dts/exynos5250-snow.dts
+++ b/arch/arm/dts/exynos5250-snow.dts
@@ -64,7 +64,7 @@
spi at 131b0000 {
spi-max-frequency = <1000000>;
spi-deactivate-delay = <100>;
- cros-ec at 0 {
+ cros_ec: cros-ec at 0 {
reg = <0>;
compatible = "google,cros-ec";
spi-max-frequency = <5000000>;
@@ -151,61 +151,6 @@
samsung,dc-value = <25>;
};
- cros-ec-keyb {
- compatible = "google,cros-ec-keyb";
- google,key-rows = <8>;
- google,key-columns = <13>;
- google,repeat-delay-ms = <240>;
- google,repeat-rate-ms = <30>;
- google,ghost-filter;
- /*
- * Keymap entries take the form of 0xRRCCKKKK where
- * RR=Row CC=Column KKKK=Key Code
- * The values below are for a US keyboard layout and
- * are taken from the Linux driver. Note that the
- * 102ND key is not used for US keyboards.
- */
- linux,keymap = <
- /* CAPSLCK F1 B F10 */
- 0x0001003a 0x0002003b 0x00030030 0x00040044
- /* N = R_ALT ESC */
- 0x00060031 0x0008000d 0x000a0064 0x01010001
- /* F4 G F7 H */
- 0x0102003e 0x01030022 0x01040041 0x01060023
- /* ' F9 BKSPACE L_CTRL */
- 0x01080028 0x01090043 0x010b000e 0x0200001d
- /* TAB F3 T F6 */
- 0x0201000f 0x0202003d 0x02030014 0x02040040
- /* ] Y 102ND [ */
- 0x0205001b 0x02060015 0x02070056 0x0208001a
- /* F8 GRAVE F2 5 */
- 0x02090042 0x03010029 0x0302003c 0x03030006
- /* F5 6 - \ */
- 0x0304003f 0x03060007 0x0308000c 0x030b002b
- /* R_CTRL A D F */
- 0x04000061 0x0401001e 0x04020020 0x04030021
- /* S K J ; */
- 0x0404001f 0x04050025 0x04060024 0x04080027
- /* L ENTER Z C */
- 0x04090026 0x040b001c 0x0501002c 0x0502002e
- /* V X , M */
- 0x0503002f 0x0504002d 0x05050033 0x05060032
- /* L_SHIFT / . SPACE */
- 0x0507002a 0x05080035 0x05090034 0x050B0039
- /* 1 3 4 2 */
- 0x06010002 0x06020004 0x06030005 0x06040003
- /* 8 7 0 9 */
- 0x06050009 0x06060008 0x0608000b 0x0609000a
- /* L_ALT DOWN RIGHT Q */
- 0x060a0038 0x060b006c 0x060c006a 0x07010010
- /* E R W I */
- 0x07020012 0x07030013 0x07040011 0x07050017
- /* U R_SHIFT P O */
- 0x07060016 0x07070036 0x07080019 0x07090018
- /* UP LEFT */
- 0x070b0067 0x070c0069>;
- };
-
fimd at 14400000 {
samsung,vl-freq = <60>;
samsung,vl-col = <1366>;
@@ -250,3 +195,5 @@
};
};
+
+#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/dts/exynos5420-peach-pit.dts b/arch/arm/dts/exynos5420-peach-pit.dts
index fde863d..d1d8735 100644
--- a/arch/arm/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/dts/exynos5420-peach-pit.dts
@@ -28,61 +28,6 @@
pmic = "/i2c at 12ca0000";
};
- cros-ec-keyb {
- compatible = "google,cros-ec-keyb";
- google,key-rows = <8>;
- google,key-columns = <13>;
- google,repeat-delay-ms = <240>;
- google,repeat-rate-ms = <30>;
- google,ghost-filter;
- /*
- * Keymap entries take the form of 0xRRCCKKKK where
- * RR=Row CC=Column KKKK=Key Code
- * The values below are for a US keyboard layout and
- * are taken from the Linux driver. Note that the
- * 102ND key is not used for US keyboards.
- */
- linux,keymap = <
- /* CAPSLCK F1 B F10 */
- 0x0001003a 0x0002003b 0x00030030 0x00040044
- /* N = R_ALT ESC */
- 0x00060031 0x0008000d 0x000a0064 0x01010001
- /* F4 G F7 H */
- 0x0102003e 0x01030022 0x01040041 0x01060023
- /* ' F9 BKSPACE L_CTRL */
- 0x01080028 0x01090043 0x010b000e 0x0200001d
- /* TAB F3 T F6 */
- 0x0201000f 0x0202003d 0x02030014 0x02040040
- /* ] Y 102ND [ */
- 0x0205001b 0x02060015 0x02070056 0x0208001a
- /* F8 GRAVE F2 5 */
- 0x02090042 0x03010029 0x0302003c 0x03030006
- /* F5 6 - \ */
- 0x0304003f 0x03060007 0x0308000c 0x030b002b
- /* R_CTRL A D F */
- 0x04000061 0x0401001e 0x04020020 0x04030021
- /* S K J ; */
- 0x0404001f 0x04050025 0x04060024 0x04080027
- /* L ENTER Z C */
- 0x04090026 0x040b001c 0x0501002c 0x0502002e
- /* V X , M */
- 0x0503002f 0x0504002d 0x05050033 0x05060032
- /* L_SHIFT / . SPACE */
- 0x0507002a 0x05080035 0x05090034 0x050B0039
- /* 1 3 4 2 */
- 0x06010002 0x06020004 0x06030005 0x06040003
- /* 8 7 0 9 */
- 0x06050009 0x06060008 0x0608000b 0x0609000a
- /* L_ALT DOWN RIGHT Q */
- 0x060a0038 0x060b006c 0x060c006a 0x07010010
- /* E R W I */
- 0x07020012 0x07030013 0x07040011 0x07050017
- /* U R_SHIFT P O */
- 0x07060016 0x07070036 0x07080019 0x07090018
- /* UP LEFT */
- 0x070b0067 0x070c0069>;
- };
-
dmc {
mem-manuf = "samsung";
mem-type = "ddr3";
@@ -157,7 +102,7 @@
spi at 12d40000 { /* spi2 */
spi-max-frequency = <4000000>;
spi-deactivate-delay = <200>;
- cros-ec at 0 {
+ cros_ec: cros-ec at 0 {
reg = <0>;
compatible = "google,cros-ec";
spi-half-duplex;
@@ -211,3 +156,5 @@
samsung,dual-lcd-enabled = <0>;
};
};
+
+#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/dts/exynos5800-peach-pi.dts b/arch/arm/dts/exynos5800-peach-pi.dts
index 8aedf8e..8b86824 100644
--- a/arch/arm/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/dts/exynos5800-peach-pi.dts
@@ -101,7 +101,7 @@
spi at 12d40000 { /* spi2 */
spi-max-frequency = <4000000>;
spi-deactivate-delay = <200>;
- cros-ec at 0 {
+ cros_ec: cros-ec at 0 {
reg = <0>;
compatible = "google,cros-ec";
spi-half-duplex;
@@ -155,3 +155,5 @@
samsung,dual-lcd-enabled = <0>;
};
};
+
+#include "cros-ec-keyboard.dtsi"
diff --git a/doc/device-tree-bindings/input/cros-ec-keyb.txt b/doc/device-tree-bindings/input/cros-ec-keyb.txt
index 3118276..0f6355c 100644
--- a/doc/device-tree-bindings/input/cros-ec-keyb.txt
+++ b/doc/device-tree-bindings/input/cros-ec-keyb.txt
@@ -1,45 +1,38 @@
-CROS_EC Keyboard
+ChromeOS EC Keyboard
-The CROS_EC (Matrix Keyboard Protocol) allows communcation with a secondary
-micro used for keyboard, and possible other features.
+Google's ChromeOS EC Keyboard is a simple matrix keyboard implemented on
+a separate EC (Embedded Controller) device. It provides a message for reading
+key scans from the EC. These are then converted into keycodes for processing
+by the kernel.
-The CROS_EC keyboard uses this protocol to receive key scans and produce input
-in U-Boot.
+This binding is based on matrix-keymap.txt and extends/modifies it as follows:
-Required properties :
-- compatible : "google,cros-ec-keyb"
-- google,key-rows : Number of key rows
-- google,key-columns : Number of key columns
+Required properties:
+- compatible: "google,cros-ec-keyb"
-Optional properties, in addition to those specified by the shared
-matrix-keyboard bindings:
+Optional properties:
+- google,needs-ghost-filter: True to enable a ghost filter for the matrix
+keyboard. This is recommended if the EC does not have its own logic or
+hardware for this.
-- linux,fn-keymap: a second keymap, same specification as the
- matrix-keyboard-controller spec but to be used when the KEY_FN modifier
- key is pressed.
-- google,repeat-delay-ms : delay in milliseconds before repeat starts
-- google,repeat-rate-ms : delay between each subsequent key press
-- google,ghost-filter : enable ghost filtering for this device
-Example, taken from daisy:
+Example:
cros-ec-keyb {
compatible = "google,cros-ec-keyb";
- google,key-rows = <8>;
- google,key-columns = <13>;
- google,ghost-filter;
- google,repeat-delay-ms = <240>;
- google,repeat-rate-ms = <30>;
+ keypad,num-rows = <8>;
+ keypad,num-columns = <13>;
+ google,needs-ghost-filter;
/*
- * Keymap entries take the form of 0xRRCCKKKK where
- * RR=Row CC=Column KKKK=Key Code
- * The values below are for a US keyboard layout and
- * are taken from the Linux driver. Note that the
- * 102ND key is not used for US keyboards.
- */
+ * Keymap entries take the form of 0xRRCCKKKK where
+ * RR=Row CC=Column KKKK=Key Code
+ * The values below are for a US keyboard layout and
+ * are taken from the Linux driver. Note that the
+ * 102ND key is not used for US keyboards.
+ */
linux,keymap = <
/* CAPSLCK F1 B F10 */
- 0x0001003a 0x0002003c 0x00030030 0x00040044
+ 0x0001003a 0x0002003b 0x00030030 0x00040044
/* N = R_ALT ESC */
0x00060031 0x0008000d 0x000a0064 0x01010001
/* F4 G F7 H */
diff --git a/drivers/input/cros_ec_keyb.c b/drivers/input/cros_ec_keyb.c
index 47502b1..49ee7b2 100644
--- a/drivers/input/cros_ec_keyb.c
+++ b/drivers/input/cros_ec_keyb.c
@@ -18,6 +18,8 @@ DECLARE_GLOBAL_DATA_PTR;
enum {
KBC_MAX_KEYS = 8, /* Maximum keys held down at once */
+ KBC_REPEAT_RATE_MS = 30,
+ KBC_REPEAT_DELAY_MS = 240,
};
static struct keyb {
@@ -26,8 +28,6 @@ static struct keyb {
struct key_matrix matrix; /* The key matrix layer */
int key_rows; /* Number of keyboard rows */
int key_cols; /* Number of keyboard columns */
- unsigned int repeat_delay_ms; /* Time before autorepeat starts */
- unsigned int repeat_rate_ms; /* Autorepeat rate in ms */
int ghost_filter; /* 1 to enable ghost filter, else 0 */
int inited; /* 1 if keyboard is ready */
} config;
@@ -188,8 +188,8 @@ static int cros_ec_keyb_decode_fdt(const void *blob, int node,
* Get keyboard rows and columns -@present we are limited to
* 8 columns by the protocol (one byte per row scan)
*/
- config->key_rows = fdtdec_get_int(blob, node, "google,key-rows", 0);
- config->key_cols = fdtdec_get_int(blob, node, "google,key-columns", 0);
+ config->key_rows = fdtdec_get_int(blob, node, "keypad,num-rows", 0);
+ config->key_cols = fdtdec_get_int(blob, node, "keypad,num-columns", 0);
if (!config->key_rows || !config->key_cols ||
config->key_rows * config->key_cols / 8
> CROS_EC_KEYSCAN_COLS) {
@@ -197,10 +197,6 @@ static int cros_ec_keyb_decode_fdt(const void *blob, int node,
config->key_rows, config->key_cols);
return -1;
}
- config->repeat_delay_ms = fdtdec_get_int(blob, node,
- "google,repeat-delay-ms", 0);
- config->repeat_rate_ms = fdtdec_get_int(blob, node,
- "google,repeat-rate-ms", 0);
config->ghost_filter = fdtdec_get_bool(blob, node,
"google,ghost-filter");
return 0;
@@ -232,8 +228,8 @@ static int cros_ec_init_keyboard(struct stdio_dev *dev)
}
if (cros_ec_keyb_decode_fdt(blob, node, &config))
return -1;
- input_set_delays(&config.input, config.repeat_delay_ms,
- config.repeat_rate_ms);
+ input_set_delays(&config.input, KBC_REPEAT_DELAY_MS,
+ KBC_REPEAT_RATE_MS);
if (key_matrix_init(&config.matrix, config.key_rows,
config.key_cols, config.ghost_filter)) {
debug("%s: cannot init key matrix\n", __func__);
--
2.1.3
^ permalink raw reply related [flat|nested] 6+ messages in thread* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
2014-11-27 15:34 [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux Sjoerd Simons
@ 2014-11-30 18:58 ` Simon Glass
2014-12-15 22:34 ` Pavel Machek
1 sibling, 0 replies; 6+ messages in thread
From: Simon Glass @ 2014-11-30 18:58 UTC (permalink / raw)
To: u-boot
On 27 November 2014 at 08:34, Sjoerd Simons
<sjoerd.simons@collabora.co.uk> wrote:
> The ChromeOS EC keyboard is used by various different chromebooks. Peach
> pi being the third board in the u-boot tree to use it (snow and peach
> pit the other two). Rather then embedding the same big DT node in the
> peach-pi DT again, copy the dtsi snippit & bindings documentation from
> linux and include it in all 3 boards.
>
> This slightly changes the dt bindings in u-boot:
> * google,key-rows becomes keypad,num-rows
> * google,key-colums becomes keypad,num-colums
> * google,repeat-delay-ms and google,repeat-rate-ms are no longer used
> and replaced by hardcoded values (similar to tegra kbc)
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
> ---
> arch/arm/dts/cros-ec-keyboard.dtsi | 105 ++++++++++++++++++++++++
> arch/arm/dts/exynos5250-snow.dts | 59 +------------
> arch/arm/dts/exynos5420-peach-pit.dts | 59 +------------
> arch/arm/dts/exynos5800-peach-pi.dts | 4 +-
> doc/device-tree-bindings/input/cros-ec-keyb.txt | 53 ++++++------
> drivers/input/cros_ec_keyb.c | 16 ++--
> 6 files changed, 143 insertions(+), 153 deletions(-)
> create mode 100644 arch/arm/dts/cros-ec-keyboard.dtsi
Thanks for doing this.
Acked-by: Simon Glass <sjg@chromium.org>
Tested Chrome OS EC and keyboard on snow, pit, pi.
Tested-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
2014-11-27 15:34 [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux Sjoerd Simons
2014-11-30 18:58 ` Simon Glass
@ 2014-12-15 22:34 ` Pavel Machek
2014-12-16 8:03 ` Sjoerd Simons
1 sibling, 1 reply; 6+ messages in thread
From: Pavel Machek @ 2014-12-15 22:34 UTC (permalink / raw)
To: u-boot
On Thu 2014-11-27 16:34:08, Sjoerd Simons wrote:
> The ChromeOS EC keyboard is used by various different chromebooks. Peach
> pi being the third board in the u-boot tree to use it (snow and peach
> pit the other two). Rather then embedding the same big DT node in the
> peach-pi DT again, copy the dtsi snippit & bindings documentation from
> linux and include it in all 3 boards.
>
> This slightly changes the dt bindings in u-boot:
...
> * google,repeat-delay-ms and google,repeat-rate-ms are no longer used
> and replaced by hardcoded values (similar to tegra kbc)
If more than one board needs this (and it clearly does) it would be
good to make the binding "official"...? I guess that means talking to
linux Documentation/devicetree maintainers...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
2014-12-15 22:34 ` Pavel Machek
@ 2014-12-16 8:03 ` Sjoerd Simons
2014-12-18 3:41 ` Simon Glass
0 siblings, 1 reply; 6+ messages in thread
From: Sjoerd Simons @ 2014-12-16 8:03 UTC (permalink / raw)
To: u-boot
On Mon, 2014-12-15 at 23:34 +0100, Pavel Machek wrote:
> On Thu 2014-11-27 16:34:08, Sjoerd Simons wrote:
> > The ChromeOS EC keyboard is used by various different chromebooks. Peach
> > pi being the third board in the u-boot tree to use it (snow and peach
> > pit the other two). Rather then embedding the same big DT node in the
> > peach-pi DT again, copy the dtsi snippit & bindings documentation from
> > linux and include it in all 3 boards.
> >
> > This slightly changes the dt bindings in u-boot:
> ...
> > * google,repeat-delay-ms and google,repeat-rate-ms are no longer used
> > and replaced by hardcoded values (similar to tegra kbc)
>
> If more than one board needs this (and it clearly does) it would be
> good to make the binding "official"...? I guess that means talking to
> linux Documentation/devicetree maintainers...
Device tree is for describing hardware, while repeat rate & delay are
user preferences, not something inherent to the hardware. As such, those
properties do not belong in device-tree in the first place.
Fwiw, Linux by default uses a delay of 250ms and a period of 33ms unless
the driver handles auto-repeat (e.g. for PS2 which does repeat in
hardware). If your goal is to fix the hardcoding of these values in
various drivers, it's probably better to make u-boot input core have
sane defaults for repeat rather then pushing it out into device-tree.
--
Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Collabora Ltd.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 6170 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141216/9cb516a5/attachment.bin>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
2014-12-16 8:03 ` Sjoerd Simons
@ 2014-12-18 3:41 ` Simon Glass
2014-12-29 22:05 ` Simon Glass
0 siblings, 1 reply; 6+ messages in thread
From: Simon Glass @ 2014-12-18 3:41 UTC (permalink / raw)
To: u-boot
Hi,
On 16 December 2014 at 01:03, Sjoerd Simons
<sjoerd.simons@collabora.co.uk> wrote:
> On Mon, 2014-12-15 at 23:34 +0100, Pavel Machek wrote:
>> On Thu 2014-11-27 16:34:08, Sjoerd Simons wrote:
>> > The ChromeOS EC keyboard is used by various different chromebooks. Peach
>> > pi being the third board in the u-boot tree to use it (snow and peach
>> > pit the other two). Rather then embedding the same big DT node in the
>> > peach-pi DT again, copy the dtsi snippit & bindings documentation from
>> > linux and include it in all 3 boards.
>> >
>> > This slightly changes the dt bindings in u-boot:
>> ...
>> > * google,repeat-delay-ms and google,repeat-rate-ms are no longer used
>> > and replaced by hardcoded values (similar to tegra kbc)
>>
>> If more than one board needs this (and it clearly does) it would be
>> good to make the binding "official"...? I guess that means talking to
>> linux Documentation/devicetree maintainers...
>
> Device tree is for describing hardware, while repeat rate & delay are
> user preferences, not something inherent to the hardware. As such, those
> properties do not belong in device-tree in the first place.
>
> Fwiw, Linux by default uses a delay of 250ms and a period of 33ms unless
> the driver handles auto-repeat (e.g. for PS2 which does repeat in
> hardware). If your goal is to fix the hardcoding of these values in
> various drivers, it's probably better to make u-boot input core have
> sane defaults for repeat rather then pushing it out into device-tree.
This patch could be adjusted to drop the common keyboard file, which
is now in mainline. But on the other hand, it will probably apply
cleaning for Minkyu.
Regards,
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux
2014-12-18 3:41 ` Simon Glass
@ 2014-12-29 22:05 ` Simon Glass
0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2014-12-29 22:05 UTC (permalink / raw)
To: u-boot
On 17 December 2014 at 20:41, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 16 December 2014 at 01:03, Sjoerd Simons
> <sjoerd.simons@collabora.co.uk> wrote:
>> On Mon, 2014-12-15 at 23:34 +0100, Pavel Machek wrote:
>>> On Thu 2014-11-27 16:34:08, Sjoerd Simons wrote:
>>> > The ChromeOS EC keyboard is used by various different chromebooks. Peach
>>> > pi being the third board in the u-boot tree to use it (snow and peach
>>> > pit the other two). Rather then embedding the same big DT node in the
>>> > peach-pi DT again, copy the dtsi snippit & bindings documentation from
>>> > linux and include it in all 3 boards.
>>> >
>>> > This slightly changes the dt bindings in u-boot:
>>> ...
>>> > * google,repeat-delay-ms and google,repeat-rate-ms are no longer used
>>> > and replaced by hardcoded values (similar to tegra kbc)
>>>
>>> If more than one board needs this (and it clearly does) it would be
>>> good to make the binding "official"...? I guess that means talking to
>>> linux Documentation/devicetree maintainers...
>>
>> Device tree is for describing hardware, while repeat rate & delay are
>> user preferences, not something inherent to the hardware. As such, those
>> properties do not belong in device-tree in the first place.
>>
>> Fwiw, Linux by default uses a delay of 250ms and a period of 33ms unless
>> the driver handles auto-repeat (e.g. for PS2 which does repeat in
>> hardware). If your goal is to fix the hardcoding of these values in
>> various drivers, it's probably better to make u-boot input core have
>> sane defaults for repeat rather then pushing it out into device-tree.
>
> This patch could be adjusted to drop the common keyboard file, which
> is now in mainline. But on the other hand, it will probably apply
> cleaning for Minkyu.
I'll pick this up and apply it on top of my previous change.
Applied to u-boot-x86 branch misc, thanks!
- Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-12-29 22:05 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-27 15:34 [U-Boot] [PATCH] cros-ec-keyboard: Synchronize DT binding from linux Sjoerd Simons
2014-11-30 18:58 ` Simon Glass
2014-12-15 22:34 ` Pavel Machek
2014-12-16 8:03 ` Sjoerd Simons
2014-12-18 3:41 ` Simon Glass
2014-12-29 22:05 ` Simon Glass
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox