Patchwork [U-Boot,v4,7/7] cros: enable cros-ec for smdk5250

login
register
mail settings
Submitter Hung-ying Tyan
Date April 2, 2013, 10:01 a.m.
Message ID <1364896914-17868-8-git-send-email-tyanh@chromium.org>
Download mbox | patch
Permalink /patch/232936/
State Changes Requested
Delegated to: Tom Rini
Headers show

Comments

Hung-ying Tyan - April 2, 2013, 10:01 a.m.
This patch initiates cros-ec in board_init() to enable it for smdk5250.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
---
Changes in v4: None
Changes in v3: None
Changes in v2:
- Moved code from smdk5250.c (non-FDT) to exynos5-dt.c (FDT).
- Moved code from smdk5250.h to exynos5250-dt.h.
- Added commit message.
- Dropped the period from commit subject.

 board/samsung/smdk5250/exynos5-dt.c | 45 +++++++++++++++++++++++++++++++++++++
 include/configs/exynos5250-dt.h     | 10 ++++++++-
 2 files changed, 54 insertions(+), 1 deletion(-)
Simon Glass - April 4, 2013, 8:17 p.m.
On Tue, Apr 2, 2013 at 3:01 AM, Hung-ying Tyan <tyanh@chromium.org> wrote:

> This patch initiates cros-ec in board_init() to enable it for smdk5250.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
> Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
> ---
> Changes in v4: None
> Changes in v3: None
> Changes in v2:
> - Moved code from smdk5250.c (non-FDT) to exynos5-dt.c (FDT).
> - Moved code from smdk5250.h to exynos5250-dt.h.
> - Added commit message.
> - Dropped the period from commit subject.
>

Acked-by: Simon Glass <sjg@chromium.org>
Simon Glass - April 16, 2013, 8:42 p.m.
Hi Minkyu,

On Thu, Apr 4, 2013 at 1:17 PM, Simon Glass <sjg@chromium.org> wrote:
> On Tue, Apr 2, 2013 at 3:01 AM, Hung-ying Tyan <tyanh@chromium.org> wrote:
>>
>> This patch initiates cros-ec in board_init() to enable it for smdk5250.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
>> Signed-off-by: Hung-ying Tyan <tyanh@chromium.org>
>> ---
>> Changes in v4: None
>> Changes in v3: None
>> Changes in v2:
>> - Moved code from smdk5250.c (non-FDT) to exynos5-dt.c (FDT).
>> - Moved code from smdk5250.h to exynos5250-dt.h.
>> - Added commit message.
>> - Dropped the period from commit subject.
>
>
> Acked-by: Simon Glass <sjg@chromium.org>
>

I see now that this patch has the wrong tag (cros: but should be
exynos:) and so perhaps you didn't see it. It was queued up for the
current release but may be too late now - can you please take a look?

Regards,
Simon

Patch

diff --git a/board/samsung/smdk5250/exynos5-dt.c b/board/samsung/smdk5250/exynos5-dt.c
index b01fe72..8be3192 100644
--- a/board/samsung/smdk5250/exynos5-dt.c
+++ b/board/samsung/smdk5250/exynos5-dt.c
@@ -21,6 +21,7 @@ 
  */
 
 #include <common.h>
+#include <cros_ec.h>
 #include <fdtdec.h>
 #include <asm/io.h>
 #include <errno.h>
@@ -39,6 +40,13 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
+struct local_info {
+	struct cros_ec_dev *cros_ec_dev;	/* Pointer to cros_ec device */
+	int cros_ec_err;			/* Error for cros_ec, 0 if ok */
+};
+
+static struct local_info local;
+
 #ifdef CONFIG_USB_EHCI_EXYNOS
 int board_usb_vbus_init(void)
 {
@@ -55,12 +63,30 @@  int board_usb_vbus_init(void)
 }
 #endif
 
+struct cros_ec_dev *board_get_cros_ec_dev(void)
+{
+	return local.cros_ec_dev;
+}
+
+static int board_init_cros_ec_devices(const void *blob)
+{
+	local.cros_ec_err = cros_ec_init(blob, &local.cros_ec_dev);
+	if (local.cros_ec_err)
+		return -1;  /* Will report in board_late_init() */
+
+	return 0;
+}
+
 int board_init(void)
 {
 	gd->bd->bi_boot_params = (PHYS_SDRAM_1 + 0x100UL);
 #ifdef CONFIG_EXYNOS_SPI
 	spi_init();
 #endif
+
+	if (board_init_cros_ec_devices(gd->fdt_blob))
+		return -1;
+
 #ifdef CONFIG_USB_EHCI_EXYNOS
 	board_usb_vbus_init();
 #endif
@@ -337,3 +363,22 @@  int board_early_init_f(void)
 	return err;
 }
 #endif
+
+#ifdef CONFIG_BOARD_LATE_INIT
+int board_late_init(void)
+{
+	stdio_print_current_devices();
+
+	if (local.cros_ec_err) {
+		/* Force console on */
+		gd->flags &= ~GD_FLG_SILENT;
+
+		printf("cros-ec communications failure %d\n",
+		       local.cros_ec_err);
+		puts("\nPlease reset with Power+Refresh\n\n");
+		panic("Cannot init cros-ec device");
+		return -1;
+	}
+	return 0;
+}
+#endif
diff --git a/include/configs/exynos5250-dt.h b/include/configs/exynos5250-dt.h
index 0721c17..80dfce7 100644
--- a/include/configs/exynos5250-dt.h
+++ b/include/configs/exynos5250-dt.h
@@ -77,11 +77,19 @@ 
 #define CONFIG_BAUDRATE			115200
 #define EXYNOS5_DEFAULT_UART_OFFSET	0x010000
 
+/* Enable keyboard */
+#define CONFIG_CROS_EC		/* CROS_EC protocol */
+#define CONFIG_CROS_EC_SPI		/* Support CROS_EC over SPI */
+#define CONFIG_CROS_EC_I2C		/* Support CROS_EC over I2C */
+#define CONFIG_CROS_EC_KEYB	/* CROS_EC keyboard input */
+#define CONFIG_CMD_CROS_EC
+#define CONFIG_KEYBOARD
+
 /* Console configuration */
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_SYS_CONSOLE_IS_IN_ENV
 #define EXYNOS_DEVICE_SETTINGS \
-		"stdin=serial\0" \
+		"stdin=serial,cros-ec-keyb\0" \
 		"stdout=serial,lcd\0" \
 		"stderr=serial,lcd\0"