6db4831e98
Android 14
152 lines
3.4 KiB
C
152 lines
3.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _M68K_BVME6000HW_H_
|
|
#define _M68K_BVME6000HW_H_
|
|
|
|
#include <asm/irq.h>
|
|
|
|
/*
|
|
* PIT structure
|
|
*/
|
|
|
|
#define BVME_PIT_BASE 0xffa00000
|
|
|
|
typedef struct {
|
|
unsigned char
|
|
pad_a[3], pgcr,
|
|
pad_b[3], psrr,
|
|
pad_c[3], paddr,
|
|
pad_d[3], pbddr,
|
|
pad_e[3], pcddr,
|
|
pad_f[3], pivr,
|
|
pad_g[3], pacr,
|
|
pad_h[3], pbcr,
|
|
pad_i[3], padr,
|
|
pad_j[3], pbdr,
|
|
pad_k[3], paar,
|
|
pad_l[3], pbar,
|
|
pad_m[3], pcdr,
|
|
pad_n[3], psr,
|
|
pad_o[3], res1,
|
|
pad_p[3], res2,
|
|
pad_q[3], tcr,
|
|
pad_r[3], tivr,
|
|
pad_s[3], res3,
|
|
pad_t[3], cprh,
|
|
pad_u[3], cprm,
|
|
pad_v[3], cprl,
|
|
pad_w[3], res4,
|
|
pad_x[3], crh,
|
|
pad_y[3], crm,
|
|
pad_z[3], crl,
|
|
pad_A[3], tsr,
|
|
pad_B[3], res5;
|
|
} PitRegs_t, *PitRegsPtr;
|
|
|
|
#define bvmepit ((*(volatile PitRegsPtr)(BVME_PIT_BASE)))
|
|
|
|
#define BVME_RTC_BASE 0xff900000
|
|
|
|
typedef struct {
|
|
unsigned char
|
|
pad_a[3], msr,
|
|
pad_b[3], t0cr_rtmr,
|
|
pad_c[3], t1cr_omr,
|
|
pad_d[3], pfr_icr0,
|
|
pad_e[3], irr_icr1,
|
|
pad_f[3], bcd_tenms,
|
|
pad_g[3], bcd_sec,
|
|
pad_h[3], bcd_min,
|
|
pad_i[3], bcd_hr,
|
|
pad_j[3], bcd_dom,
|
|
pad_k[3], bcd_mth,
|
|
pad_l[3], bcd_year,
|
|
pad_m[3], bcd_ujcc,
|
|
pad_n[3], bcd_hjcc,
|
|
pad_o[3], bcd_dow,
|
|
pad_p[3], t0lsb,
|
|
pad_q[3], t0msb,
|
|
pad_r[3], t1lsb,
|
|
pad_s[3], t1msb,
|
|
pad_t[3], cmp_sec,
|
|
pad_u[3], cmp_min,
|
|
pad_v[3], cmp_hr,
|
|
pad_w[3], cmp_dom,
|
|
pad_x[3], cmp_mth,
|
|
pad_y[3], cmp_dow,
|
|
pad_z[3], sav_sec,
|
|
pad_A[3], sav_min,
|
|
pad_B[3], sav_hr,
|
|
pad_C[3], sav_dom,
|
|
pad_D[3], sav_mth,
|
|
pad_E[3], ram,
|
|
pad_F[3], test;
|
|
} RtcRegs_t, *RtcPtr_t;
|
|
|
|
|
|
#define BVME_I596_BASE 0xff100000
|
|
|
|
#define BVME_ETHIRQ_REG 0xff20000b
|
|
|
|
#define BVME_LOCAL_IRQ_STAT 0xff20000f
|
|
|
|
#define BVME_ETHERR 0x02
|
|
#define BVME_ABORT_STATUS 0x08
|
|
|
|
#define BVME_NCR53C710_BASE 0xff000000
|
|
|
|
#define BVME_SCC_A_ADDR 0xffb0000b
|
|
#define BVME_SCC_B_ADDR 0xffb00003
|
|
#define BVME_SCC_RTxC 7372800
|
|
|
|
#define BVME_CONFIG_REG 0xff500003
|
|
|
|
#define config_reg_ptr (volatile unsigned char *)BVME_CONFIG_REG
|
|
|
|
#define BVME_CONFIG_SW1 0x08
|
|
#define BVME_CONFIG_SW2 0x04
|
|
#define BVME_CONFIG_SW3 0x02
|
|
#define BVME_CONFIG_SW4 0x01
|
|
|
|
|
|
#define BVME_IRQ_TYPE_PRIO 0
|
|
|
|
#define BVME_IRQ_PRN (IRQ_USER+20)
|
|
#define BVME_IRQ_TIMER (IRQ_USER+25)
|
|
#define BVME_IRQ_I596 IRQ_AUTO_2
|
|
#define BVME_IRQ_SCSI IRQ_AUTO_3
|
|
#define BVME_IRQ_RTC IRQ_AUTO_6
|
|
#define BVME_IRQ_ABORT IRQ_AUTO_7
|
|
|
|
/* SCC interrupts */
|
|
#define BVME_IRQ_SCC_BASE IRQ_USER
|
|
#define BVME_IRQ_SCCB_TX IRQ_USER
|
|
#define BVME_IRQ_SCCB_STAT (IRQ_USER+2)
|
|
#define BVME_IRQ_SCCB_RX (IRQ_USER+4)
|
|
#define BVME_IRQ_SCCB_SPCOND (IRQ_USER+6)
|
|
#define BVME_IRQ_SCCA_TX (IRQ_USER+8)
|
|
#define BVME_IRQ_SCCA_STAT (IRQ_USER+10)
|
|
#define BVME_IRQ_SCCA_RX (IRQ_USER+12)
|
|
#define BVME_IRQ_SCCA_SPCOND (IRQ_USER+14)
|
|
|
|
/* Address control registers */
|
|
|
|
#define BVME_ACR_A32VBA 0xff400003
|
|
#define BVME_ACR_A32MSK 0xff410003
|
|
#define BVME_ACR_A24VBA 0xff420003
|
|
#define BVME_ACR_A24MSK 0xff430003
|
|
#define BVME_ACR_A16VBA 0xff440003
|
|
#define BVME_ACR_A32LBA 0xff450003
|
|
#define BVME_ACR_A24LBA 0xff460003
|
|
#define BVME_ACR_ADDRCTL 0xff470003
|
|
|
|
#define bvme_acr_a32vba *(volatile unsigned char *)BVME_ACR_A32VBA
|
|
#define bvme_acr_a32msk *(volatile unsigned char *)BVME_ACR_A32MSK
|
|
#define bvme_acr_a24vba *(volatile unsigned char *)BVME_ACR_A24VBA
|
|
#define bvme_acr_a24msk *(volatile unsigned char *)BVME_ACR_A24MSK
|
|
#define bvme_acr_a16vba *(volatile unsigned char *)BVME_ACR_A16VBA
|
|
#define bvme_acr_a32lba *(volatile unsigned char *)BVME_ACR_A32LBA
|
|
#define bvme_acr_a24lba *(volatile unsigned char *)BVME_ACR_A24LBA
|
|
#define bvme_acr_addrctl *(volatile unsigned char *)BVME_ACR_ADDRCTL
|
|
|
|
#endif
|