xref: /linux/arch/m68k/include/asm/bvme6000hw.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
249148020SSam Ravnborg #ifndef _M68K_BVME6000HW_H_
349148020SSam Ravnborg #define _M68K_BVME6000HW_H_
449148020SSam Ravnborg 
549148020SSam Ravnborg #include <asm/irq.h>
649148020SSam Ravnborg 
749148020SSam Ravnborg /*
849148020SSam Ravnborg  * PIT structure
949148020SSam Ravnborg  */
1049148020SSam Ravnborg 
1149148020SSam Ravnborg #define BVME_PIT_BASE	0xffa00000
1249148020SSam Ravnborg 
1349148020SSam Ravnborg typedef struct {
1449148020SSam Ravnborg 	unsigned char
1549148020SSam Ravnborg 	pad_a[3], pgcr,
1649148020SSam Ravnborg 	pad_b[3], psrr,
1749148020SSam Ravnborg 	pad_c[3], paddr,
1849148020SSam Ravnborg 	pad_d[3], pbddr,
1949148020SSam Ravnborg 	pad_e[3], pcddr,
2049148020SSam Ravnborg 	pad_f[3], pivr,
2149148020SSam Ravnborg 	pad_g[3], pacr,
2249148020SSam Ravnborg 	pad_h[3], pbcr,
2349148020SSam Ravnborg 	pad_i[3], padr,
2449148020SSam Ravnborg 	pad_j[3], pbdr,
2549148020SSam Ravnborg 	pad_k[3], paar,
2649148020SSam Ravnborg 	pad_l[3], pbar,
2749148020SSam Ravnborg 	pad_m[3], pcdr,
2849148020SSam Ravnborg 	pad_n[3], psr,
2949148020SSam Ravnborg 	pad_o[3], res1,
3049148020SSam Ravnborg 	pad_p[3], res2,
3149148020SSam Ravnborg 	pad_q[3], tcr,
3249148020SSam Ravnborg 	pad_r[3], tivr,
3349148020SSam Ravnborg 	pad_s[3], res3,
3449148020SSam Ravnborg 	pad_t[3], cprh,
3549148020SSam Ravnborg 	pad_u[3], cprm,
3649148020SSam Ravnborg 	pad_v[3], cprl,
3749148020SSam Ravnborg 	pad_w[3], res4,
3849148020SSam Ravnborg 	pad_x[3], crh,
3949148020SSam Ravnborg 	pad_y[3], crm,
4049148020SSam Ravnborg 	pad_z[3], crl,
4149148020SSam Ravnborg 	pad_A[3], tsr,
4249148020SSam Ravnborg 	pad_B[3], res5;
4349148020SSam Ravnborg } PitRegs_t, *PitRegsPtr;
4449148020SSam Ravnborg 
4549148020SSam Ravnborg #define bvmepit   ((*(volatile PitRegsPtr)(BVME_PIT_BASE)))
4649148020SSam Ravnborg 
4749148020SSam Ravnborg #define BVME_RTC_BASE	0xff900000
4849148020SSam Ravnborg 
4949148020SSam Ravnborg typedef struct {
5049148020SSam Ravnborg 	unsigned char
5149148020SSam Ravnborg 	pad_a[3], msr,
5249148020SSam Ravnborg 	pad_b[3], t0cr_rtmr,
5349148020SSam Ravnborg 	pad_c[3], t1cr_omr,
5449148020SSam Ravnborg 	pad_d[3], pfr_icr0,
5549148020SSam Ravnborg 	pad_e[3], irr_icr1,
5649148020SSam Ravnborg 	pad_f[3], bcd_tenms,
5749148020SSam Ravnborg 	pad_g[3], bcd_sec,
5849148020SSam Ravnborg 	pad_h[3], bcd_min,
5949148020SSam Ravnborg 	pad_i[3], bcd_hr,
6049148020SSam Ravnborg 	pad_j[3], bcd_dom,
6149148020SSam Ravnborg 	pad_k[3], bcd_mth,
6249148020SSam Ravnborg 	pad_l[3], bcd_year,
6349148020SSam Ravnborg 	pad_m[3], bcd_ujcc,
6449148020SSam Ravnborg 	pad_n[3], bcd_hjcc,
6549148020SSam Ravnborg 	pad_o[3], bcd_dow,
6649148020SSam Ravnborg 	pad_p[3], t0lsb,
6749148020SSam Ravnborg 	pad_q[3], t0msb,
6849148020SSam Ravnborg 	pad_r[3], t1lsb,
6949148020SSam Ravnborg 	pad_s[3], t1msb,
7049148020SSam Ravnborg 	pad_t[3], cmp_sec,
7149148020SSam Ravnborg 	pad_u[3], cmp_min,
7249148020SSam Ravnborg 	pad_v[3], cmp_hr,
7349148020SSam Ravnborg 	pad_w[3], cmp_dom,
7449148020SSam Ravnborg 	pad_x[3], cmp_mth,
7549148020SSam Ravnborg 	pad_y[3], cmp_dow,
7649148020SSam Ravnborg 	pad_z[3], sav_sec,
7749148020SSam Ravnborg 	pad_A[3], sav_min,
7849148020SSam Ravnborg 	pad_B[3], sav_hr,
7949148020SSam Ravnborg 	pad_C[3], sav_dom,
8049148020SSam Ravnborg 	pad_D[3], sav_mth,
8149148020SSam Ravnborg 	pad_E[3], ram,
8249148020SSam Ravnborg 	pad_F[3], test;
8349148020SSam Ravnborg } RtcRegs_t, *RtcPtr_t;
8449148020SSam Ravnborg 
8549148020SSam Ravnborg 
8649148020SSam Ravnborg #define BVME_I596_BASE	0xff100000
8749148020SSam Ravnborg 
8849148020SSam Ravnborg #define BVME_ETHIRQ_REG	0xff20000b
8949148020SSam Ravnborg 
9049148020SSam Ravnborg #define BVME_LOCAL_IRQ_STAT  0xff20000f
9149148020SSam Ravnborg 
9249148020SSam Ravnborg #define BVME_ETHERR          0x02
9349148020SSam Ravnborg #define BVME_ABORT_STATUS    0x08
9449148020SSam Ravnborg 
9549148020SSam Ravnborg #define BVME_NCR53C710_BASE	0xff000000
9649148020SSam Ravnborg 
9749148020SSam Ravnborg #define BVME_SCC_A_ADDR	0xffb0000b
9849148020SSam Ravnborg #define BVME_SCC_B_ADDR	0xffb00003
9949148020SSam Ravnborg #define BVME_SCC_RTxC	7372800
10049148020SSam Ravnborg 
10149148020SSam Ravnborg #define BVME_CONFIG_REG	0xff500003
10249148020SSam Ravnborg 
10349148020SSam Ravnborg #define config_reg_ptr	(volatile unsigned char *)BVME_CONFIG_REG
10449148020SSam Ravnborg 
10549148020SSam Ravnborg #define BVME_CONFIG_SW1	0x08
10649148020SSam Ravnborg #define BVME_CONFIG_SW2	0x04
10749148020SSam Ravnborg #define BVME_CONFIG_SW3	0x02
10849148020SSam Ravnborg #define BVME_CONFIG_SW4	0x01
10949148020SSam Ravnborg 
11049148020SSam Ravnborg 
11149148020SSam Ravnborg #define BVME_IRQ_TYPE_PRIO	0
11249148020SSam Ravnborg 
11349148020SSam Ravnborg #define BVME_IRQ_PRN		(IRQ_USER+20)
11449148020SSam Ravnborg #define BVME_IRQ_TIMER		(IRQ_USER+25)
11549148020SSam Ravnborg #define BVME_IRQ_I596		IRQ_AUTO_2
11649148020SSam Ravnborg #define BVME_IRQ_SCSI		IRQ_AUTO_3
11749148020SSam Ravnborg #define BVME_IRQ_RTC		IRQ_AUTO_6
11849148020SSam Ravnborg #define BVME_IRQ_ABORT		IRQ_AUTO_7
11949148020SSam Ravnborg 
12049148020SSam Ravnborg /* SCC interrupts */
12149148020SSam Ravnborg #define BVME_IRQ_SCC_BASE		IRQ_USER
12249148020SSam Ravnborg #define BVME_IRQ_SCCB_TX		IRQ_USER
12349148020SSam Ravnborg #define BVME_IRQ_SCCB_STAT		(IRQ_USER+2)
12449148020SSam Ravnborg #define BVME_IRQ_SCCB_RX		(IRQ_USER+4)
12549148020SSam Ravnborg #define BVME_IRQ_SCCB_SPCOND		(IRQ_USER+6)
12649148020SSam Ravnborg #define BVME_IRQ_SCCA_TX		(IRQ_USER+8)
12749148020SSam Ravnborg #define BVME_IRQ_SCCA_STAT		(IRQ_USER+10)
12849148020SSam Ravnborg #define BVME_IRQ_SCCA_RX		(IRQ_USER+12)
12949148020SSam Ravnborg #define BVME_IRQ_SCCA_SPCOND		(IRQ_USER+14)
13049148020SSam Ravnborg 
13149148020SSam Ravnborg /* Address control registers */
13249148020SSam Ravnborg 
13349148020SSam Ravnborg #define BVME_ACR_A32VBA		0xff400003
13449148020SSam Ravnborg #define BVME_ACR_A32MSK		0xff410003
13549148020SSam Ravnborg #define BVME_ACR_A24VBA		0xff420003
13649148020SSam Ravnborg #define BVME_ACR_A24MSK		0xff430003
13749148020SSam Ravnborg #define BVME_ACR_A16VBA		0xff440003
13849148020SSam Ravnborg #define BVME_ACR_A32LBA		0xff450003
13949148020SSam Ravnborg #define BVME_ACR_A24LBA		0xff460003
14049148020SSam Ravnborg #define BVME_ACR_ADDRCTL	0xff470003
14149148020SSam Ravnborg 
14249148020SSam Ravnborg #define bvme_acr_a32vba		*(volatile unsigned char *)BVME_ACR_A32VBA
14349148020SSam Ravnborg #define bvme_acr_a32msk		*(volatile unsigned char *)BVME_ACR_A32MSK
14449148020SSam Ravnborg #define bvme_acr_a24vba		*(volatile unsigned char *)BVME_ACR_A24VBA
14549148020SSam Ravnborg #define bvme_acr_a24msk		*(volatile unsigned char *)BVME_ACR_A24MSK
14649148020SSam Ravnborg #define bvme_acr_a16vba		*(volatile unsigned char *)BVME_ACR_A16VBA
14749148020SSam Ravnborg #define bvme_acr_a32lba		*(volatile unsigned char *)BVME_ACR_A32LBA
14849148020SSam Ravnborg #define bvme_acr_a24lba		*(volatile unsigned char *)BVME_ACR_A24LBA
14949148020SSam Ravnborg #define bvme_acr_addrctl	*(volatile unsigned char *)BVME_ACR_ADDRCTL
15049148020SSam Ravnborg 
15149148020SSam Ravnborg #endif
152