diff options
Diffstat (limited to 'util/gpios_to_zephyr_dts.c')
-rw-r--r-- | util/gpios_to_zephyr_dts.c | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/util/gpios_to_zephyr_dts.c b/util/gpios_to_zephyr_dts.c deleted file mode 100644 index 166c16dde7..0000000000 --- a/util/gpios_to_zephyr_dts.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Copyright 2021 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. - */ - -/* - * This code is intended for developer use to convert a CrOS EC OS - * "gpio.inc" file into the expected device-tree format for Zephyr. - * The only use of it is to do a proof-of-concept build of a CrOS EC - * device using Zephyr OS, as Zephyr-only devices won't have a - * equivalent CrOS EC build. - * - * It does not handle all cases (i.e., low voltage selection), and - * some manual modifications to the output may be required. - * - ********************************************************************** - * DO NOT CREATE TESTS, SYSTEMS, OR INFRASTRUCTURE WHICH RELIES ON * - * THIS CODE. It's seriously ugly code that's probably prone to * - * breakage. It leaks memory. In other words, consider it * - * "contrib-quality" code that should be deleted one day (once we are * - * no longer doing proof-of-concept Zephyr builds). * - ********************************************************************** - * - * To compile: - * gcc -Iboard/${BOARD} -std=gnu11 util/gpios_to_zephyr_dts.c \ - * -o /tmp/print_gpios - * - * Then run /tmp/print_gpios and paste the result into your gpio DTS - * overlay. - */ - -#define _POSIX_C_SOURCE 200809L - -#include <ctype.h> -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -/* - * Implement the macros used in the gpio.inc files, but print DTS - * format equivalents. - */ -#define GPIO_INT_RISING GPIO_INPUT -#define GPIO_INT_FALLING GPIO_INPUT -#define GPIO_INT_BOTH GPIO_INPUT -#define GPIO_HIB_WAKE_HIGH 0 -#define GPIO_HIB_WAKE_LOW 0 -#define GPIO_LOCKED 0 -#define GPIO_SEL_1P8V 0 -#define GPIO_INT(name, pin, opts, int) GPIO(name, pin, opts) -#define GPIO(name, pin, opts) _gpio(#name, pin, opts) -#define UNUSED(pin) -#define UNIMPLEMENTED(name) -#define _gpio(name, pin, opts) \ - printf("%s {\n\tgpios = <&%s %s>;\n\tlabel = %s;\n};\n", \ - strlower(name), strlower(pin), \ - maybe_parens(strip_zero_ors(#opts)), #name); -#define PIN(A, B) "gpio" #A " " #B -#define ALTERNATE(...) -#define IOEX(...) -#define IOEX_INT(...) - -/* Strip out " | 0" and "0 | " from a string */ -static char *strip_zero_ors(const char *s) -{ - char *out = malloc(strlen(s) + 2); - const char *rd_ptr = s; - char *wr_ptr = out; - - while (*rd_ptr) { - if (!strncmp(rd_ptr, " | 0", 4) || - !strncmp(rd_ptr, "0 | ", 4)) { - rd_ptr += 4; - } else { - *wr_ptr = *rd_ptr; - rd_ptr++; - wr_ptr++; - } - } - - *wr_ptr = '\0'; - return out; -} - -/* - * Add parenthesis around the outside of a string if it contains the - * '|' character. - */ -static char *maybe_parens(const char *s) -{ - size_t out_sz = strlen(s) + 3; - char *out = malloc(out_sz); - - if (strchr(s, '|')) - snprintf(out, out_sz, "(%s)", s); - else - snprintf(out, out_sz, "%s", s); - - return out; -} - -/* Convert a string to lowercase */ -static char *strlower(const char *s) -{ - char *out = strdup(s); - - for (int i = 0; out[i]; i++) - out[i] = tolower(out[i]); - - return out; -} - -int main(int argc, char *argv[]) -{ -#include "gpio.inc" - return 0; -} |