Module Name:    src
Committed By:   nat
Date:           Sat Sep 14 21:04:25 UTC 2024

Modified Files:
        src/sys/arch/mac68k/conf: files.mac68k
        src/sys/arch/mac68k/dev: pm_direct.c

Log Message:
Add support for the power button on the PowerBook 160/180.


To generate a diff of this commit:
cvs rdiff -u -r1.133 -r1.134 src/sys/arch/mac68k/conf/files.mac68k
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/mac68k/dev/pm_direct.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/mac68k/conf/files.mac68k
diff -u src/sys/arch/mac68k/conf/files.mac68k:1.133 src/sys/arch/mac68k/conf/files.mac68k:1.134
--- src/sys/arch/mac68k/conf/files.mac68k:1.133	Wed Mar 13 07:55:28 2024
+++ src/sys/arch/mac68k/conf/files.mac68k	Sat Sep 14 21:04:24 2024
@@ -1,4 +1,4 @@
-#	$NetBSD: files.mac68k,v 1.133 2024/03/13 07:55:28 nat Exp $
+#	$NetBSD: files.mac68k,v 1.134 2024/09/14 21:04:24 nat Exp $
 
 # mac68k-specific configuration info
 
@@ -24,7 +24,7 @@ device	obio { [addr = -1] }
 attach	obio at mainbus
 file	arch/mac68k/obio/obio.c		obio
 
-device	adb { }
+device	adb { }: sysmon_power
 attach	adb at obio
 file	arch/mac68k/dev/adb.c		adb
 file	arch/mac68k/dev/adbsysasm.s

Index: src/sys/arch/mac68k/dev/pm_direct.c
diff -u src/sys/arch/mac68k/dev/pm_direct.c:1.34 src/sys/arch/mac68k/dev/pm_direct.c:1.35
--- src/sys/arch/mac68k/dev/pm_direct.c:1.34	Sat Sep 14 21:02:46 2024
+++ src/sys/arch/mac68k/dev/pm_direct.c	Sat Sep 14 21:04:24 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: pm_direct.c,v 1.34 2024/09/14 21:02:46 nat Exp $	*/
+/*	$NetBSD: pm_direct.c,v 1.35 2024/09/14 21:04:24 nat Exp $	*/
 
 /*
  * Copyright (c) 2024 Nathanial Sloss <nathanialsl...@yahoo.com.au>
@@ -35,7 +35,7 @@
 /* From: pm_direct.c 1.3 03/18/98 Takashi Hamada */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pm_direct.c,v 1.34 2024/09/14 21:02:46 nat Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pm_direct.c,v 1.35 2024/09/14 21:04:24 nat Exp $");
 
 #include "opt_adb.h"
 
@@ -50,6 +50,8 @@ __KERNEL_RCSID(0, "$NetBSD: pm_direct.c,
 #include <sys/types.h>
 #include <sys/systm.h>
 
+#include <dev/sysmon/sysmonvar.h>
+
 #include <machine/viareg.h>
 #include <machine/param.h>
 #include <machine/cpu.h>
@@ -88,6 +90,7 @@ u_short	pm_existent_ADB_devices = 0x0;	/
 u_int	pm_LCD_brightness = 0x0;
 u_int	pm_LCD_contrast = 0x0;
 u_int	pm_counter = 0;			/* clock count */
+struct sysmon_pswitch pbutton;
 
 /* these values shows that number of data returned after 'send' cmd is sent */
 char pm_send_cmd_type[] = {
@@ -260,6 +263,12 @@ pm_setup_adb(void)
 		case MACH_MACPB180:
 		case MACH_MACPB180C:
 			pmHardware = PM_HW_PB1XX;
+
+			memset(&pbutton, 0, sizeof(struct sysmon_pswitch));
+			pbutton.smpsw_name = "PB";
+			pbutton.smpsw_type = PSWITCH_TYPE_POWER;
+			if (sysmon_pswitch_register(&pbutton) != 0)
+				printf("Unable to register soft power\n");
 			break;
 		case MACH_MACPB150:
 		case MACH_MACPB210:
@@ -272,6 +281,13 @@ pm_setup_adb(void)
 		case MACH_MACPB190:
 		case MACH_MACPB190CS:
 			pmHardware = PM_HW_PB5XX;
+#if notyet
+			memset(&pbutton, 0, sizeof(struct sysmon_pswitch));
+			pbutton.smpsw_name = "PB";
+			pbutton.smpsw_type = PSWITCH_TYPE_POWER;
+			if (sysmon_pswitch_register(&pbutton) != 0)
+				printf("Unable to register soft power\n");
+#endif
 			break;
 		default:
 			break;
@@ -579,6 +595,9 @@ pm_intr_pm1(void *arg)
 			/* ADB device event */
 			pm_adb_get_ADB_data(&pmdata);
 		}
+	} else if ((pmdata.num_data == 0x1) && (pmdata.data[0] == 0)) {
+		/* PowerBook 160/180 Power button. */
+		sysmon_pswitch_event(&pbutton, PSWITCH_EVENT_PRESSED);
 	} else {
 #ifdef ADB_DEBUG
 		if (adb_debug)

Reply via email to