[U-Boot] [PATCH v2 23/28] x86: Add an i8042 device for boards that have it

Bin Meng bmeng.cn at gmail.com
Fri Oct 23 06:41:34 CEST 2015


On Mon, Oct 19, 2015 at 11:17 AM, Simon Glass <sjg at chromium.org> wrote:
> Some boards have an i8042 device. Enable the driver for all x86 boards, and
> add a device tree node for those which may have this keyboard.
>
> Also adjust the configuration so that i8042 is always separate from the VGA,
> and rename the stdin driver accordingly. With this commit the keyboard will
> not work, but it is fixed in the next commit.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2:
> - Drop CONFIG_VGA_AS_SINGLE_DEVICE from all x86 board config files
>
>  arch/x86/Kconfig                         |  6 ++++++
>  arch/x86/dts/bayleybay.dts               |  1 +
>  arch/x86/dts/chromebook_link.dts         |  5 +++++
>  arch/x86/dts/keyboard.dtsi               |  5 +++++
>  doc/device-tree-bindings/input/i8042.txt | 10 ++++++++++
>  include/configs/bayleybay.h              |  3 ---
>  include/configs/chromebox_panther.h      |  2 --
>  include/configs/minnowmax.h              |  1 -
>  include/configs/x86-chromebook.h         |  2 +-
>  include/configs/x86-common.h             |  2 +-
>  10 files changed, 29 insertions(+), 8 deletions(-)
>  create mode 100644 arch/x86/dts/keyboard.dtsi
>  create mode 100644 doc/device-tree-bindings/input/i8042.txt
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 5e42d7d..72a66ea 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -401,6 +401,12 @@ config PCIE_ECAM_SIZE
>           so a default 0x10000000 size covers all of the 256 buses which is the
>           maximum number of PCI buses as defined by the PCI specification.
>
> +config I8042_KEYB
> +       default y
> +
> +config DM_KEYBOARD
> +       default y
> +
>  source "arch/x86/lib/efi/Kconfig"
>
>  endmenu
> diff --git a/arch/x86/dts/bayleybay.dts b/arch/x86/dts/bayleybay.dts
> index d646987..58d97c8 100644
> --- a/arch/x86/dts/bayleybay.dts
> +++ b/arch/x86/dts/bayleybay.dts
> @@ -10,6 +10,7 @@
>  #include <dt-bindings/interrupt-router/intel-irq.h>
>
>  /include/ "skeleton.dtsi"
> +/include/ "keyboard.dtsi"
>  /include/ "serial.dtsi"
>  /include/ "rtc.dtsi"
>
> diff --git a/arch/x86/dts/chromebook_link.dts b/arch/x86/dts/chromebook_link.dts
> index 4291141..f09868b 100644
> --- a/arch/x86/dts/chromebook_link.dts
> +++ b/arch/x86/dts/chromebook_link.dts
> @@ -1,6 +1,7 @@
>  /dts-v1/;
>
>  /include/ "skeleton.dtsi"
> +/include/ "keyboard.dtsi"
>  /include/ "serial.dtsi"
>  /include/ "rtc.dtsi"
>
> @@ -41,6 +42,10 @@
>                 stdout-path = "/serial";
>         };
>
> +       keyboard {
> +               intel,duplicate-por;
> +       };
> +
>         spd {
>                 compatible = "memory-spd";
>                 #address-cells = <1>;
> diff --git a/arch/x86/dts/keyboard.dtsi b/arch/x86/dts/keyboard.dtsi
> new file mode 100644
> index 0000000..000751b
> --- /dev/null
> +++ b/arch/x86/dts/keyboard.dtsi
> @@ -0,0 +1,5 @@
> +/ {
> +       keyboard {
> +               compatible = "intel,i8042-keyboard";
> +       };
> +};
> diff --git a/doc/device-tree-bindings/input/i8042.txt b/doc/device-tree-bindings/input/i8042.txt
> new file mode 100644
> index 0000000..cd079c2
> --- /dev/null
> +++ b/doc/device-tree-bindings/input/i8042.txt
> @@ -0,0 +1,10 @@
> +i8042 Keyboard
> +
> +The Intel i8042 is a keyboard controller used on many x86 PCs.
> +
> +Required properties:
> +- compatible: "intel,i8042-keyboard"
> +
> +Optional properties:
> +- intel,duplicate-por: Indicates that a keyboard reset may result in a
> +  duplicate POR byte, which should be ignored.
> diff --git a/include/configs/bayleybay.h b/include/configs/bayleybay.h
> index 1ba2998..ac6b45b 100644
> --- a/include/configs/bayleybay.h
> +++ b/include/configs/bayleybay.h
> @@ -33,9 +33,6 @@
>  #define CONFIG_MMC_SDMA
>  #define CONFIG_CMD_MMC
>
> -/* BayTrail IGD support */
> -#define CONFIG_VGA_AS_SINGLE_DEVICE
> -
>  /* Environment configuration */
>  #define CONFIG_ENV_SECT_SIZE           0x1000
>  #define CONFIG_ENV_OFFSET              0x006ff000
> diff --git a/include/configs/chromebox_panther.h b/include/configs/chromebox_panther.h
> index dc732b8..00fe26d 100644
> --- a/include/configs/chromebox_panther.h
> +++ b/include/configs/chromebox_panther.h
> @@ -14,6 +14,4 @@
>  /* Avoid a warning in the Realtek Ethernet driver */
>  #define CONFIG_SYS_CACHELINE_SIZE 16
>
> -#define CONFIG_VGA_AS_SINGLE_DEVICE
> -
>  #endif /* __CONFIG_H */
> diff --git a/include/configs/minnowmax.h b/include/configs/minnowmax.h
> index 53d86a2..c90af40 100644
> --- a/include/configs/minnowmax.h
> +++ b/include/configs/minnowmax.h
> @@ -43,7 +43,6 @@
>
>  #define VIDEO_IO_OFFSET                                0
>  #define CONFIG_X86EMU_RAW_IO
> -#define CONFIG_VGA_AS_SINGLE_DEVICE
>
>  #define CONFIG_FIT_SIGNATURE
>  #define CONFIG_RSA
> diff --git a/include/configs/x86-chromebook.h b/include/configs/x86-chromebook.h
> index 2be8850..4ff8b94 100644
> --- a/include/configs/x86-chromebook.h
> +++ b/include/configs/x86-chromebook.h
> @@ -51,7 +51,7 @@
>  #define CONFIG_ENV_IS_IN_SPI_FLASH
>  #define CONFIG_ENV_OFFSET              0x003f8000
>
> -#define CONFIG_STD_DEVICES_SETTINGS     "stdin=usbkbd,vga,serial\0" \
> +#define CONFIG_STD_DEVICES_SETTINGS     "stdin=usbkbd,i8042-kbd,serial\0" \
>                                         "stdout=vga,serial\0" \
>                                         "stderr=vga,serial\0"
>
> diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h
> index 3f153f2..ff8fe0f 100644
> --- a/include/configs/x86-common.h
> +++ b/include/configs/x86-common.h
> @@ -147,7 +147,7 @@
>  #define CONFIG_VIDEO
>  #define CONFIG_VIDEO_SW_CURSOR
>  #define VIDEO_FB_16BPP_WORD_SWAP
> -#define CONFIG_I8042_KBD
> +#define CONFIG_VGA_AS_SINGLE_DEVICE
>  #define CONFIG_CFB_CONSOLE
>  #define CONFIG_CONSOLE_SCROLL_LINES 5
>
> --

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list