#include <linux/gpio/driver.h>
#include <linux/io.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#define MAX_GPIO …
struct creg_layout { … };
struct creg_gpio { … };
static void creg_gpio_set(struct gpio_chip *gc, unsigned int offset, int val)
{ … }
static int creg_gpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val)
{ … }
static int creg_gpio_validate_pg(struct device *dev, struct creg_gpio *hcg,
int i)
{ … }
static int creg_gpio_validate(struct device *dev, struct creg_gpio *hcg,
u32 ngpios)
{ … }
static const struct creg_layout hsdk_cs_ctl = …;
static const struct creg_layout axs10x_flsh_cs_ctl = …;
static const struct of_device_id creg_gpio_ids[] = …;
static int creg_gpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver creg_gpio_snps_driver = …;
builtin_platform_driver(…) …;