1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _M68K_BVME6000HW_H_ 3*4882a593Smuzhiyun #define _M68K_BVME6000HW_H_ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <asm/irq.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * PIT structure 9*4882a593Smuzhiyun */ 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define BVME_PIT_BASE 0xffa00000 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun typedef struct { 14*4882a593Smuzhiyun unsigned char 15*4882a593Smuzhiyun pad_a[3], pgcr, 16*4882a593Smuzhiyun pad_b[3], psrr, 17*4882a593Smuzhiyun pad_c[3], paddr, 18*4882a593Smuzhiyun pad_d[3], pbddr, 19*4882a593Smuzhiyun pad_e[3], pcddr, 20*4882a593Smuzhiyun pad_f[3], pivr, 21*4882a593Smuzhiyun pad_g[3], pacr, 22*4882a593Smuzhiyun pad_h[3], pbcr, 23*4882a593Smuzhiyun pad_i[3], padr, 24*4882a593Smuzhiyun pad_j[3], pbdr, 25*4882a593Smuzhiyun pad_k[3], paar, 26*4882a593Smuzhiyun pad_l[3], pbar, 27*4882a593Smuzhiyun pad_m[3], pcdr, 28*4882a593Smuzhiyun pad_n[3], psr, 29*4882a593Smuzhiyun pad_o[3], res1, 30*4882a593Smuzhiyun pad_p[3], res2, 31*4882a593Smuzhiyun pad_q[3], tcr, 32*4882a593Smuzhiyun pad_r[3], tivr, 33*4882a593Smuzhiyun pad_s[3], res3, 34*4882a593Smuzhiyun pad_t[3], cprh, 35*4882a593Smuzhiyun pad_u[3], cprm, 36*4882a593Smuzhiyun pad_v[3], cprl, 37*4882a593Smuzhiyun pad_w[3], res4, 38*4882a593Smuzhiyun pad_x[3], crh, 39*4882a593Smuzhiyun pad_y[3], crm, 40*4882a593Smuzhiyun pad_z[3], crl, 41*4882a593Smuzhiyun pad_A[3], tsr, 42*4882a593Smuzhiyun pad_B[3], res5; 43*4882a593Smuzhiyun } PitRegs_t, *PitRegsPtr; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define bvmepit ((*(volatile PitRegsPtr)(BVME_PIT_BASE))) 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun #define BVME_RTC_BASE 0xff900000 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun typedef struct { 50*4882a593Smuzhiyun unsigned char 51*4882a593Smuzhiyun pad_a[3], msr, 52*4882a593Smuzhiyun pad_b[3], t0cr_rtmr, 53*4882a593Smuzhiyun pad_c[3], t1cr_omr, 54*4882a593Smuzhiyun pad_d[3], pfr_icr0, 55*4882a593Smuzhiyun pad_e[3], irr_icr1, 56*4882a593Smuzhiyun pad_f[3], bcd_tenms, 57*4882a593Smuzhiyun pad_g[3], bcd_sec, 58*4882a593Smuzhiyun pad_h[3], bcd_min, 59*4882a593Smuzhiyun pad_i[3], bcd_hr, 60*4882a593Smuzhiyun pad_j[3], bcd_dom, 61*4882a593Smuzhiyun pad_k[3], bcd_mth, 62*4882a593Smuzhiyun pad_l[3], bcd_year, 63*4882a593Smuzhiyun pad_m[3], bcd_ujcc, 64*4882a593Smuzhiyun pad_n[3], bcd_hjcc, 65*4882a593Smuzhiyun pad_o[3], bcd_dow, 66*4882a593Smuzhiyun pad_p[3], t0lsb, 67*4882a593Smuzhiyun pad_q[3], t0msb, 68*4882a593Smuzhiyun pad_r[3], t1lsb, 69*4882a593Smuzhiyun pad_s[3], t1msb, 70*4882a593Smuzhiyun pad_t[3], cmp_sec, 71*4882a593Smuzhiyun pad_u[3], cmp_min, 72*4882a593Smuzhiyun pad_v[3], cmp_hr, 73*4882a593Smuzhiyun pad_w[3], cmp_dom, 74*4882a593Smuzhiyun pad_x[3], cmp_mth, 75*4882a593Smuzhiyun pad_y[3], cmp_dow, 76*4882a593Smuzhiyun pad_z[3], sav_sec, 77*4882a593Smuzhiyun pad_A[3], sav_min, 78*4882a593Smuzhiyun pad_B[3], sav_hr, 79*4882a593Smuzhiyun pad_C[3], sav_dom, 80*4882a593Smuzhiyun pad_D[3], sav_mth, 81*4882a593Smuzhiyun pad_E[3], ram, 82*4882a593Smuzhiyun pad_F[3], test; 83*4882a593Smuzhiyun } RtcRegs_t, *RtcPtr_t; 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun #define BVME_I596_BASE 0xff100000 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun #define BVME_ETHIRQ_REG 0xff20000b 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun #define BVME_LOCAL_IRQ_STAT 0xff20000f 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun #define BVME_ETHERR 0x02 93*4882a593Smuzhiyun #define BVME_ABORT_STATUS 0x08 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #define BVME_NCR53C710_BASE 0xff000000 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define BVME_SCC_A_ADDR 0xffb0000b 98*4882a593Smuzhiyun #define BVME_SCC_B_ADDR 0xffb00003 99*4882a593Smuzhiyun #define BVME_SCC_RTxC 7372800 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun #define BVME_CONFIG_REG 0xff500003 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun #define config_reg_ptr (volatile unsigned char *)BVME_CONFIG_REG 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun #define BVME_CONFIG_SW1 0x08 106*4882a593Smuzhiyun #define BVME_CONFIG_SW2 0x04 107*4882a593Smuzhiyun #define BVME_CONFIG_SW3 0x02 108*4882a593Smuzhiyun #define BVME_CONFIG_SW4 0x01 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun #define BVME_IRQ_TYPE_PRIO 0 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun #define BVME_IRQ_PRN (IRQ_USER+20) 114*4882a593Smuzhiyun #define BVME_IRQ_TIMER (IRQ_USER+25) 115*4882a593Smuzhiyun #define BVME_IRQ_I596 IRQ_AUTO_2 116*4882a593Smuzhiyun #define BVME_IRQ_SCSI IRQ_AUTO_3 117*4882a593Smuzhiyun #define BVME_IRQ_RTC IRQ_AUTO_6 118*4882a593Smuzhiyun #define BVME_IRQ_ABORT IRQ_AUTO_7 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun /* SCC interrupts */ 121*4882a593Smuzhiyun #define BVME_IRQ_SCC_BASE IRQ_USER 122*4882a593Smuzhiyun #define BVME_IRQ_SCCB_TX IRQ_USER 123*4882a593Smuzhiyun #define BVME_IRQ_SCCB_STAT (IRQ_USER+2) 124*4882a593Smuzhiyun #define BVME_IRQ_SCCB_RX (IRQ_USER+4) 125*4882a593Smuzhiyun #define BVME_IRQ_SCCB_SPCOND (IRQ_USER+6) 126*4882a593Smuzhiyun #define BVME_IRQ_SCCA_TX (IRQ_USER+8) 127*4882a593Smuzhiyun #define BVME_IRQ_SCCA_STAT (IRQ_USER+10) 128*4882a593Smuzhiyun #define BVME_IRQ_SCCA_RX (IRQ_USER+12) 129*4882a593Smuzhiyun #define BVME_IRQ_SCCA_SPCOND (IRQ_USER+14) 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun /* Address control registers */ 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun #define BVME_ACR_A32VBA 0xff400003 134*4882a593Smuzhiyun #define BVME_ACR_A32MSK 0xff410003 135*4882a593Smuzhiyun #define BVME_ACR_A24VBA 0xff420003 136*4882a593Smuzhiyun #define BVME_ACR_A24MSK 0xff430003 137*4882a593Smuzhiyun #define BVME_ACR_A16VBA 0xff440003 138*4882a593Smuzhiyun #define BVME_ACR_A32LBA 0xff450003 139*4882a593Smuzhiyun #define BVME_ACR_A24LBA 0xff460003 140*4882a593Smuzhiyun #define BVME_ACR_ADDRCTL 0xff470003 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun #define bvme_acr_a32vba *(volatile unsigned char *)BVME_ACR_A32VBA 143*4882a593Smuzhiyun #define bvme_acr_a32msk *(volatile unsigned char *)BVME_ACR_A32MSK 144*4882a593Smuzhiyun #define bvme_acr_a24vba *(volatile unsigned char *)BVME_ACR_A24VBA 145*4882a593Smuzhiyun #define bvme_acr_a24msk *(volatile unsigned char *)BVME_ACR_A24MSK 146*4882a593Smuzhiyun #define bvme_acr_a16vba *(volatile unsigned char *)BVME_ACR_A16VBA 147*4882a593Smuzhiyun #define bvme_acr_a32lba *(volatile unsigned char *)BVME_ACR_A32LBA 148*4882a593Smuzhiyun #define bvme_acr_a24lba *(volatile unsigned char *)BVME_ACR_A24LBA 149*4882a593Smuzhiyun #define bvme_acr_addrctl *(volatile unsigned char *)BVME_ACR_ADDRCTL 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun #endif 152