1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  *
4  *  Copyright (C) 2004 IDT Inc.
5  *  Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org>
6  */
7 #ifndef __ASM_RC32434_RB_H
8 #define __ASM_RC32434_RB_H
9 
10 #include <linux/genhd.h>
11 
12 #define REGBASE		0x18000000
13 #define IDT434_REG_BASE ((volatile void *) KSEG1ADDR(REGBASE))
14 #define UART0BASE	0x58000
15 #define RST		(1 << 15)
16 #define DEV0BASE	0x010000
17 #define DEV0MASK	0x010004
18 #define DEV0C		0x010008
19 #define DEV0T		0x01000C
20 #define DEV1BASE	0x010010
21 #define DEV1MASK	0x010014
22 #define DEV1C		0x010018
23 #define DEV1TC		0x01001C
24 #define DEV2BASE	0x010020
25 #define DEV2MASK	0x010024
26 #define DEV2C		0x010028
27 #define DEV2TC		0x01002C
28 #define DEV3BASE	0x010030
29 #define DEV3MASK	0x010034
30 #define DEV3C		0x010038
31 #define DEV3TC		0x01003C
32 #define BTCS		0x010040
33 #define BTCOMPARE	0x010044
34 #define GPIOBASE	0x050000
35 /* Offsets relative to GPIOBASE */
36 #define GPIOFUNC	0x00
37 #define GPIOCFG		0x04
38 #define GPIOD		0x08
39 #define GPIOILEVEL	0x0C
40 #define GPIOISTAT	0x10
41 #define GPIONMIEN	0x14
42 #define IMASK6		0x38
43 #define LO_WPX		(1 << 0)
44 #define LO_ALE		(1 << 1)
45 #define LO_CLE		(1 << 2)
46 #define LO_CEX		(1 << 3)
47 #define LO_FOFF		(1 << 5)
48 #define LO_SPICS	(1 << 6)
49 #define LO_ULED		(1 << 7)
50 
51 #define BIT_TO_MASK(x)	(1 << x)
52 
53 struct dev_reg {
54 	u32	base;
55 	u32	mask;
56 	u32	ctl;
57 	u32	timing;
58 };
59 
60 struct korina_device {
61 	char *name;
62 	unsigned char mac[6];
63 	struct net_device *dev;
64 };
65 
66 struct mpmc_device {
67 	unsigned char	state;
68 	spinlock_t	lock;
69 	void __iomem	*base;
70 };
71 
72 extern void set_latch_u5(unsigned char or_mask, unsigned char nand_mask);
73 extern unsigned char get_latch_u5(void);
74 
75 #endif	/* __ASM_RC32434_RB_H */
76