diff options
author | Icarus Chau <ichau@broadcom.com> | 2015-03-03 19:36:03 -0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-04-22 08:57:18 +0200 |
commit | 985589592753b380c54300b38d6d3ec259c4a240 (patch) | |
tree | 21e038be7590eaa3d07bbf9516667ab2ef14fd17 /src/soc/broadcom/cygnus/include | |
parent | 82c706e8f0d8b0a5d412170849d45ff4d885655c (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.h | 2 | ||||
-rw-r--r-- | src/soc/broadcom/cygnus/include/soc/gpio.h | 29 |
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__ */ |