summaryrefslogtreecommitdiff
path: root/src/soc/broadcom/cygnus/include
diff options
context:
space:
mode:
authorIcarus Chau <ichau@broadcom.com>2015-03-03 19:36:03 -0800
committerPatrick Georgi <pgeorgi@google.com>2015-04-22 08:57:18 +0200
commit985589592753b380c54300b38d6d3ec259c4a240 (patch)
tree21e038be7590eaa3d07bbf9516667ab2ef14fd17 /src/soc/broadcom/cygnus/include
parent82c706e8f0d8b0a5d412170849d45ff4d885655c (diff)
broadcom/cygnus: Enable gpio on romstage
BUG=chrome-os-partner:35936 BRANCH=broadcom-firmware TEST=When enable configuration CYGNUS_GPIO_TEST, print on console: Start gpio test... [gpio_crmu] gpio:0 set input [gpio_crmu] gpio:0 set pullup:0 GPIO get 170=0 gpio request enable pin=64 offset=0x1c .... GPIO set 69=1 [gpio_asiu] gpio:45 set, value:0 GPIO set 69=0 Gpio test completed... Additional test: Measure on GPIO 69 to confirm the voltage change. Apply voltage on AON_GPIO0 to check reading. Change-Id: I634cffccc7f0fa198317a92e3f1670ae6828892e Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 4784e5d88b9f7acb70bd6f6b12b1096f092f34b8 Original-Signed-off-by: Icarus Chau <ichau@broadcom.com> Original-Reviewed-on: https://chrome-internal-review.googlesource.com/204537 Original-Reviewed-by: Daisuke Nojiri <dnojiri@google.com> Original-Change-Id: Ia4f833be80d7844c2d014c9ffcf587d385e7766c Original-Reviewed-on: https://chromium-review.googlesource.com/263495 Original-Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Original-Trybot-Ready: Daisuke Nojiri <dnojiri@chromium.org> Original-Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: http://review.coreboot.org/9907 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/soc/broadcom/cygnus/include')
-rw-r--r--src/soc/broadcom/cygnus/include/soc/addressmap.h2
-rw-r--r--src/soc/broadcom/cygnus/include/soc/gpio.h29
2 files changed, 31 insertions, 0 deletions
diff --git a/src/soc/broadcom/cygnus/include/soc/addressmap.h b/src/soc/broadcom/cygnus/include/soc/addressmap.h
index a9af3d805f..22ef4c430c 100644
--- a/src/soc/broadcom/cygnus/include/soc/addressmap.h
+++ b/src/soc/broadcom/cygnus/include/soc/addressmap.h
@@ -25,4 +25,6 @@
#define IPROC_QSPI_BASE 0x18047000
+#define IPROC_IOMUX_OVERRIDE_BASE 0x0301D24C
+
#endif /* __SOC_BROADCOM_CYGNUS_ADDRESSMAP_H__ */
diff --git a/src/soc/broadcom/cygnus/include/soc/gpio.h b/src/soc/broadcom/cygnus/include/soc/gpio.h
index 2d9d8f4911..69f06ce0fb 100644
--- a/src/soc/broadcom/cygnus/include/soc/gpio.h
+++ b/src/soc/broadcom/cygnus/include/soc/gpio.h
@@ -1,8 +1,37 @@
+/*
+* Copyright (C) 2015 Broadcom Corporation
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License as
+* published by the Free Software Foundation version 2.
+*
+* This program is distributed "as is" WITHOUT ANY WARRANTY of any
+* kind, whether express or implied; without even the implied warranty
+* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*/
+
#ifndef __SOC_BROADCOM_CYGNUS_GPIO_H__
#define __SOC_BROADCOM_CYGNUS_GPIO_H__
#include <types.h>
+#define ENOTSUPP 524 /* Operation is not supported */
+
+/* Supported GPIO types. Not all of these types are supported on all boards. */
+enum iproc_gpio_types {
+ IPROC_GPIO_CCA_ID,
+ IPROC_GPIO_CMICM_ID,
+ IPROC_GPIO_ASIU_ID
+};
+
typedef u32 gpio_t;
+
+void *cygnus_pinmux_init(void);
+int cygnus_gpio_request_enable(void *priv, unsigned pin);
+void cygnus_gpio_disable_free(void *priv, unsigned pin);
+void gpio_init(void);
+void gpio_free(gpio_t gpio);
+
#endif /* __SOC_BROADCOM_CYGNUS_GPIO_H__ */