blob: 42dfd6100a2decde80ae81c6b88d81e316c40dff [file] [log] [blame]
John Crispin85639912013-01-21 18:25:59 +01001/*
2 * This program is free software; you can redistribute it and/or modify it
3 * under the terms of the GNU General Public License version 2 as published
4 * by the Free Software Foundation.
5 *
6 * Copyright (C) 2013 John Crispin <blogic@openwrt.org>
7 */
8
9#ifndef _RALINK_COMMON_H__
10#define _RALINK_COMMON_H__
11
12#define RAMIPS_SYS_TYPE_LEN 32
13
14struct ralink_pinmux_grp {
15 const char *name;
16 u32 mask;
17 int gpio_first;
18 int gpio_last;
19};
20
21struct ralink_pinmux {
22 struct ralink_pinmux_grp *mode;
23 struct ralink_pinmux_grp *uart;
24 int uart_shift;
John Crispineb638752013-04-12 12:45:27 +020025 u32 uart_mask;
John Crispin85639912013-01-21 18:25:59 +010026 void (*wdt_reset)(void);
Gabor Juhos946fda62013-04-12 12:40:23 +020027 struct ralink_pinmux_grp *pci;
28 int pci_shift;
29 u32 pci_mask;
John Crispin85639912013-01-21 18:25:59 +010030};
John Crispin4114b6a2013-04-12 22:12:09 +020031extern struct ralink_pinmux rt_gpio_pinmux;
John Crispin85639912013-01-21 18:25:59 +010032
33struct ralink_soc_info {
34 unsigned char sys_type[RAMIPS_SYS_TYPE_LEN];
35 unsigned char *compatible;
John Crispin629e39e2013-04-13 15:10:14 +020036
37 unsigned long mem_base;
38 unsigned long mem_size;
39 unsigned long mem_size_min;
40 unsigned long mem_size_max;
John Crispin85639912013-01-21 18:25:59 +010041};
42extern struct ralink_soc_info soc_info;
43
44extern void ralink_of_remap(void);
45
46extern void ralink_clk_init(void);
47extern void ralink_clk_add(const char *dev, unsigned long rate);
48
John Crispin2a153f12013-09-04 00:16:59 +020049extern void ralink_rst_init(void);
50
John Crispin85639912013-01-21 18:25:59 +010051extern void prom_soc_init(struct ralink_soc_info *soc_info);
52
53__iomem void *plat_of_remap_node(const char *node);
54
55#endif /* _RALINK_COMMON_H__ */