2 * PreP compliant NVRAM access
10 #define NVRAM_AS1 0x75
11 #define NVRAM_DATA 0x77
16 #define MOTO_RTC_SECONDS 0x1FF9
17 #define MOTO_RTC_MINUTES 0x1FFA
18 #define MOTO_RTC_HOURS 0x1FFB
19 #define MOTO_RTC_DAY_OF_WEEK 0x1FFC
20 #define MOTO_RTC_DAY_OF_MONTH 0x1FFD
21 #define MOTO_RTC_MONTH 0x1FFE
22 #define MOTO_RTC_YEAR 0x1FFF
23 #define MOTO_RTC_CONTROLA 0x1FF8
24 #define MOTO_RTC_CONTROLB 0x1FF9
27 #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
31 #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
34 /* PowerMac specific nvram stuffs */
37 pmac_nvram_OF, /* Open Firmware partition */
38 pmac_nvram_XPRAM, /* MacOS XPRAM partition */
39 pmac_nvram_NR /* MacOS Name Registry partition */
42 /* Return partition offset in nvram */
43 extern int pmac_get_partition(int partition);
45 /* Direct access to XPRAM */
46 extern u8 pmac_xpram_read(int xpaddr);
47 extern void pmac_xpram_write(int xpaddr, u8 data);
49 /* Some offsets in XPRAM */
50 #define PMAC_XPRAM_MACHINE_LOC 0xe4
51 #define PMAC_XPRAM_SOUND_VOLUME 0x08
53 /* Machine location structure in XPRAM */
54 struct pmac_machine_location {
55 unsigned int latitude; /* 2+30 bit Fractional number */
56 unsigned int longitude; /* 2+30 bit Fractional number */
57 unsigned int delta; /* mix of GMT delta and DLS */
60 /* /dev/nvram ioctls */
61 #define PMAC_NVRAM_GET_OFFSET _IOWR('p', 0x40, int) /* Get NVRAM partition offset */
64 #endif /* __KERNEL__ */