]> git.sur5r.net Git - u-boot/commitdiff
cros_ec: exynos: Match up device tree with kernel version
authorSimon Glass <sjg@chromium.org>
Thu, 26 Mar 2015 15:29:39 +0000 (09:29 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 18 Apr 2015 17:11:16 +0000 (11:11 -0600)
The U-Boot device trees are slightly different in a few places. Adjust them
to remove most of the differences. Note that U-Boot does not support the
concept of interrupts as distinct from GPIOs, so this difference remains.

For sandbox, use the same keyboard file as for ARM boards and drop the
host emulation bus which seems redundant.

Signed-off-by: Simon Glass <sjg@chromium.org>
12 files changed:
arch/arm/dts/exynos5250-snow.dts
arch/arm/dts/exynos5420-peach-pit.dts
arch/arm/dts/exynos5800-peach-pi.dts
arch/sandbox/dts/cros-ec-keyboard.dtsi [new file with mode: 0644]
arch/sandbox/dts/sandbox.dts
drivers/input/cros_ec_keyb.c
drivers/misc/cros_ec_i2c.c
drivers/misc/cros_ec_lpc.c
drivers/misc/cros_ec_sandbox.c
drivers/misc/cros_ec_spi.c
include/fdtdec.h
lib/fdtdec.c

index 7d8be69d73b7d14c522451bcf9ad552e4a74a97e..d34ffce3d62abaee77f2f7902f090306c55de8cf 100644 (file)
@@ -40,9 +40,9 @@
        };
 
        i2c4: i2c@12ca0000 {
-               cros-ec@1e {
+               cros_ec: cros-ec@1e {
                        reg = <0x1e>;
-                       compatible = "google,cros-ec";
+                       compatible = "google,cros-ec-i2c";
                        i2c-max-frequency = <100000>;
                        u-boot,i2c-offset-len = <0>;
                        ec-interrupt = <&gpx1 6 GPIO_ACTIVE_LOW>;
        spi@131b0000 {
                spi-max-frequency = <1000000>;
                spi-deactivate-delay = <100>;
-               cros_ec: cros-ec@0 {
-                       reg = <0>;
-                       compatible = "google,cros-ec";
+
+               embedded-controller {
+                       compatible = "google,cros-ec-i2c";
+                       reg = <0x1e>;
                        spi-max-frequency = <5000000>;
                        ec-interrupt = <&gpx1 6 GPIO_ACTIVE_LOW>;
                        optimise-flash-write;
index 3ad4728138a400861826f44805c3a641f6c7f526..7d8fa28d16759379a959815dea7dc2caec5f4ecb 100644 (file)
        spi@12d40000 { /* spi2 */
                spi-max-frequency = <4000000>;
                spi-deactivate-delay = <200>;
+
                cros_ec: cros-ec@0 {
+                       compatible = "google,cros-ec-spi";
                        reg = <0>;
-                       compatible = "google,cros-ec";
                        spi-half-duplex;
                        spi-max-timeout-ms = <1100>;
-                       spi-frame-header = <0xec>;
                        ec-interrupt = <&gpx1 5 GPIO_ACTIVE_LOW>;
 
                        /*
index 494f7641e7d2a4cc013f8dbe2ead0989201532bb..8c1f6168857c5b4d6cd8a8afa8b24df0ed02f721 100644 (file)
                spi-max-frequency = <4000000>;
                spi-deactivate-delay = <200>;
                cros_ec: cros-ec@0 {
+                       compatible = "google,cros-ec-spi";
                        reg = <0>;
-                       compatible = "google,cros-ec";
                        spi-half-duplex;
                        spi-max-timeout-ms = <1100>;
-                       spi-frame-header = <0xec>;
                        ec-interrupt = <&gpx1 5 GPIO_ACTIVE_LOW>;
 
                        /*
diff --git a/arch/sandbox/dts/cros-ec-keyboard.dtsi b/arch/sandbox/dts/cros-ec-keyboard.dtsi
new file mode 100644 (file)
index 0000000..9c7fb0a
--- /dev/null
@@ -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)
+               >;
+       };
+};
index 7d050d92affd3ecd344542d0f6eebe5c46e41a54..5fa12720039272f0b2ee84a55129df5d7227bd2c 100644 (file)
                sides = <6>;
        };
 
-       host@0 {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "sandbox,host-emulation";
-               cros-ec@0 {
-                       reg = <0>;
-                       compatible = "google,cros-ec";
+       cros_ec: cros-ec@0 {
+               reg = <0 0>;
+               compatible = "google,cros-ec-sandbox";
 
-                       /*
-                        * This describes the flash memory within the EC. Note
-                        * that the STM32L flash erases to 0, not 0xff.
-                        */
+               /*
+                * This describes the flash memory within the EC. Note
+                * that the STM32L flash erases to 0, not 0xff.
+                */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               flash@8000000 {
+                       reg = <0x08000000 0x20000>;
+                       erase-value = <0>;
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       flash@8000000 {
-                               reg = <0x08000000 0x20000>;
-                               erase-value = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-
-                               /* Information for sandbox */
-                               ro {
-                                       reg = <0 0xf000>;
-                               };
-                               wp-ro {
-                                       reg = <0xf000 0x1000>;
-                               };
-                               rw {
-                                       reg = <0x10000 0x10000>;
-                               };
+
+                       /* Information for sandbox */
+                       ro {
+                               reg = <0 0xf000>;
+                       };
+                       wp-ro {
+                               reg = <0xf000 0x1000>;
+                       };
+                       rw {
+                               reg = <0x10000 0x10000>;
                        };
                };
        };
                yres = <600>;
        };
 
-       cros-ec-keyb {
-               compatible = "google,cros-ec-keyb";
-               keypad,num-rows = <8>;
-               keypad,num-columns = <13>;
-               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>;
-       };
-
        gpio_a: gpios@0 {
                gpio-controller;
                compatible = "sandbox,gpio";
                reg = <0 0>;
                compatible = "sandbox,spi";
                cs-gpios = <0>, <&gpio_a 0>;
-               flash@0 {
+               firmware_storage_spi: flash@0 {
                        reg = <0>;
                        compatible = "spansion,m25p16", "sandbox,spi-flash";
                        spi-max-frequency = <40000000>;
                };
        };
 
-       cros-ec@0 {
-               compatible = "google,cros-ec";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               firmware_storage_spi: flash@0 {
-                       reg = <0 0x400000>;
-               };
-       };
-
        pci: pci-controller {
                compatible = "sandbox,pci";
                device_type = "pci";
                host-raw-interface = "lo";
        };
 };
+
+#include "cros-ec-keyboard.dtsi"
index 49ee7b2c9b635733174d635c087013acb1c95618..a31aa77102522b04a579a4a94442398d196066bc 100644 (file)
@@ -198,7 +198,7 @@ static int cros_ec_keyb_decode_fdt(const void *blob, int node,
                return -1;
        }
        config->ghost_filter = fdtdec_get_bool(blob, node,
-                                              "google,ghost-filter");
+                                              "google,needs-ghost-filter");
        return 0;
 }
 
index cee9a0f51182704b644454b7d92b9b839ea3a831..3de18b2d2ade9e1a18e6e650358fa55747c425f3 100644 (file)
@@ -139,12 +139,12 @@ static struct dm_cros_ec_ops cros_ec_ops = {
 };
 
 static const struct udevice_id cros_ec_ids[] = {
-       { .compatible = "google,cros-ec" },
+       { .compatible = "google,cros-ec-i2c" },
        { }
 };
 
 U_BOOT_DRIVER(cros_ec_i2c) = {
-       .name           = "cros_ec",
+       .name           = "cros_ec_i2c",
        .id             = UCLASS_CROS_EC,
        .of_match       = cros_ec_ids,
        .probe          = cros_ec_probe,
index ef6e6820974c155b91ee113c419f332f15e9731c..78378410f444de585490bc271428e806ef17205f 100644 (file)
@@ -206,12 +206,12 @@ static struct dm_cros_ec_ops cros_ec_ops = {
 };
 
 static const struct udevice_id cros_ec_ids[] = {
-       { .compatible = "google,cros-ec" },
+       { .compatible = "google,cros-ec-lpc" },
        { }
 };
 
 U_BOOT_DRIVER(cros_ec_lpc) = {
-       .name           = "cros_ec",
+       .name           = "cros_ec_lpc",
        .id             = UCLASS_CROS_EC,
        .of_match       = cros_ec_ids,
        .probe          = cros_ec_probe,
index fa7d669ca7a10c00c7c8d13eb8c09bc21eea8745..df41e82bc9a91f90e8776b8b8b5e02b20e7df522 100644 (file)
@@ -557,12 +557,12 @@ struct dm_cros_ec_ops cros_ec_ops = {
 };
 
 static const struct udevice_id cros_ec_ids[] = {
-       { .compatible = "google,cros-ec" },
+       { .compatible = "google,cros-ec-sandbox" },
        { }
 };
 
 U_BOOT_DRIVER(cros_ec_sandbox) = {
-       .name           = "cros_ec",
+       .name           = "cros_ec_sandbox",
        .id             = UCLASS_CROS_EC,
        .of_match       = cros_ec_ids,
        .probe          = cros_ec_probe,
index 98e8f604c64a7140c480e33c98fc20a18315297c..ac2ee86edae62c8dc8a30bbd7a97c7f826cf2eda 100644 (file)
@@ -165,12 +165,12 @@ static struct dm_cros_ec_ops cros_ec_ops = {
 };
 
 static const struct udevice_id cros_ec_ids[] = {
-       { .compatible = "google,cros-ec" },
+       { .compatible = "google,cros-ec-spi" },
        { }
 };
 
 U_BOOT_DRIVER(cros_ec_spi) = {
-       .name           = "cros_ec",
+       .name           = "cros_ec_spi",
        .id             = UCLASS_CROS_EC,
        .of_match       = cros_ec_ids,
        .probe          = cros_ec_probe,
index c038fa8b36fd204bf6ea0e0cd39c862bf214d7fd..d14e06ababd543e2132c35f2414a9b037a47229c 100644 (file)
@@ -152,7 +152,6 @@ enum fdt_compat_id {
        COMPAT_INFINEON_SLB9635_TPM,    /* Infineon SLB9635 TPM */
        COMPAT_INFINEON_SLB9645_TPM,    /* Infineon SLB9645 TPM */
        COMPAT_SAMSUNG_EXYNOS5_I2C,     /* Exynos5 High Speed I2C Controller */
-       COMPAT_SANDBOX_HOST_EMULATION,  /* Sandbox emulation of a function */
        COMPAT_SANDBOX_LCD_SDL,         /* Sandbox LCD emulation with SDL */
        COMPAT_TI_TPS65090,             /* Texas Instrument TPS65090 */
        COMPAT_NXP_PTN3460,             /* NXP PTN3460 DP/LVDS bridge */
index 9ed610e4b3fd894b264ebd74107ef095e54f49e6..331eae2ce1e093f04efa6ba055c485efc9a3c1f1 100644 (file)
@@ -60,7 +60,6 @@ static const char * const compat_names[COMPAT_COUNT] = {
        COMPAT(INFINEON_SLB9635_TPM, "infineon,slb9635-tpm"),
        COMPAT(INFINEON_SLB9645_TPM, "infineon,slb9645-tpm"),
        COMPAT(SAMSUNG_EXYNOS5_I2C, "samsung,exynos5-hsi2c"),
-       COMPAT(SANDBOX_HOST_EMULATION, "sandbox,host-emulation"),
        COMPAT(SANDBOX_LCD_SDL, "sandbox,lcd-sdl"),
        COMPAT(TI_TPS65090, "ti,tps65090"),
        COMPAT(COMPAT_NXP_PTN3460, "nxp,ptn3460"),