diff options
Diffstat (limited to 'include/gpio.wrap')
-rw-r--r-- | include/gpio.wrap | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/gpio.wrap b/include/gpio.wrap new file mode 100644 index 0000000000..941d97ac67 --- /dev/null +++ b/include/gpio.wrap @@ -0,0 +1,47 @@ +/* -*- mode:c -*- + * + * Copyright (c) 2014 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* + * The GPIO macro is used to define a new GPIO pin name and function. + * + * The name is used to populate the gpio_signal enum by first prepending GPIO_ + * to the name. It is also used to construct the string name that is presented + * in the shell interface. Similarly, the port parameter has GPIO_ prepended to + * it before it is used to initialize the port base address of a gpio_info + * struct. The pin number is used to create a bitmask. The flags and signal + * parameters are passed on to the gpio_info directly. + */ +#ifndef GPIO +#define GPIO(name, port, pin, function, signal) +#endif + +/* + * The UNIMPLEMENTED macro is used to define a GPIO that doesn't actually exist. + * + * Some GPIO names are well known and used by generic code, ENTERING_RW and WP_L + * are examples. If a particular board doesn't have a GPIO assigned to such a + * function/name then it should specify that that GPIO is not implemented using + * the UNIMPLEMENTED macro below in the board gpio.inc file. This macro creates + * an entry in the gpio_signal enum and the gpio_list array that is initialized + * to use the DUMMY_GPIO_BANK and a bitmask of zero. The chip GPIO layer is + * implemented such that writes to and reads from DUMMY_GPIO_BANK with a bitmask + * of zero are harmless. + * + * This allows common code that expects these GPIOs to exist to compile and have + * some reduced functionality. + */ +#ifndef UNIMPLEMENTED +#define UNIMPLEMENTED(name) +#endif + +#include "gpio.inc" + +/* + * Once the gpio.inc file has been included these macros are no longer needed. + */ +#undef GPIO +#undef UNIMPLEMENTED |