1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 21da177e4SLinus Torvalds #ifndef _MC6821_H_ 31da177e4SLinus Torvalds #define _MC6821_H_ 41da177e4SLinus Torvalds 51da177e4SLinus Torvalds /* 61da177e4SLinus Torvalds * This file describes the memery mapping of the MC6821 PIA. 71da177e4SLinus Torvalds * The unions describe overlayed registers. Which of them is used is 81da177e4SLinus Torvalds * determined by bit 2 of the corresponding control register. 91da177e4SLinus Torvalds * this files expects the PIA_REG_PADWIDTH to be defined the numeric 101da177e4SLinus Torvalds * value of the register spacing. 111da177e4SLinus Torvalds * 121da177e4SLinus Torvalds * Data came from MFC-31-Developer Kit (from Ralph Seidel, 131da177e4SLinus Torvalds * [email protected]) and Motorola Data Sheet (from 141da177e4SLinus Torvalds * Richard Hirst, [email protected]) 151da177e4SLinus Torvalds * 161da177e4SLinus Torvalds * 6.11.95 copyright Joerg Dorchain ([email protected]) 171da177e4SLinus Torvalds * 181da177e4SLinus Torvalds */ 191da177e4SLinus Torvalds 201da177e4SLinus Torvalds #ifndef PIA_REG_PADWIDTH 211da177e4SLinus Torvalds #define PIA_REG_PADWIDTH 255 221da177e4SLinus Torvalds #endif 231da177e4SLinus Torvalds 241da177e4SLinus Torvalds struct pia { 251da177e4SLinus Torvalds union { 261da177e4SLinus Torvalds volatile u_char pra; 271da177e4SLinus Torvalds volatile u_char ddra; 281da177e4SLinus Torvalds } ua; 291da177e4SLinus Torvalds u_char pad1[PIA_REG_PADWIDTH]; 301da177e4SLinus Torvalds volatile u_char cra; 311da177e4SLinus Torvalds u_char pad2[PIA_REG_PADWIDTH]; 321da177e4SLinus Torvalds union { 331da177e4SLinus Torvalds volatile u_char prb; 341da177e4SLinus Torvalds volatile u_char ddrb; 351da177e4SLinus Torvalds } ub; 361da177e4SLinus Torvalds u_char pad3[PIA_REG_PADWIDTH]; 371da177e4SLinus Torvalds volatile u_char crb; 381da177e4SLinus Torvalds u_char pad4[PIA_REG_PADWIDTH]; 391da177e4SLinus Torvalds }; 401da177e4SLinus Torvalds 411da177e4SLinus Torvalds #define ppra ua.pra 421da177e4SLinus Torvalds #define pddra ua.ddra 431da177e4SLinus Torvalds #define pprb ub.prb 441da177e4SLinus Torvalds #define pddrb ub.ddrb 451da177e4SLinus Torvalds 461da177e4SLinus Torvalds #define PIA_C1_ENABLE_IRQ (1<<0) 471da177e4SLinus Torvalds #define PIA_C1_LOW_TO_HIGH (1<<1) 481da177e4SLinus Torvalds #define PIA_DDR (1<<2) 491da177e4SLinus Torvalds #define PIA_IRQ2 (1<<6) 501da177e4SLinus Torvalds #define PIA_IRQ1 (1<<7) 511da177e4SLinus Torvalds 521da177e4SLinus Torvalds #endif 53