| /* |
| * Amlogic SPI flash controller(SPIFC) |
| * |
| * Copyright (C) 2017 Amlogic Corporation |
| * |
| * Licensed under the GPL-2 or later. |
| * |
| */ |
| |
| #ifndef __SPIFC_H__ |
| #define __SPIFC_H__ |
| |
| #define SPIFC_DEFAULT_CLK_RATE 166666666 |
| /* |
| * @reg: controller registers address. |
| * @mem_map: memory_mapped for read operations. |
| * @clk_get(): callback to get spifc clk pointer. |
| * ret: should be "struct clk *" |
| * dev: should be "struct udevice *" |
| * @clk_get_rate(): |
| * @clk_enable(): |
| * @pinctrl_get(): callback to get spifc pinctrl pointer. |
| * ret: should be "struct pinctrl *" |
| * dev: should be "struct udevice *" |
| * @num_chipselect: |
| * @cs_gpios: |
| */ |
| |
| /* |
| * spifc driver will use the default clk81 rate 1666666666 |
| * if without following platform callbacks. |
| static void* spifc_clk_get(void *dev, char *name) |
| { return NULL; } |
| static int spifc_clk_get_rate(void *clk) |
| { return 1666666666; } |
| static int spifc_clk_enable(void *clk, bool enable) |
| { return 0; } |
| static void* spifc_pinctrl_get(void *dev, char *name) |
| { return NULL; } |
| */ |
| |
| struct spifc_platdata { |
| ulong reg; |
| ulong mem_map; |
| void *(*clk_get)(void *dev, char *name); |
| int (*clk_get_rate)(void *clk); |
| int (*clk_enable)(void *clk, bool enable); |
| void *(*pinctrl_get)(void *dev, char *name); |
| int (*pinctrl_enable)(void *pinctrl, bool enable); |
| int num_chipselect; |
| int *cs_gpios; |
| }; |
| |
| #endif /* __SPIFC_H__ */ |