From 985589592753b380c54300b38d6d3ec259c4a240 Mon Sep 17 00:00:00 2001 From: Icarus Chau Date: Tue, 3 Mar 2015 19:36:03 -0800 Subject: 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 Original-Commit-Id: 4784e5d88b9f7acb70bd6f6b12b1096f092f34b8 Original-Signed-off-by: Icarus Chau Original-Reviewed-on: https://chrome-internal-review.googlesource.com/204537 Original-Reviewed-by: Daisuke Nojiri Original-Change-Id: Ia4f833be80d7844c2d014c9ffcf587d385e7766c Original-Reviewed-on: https://chromium-review.googlesource.com/263495 Original-Reviewed-by: Daisuke Nojiri Original-Commit-Queue: Daisuke Nojiri Original-Trybot-Ready: Daisuke Nojiri Original-Tested-by: Daisuke Nojiri Reviewed-on: http://review.coreboot.org/9907 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/soc/broadcom/cygnus/include/soc/addressmap.h | 2 ++ src/soc/broadcom/cygnus/include/soc/gpio.h | 29 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) (limited to 'src/soc/broadcom/cygnus/include') 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 +#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__ */ -- cgit v1.2.3