From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Nov 16 00:21:01 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id AAA43501;
	Thu, 16 Nov 2000 00:21:01 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from t-mta4.odn.ne.jp (mfep4.odn.ne.jp [143.90.131.182])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id AAA43496
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 16 Nov 2000 00:21:01 +0900 (JST)
	(envelope-from unknown@pop02.odn.ne.jp)
Received: from rod ([210.188.109.3]) by t-mta4.odn.ne.jp
          (InterMail vM.4.01.03.01 201-229-121-101) with SMTP
          id <20001115152058132.RDJF.6066.t-mta4.odn.ne.jp@mta4.odn.ne.jp>
          for <FreeBSD-users-jp@jp.freebsd.org>;
          Thu, 16 Nov 2000 00:20:58 +0900
Message-ID: <005201c04f17$95edb6c0$fe01a8c0@fool>
From: "Takashi Kiyohara" <unknown@pop02.odn.ne.jp>
To: <FreeBSD-users-jp@jp.freebsd.org>
References: <004801c04a6b$09676120$fe01a8c0@fool>
Date: Thu, 16 Nov 2000 00:20:18 +0900
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-users-jp 56921
Subject: [FreeBSD-users-jp 56921] Re: Canbe
 =?ISO-2022-JP?B?GyRCJE5FRTg7QFpDRyVXJW0lMCVpJWAbKEI=?= 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: unknown@pop02.odn.ne.jp

$B@686!w(BHAL$B$G$9!#(B

CanBe$B!!#P#C(B-9821$B#C#f!!$NEE8;@ZCG$G$-$^$7$?!#(B
$B$H$j$"$($:$3$s$J46$8$G$9!#(B

canbepm.c$B!!!!!v!v!v!v!v!v!v!v!v!v!v!v!v!v!v!v!v!v(B

#include <sys/param.h>
#include <sys/systm.h>
#include <sys/eventhandler.h>
#include <sys/kernel.h>
#include <sys/bus.h>
#include <sys/conf.h>
#include <sys/ioccom.h>
#include <sys/reboot.h>

#include <machine/bus.h>
#include <machine/resource.h>
#include <sys/rman.h>

#include <sys/fcntl.h>
#include <machine/cpufunc.h>
#include <machine/clock.h>

#define CANBE_INDEX 0x0f4a
#define CANBE_DATA 0x0f4b
#define CANBE_IO_REG 0x13

static void canbepm_soft_off(void *, int);
static void canbepm_identify(driver_t *, device_t);
static int canbepm_probe(device_t);
static int canbepm_attach(device_t);

struct canbepm_softc{
 int index;
 int data;
 int io_reg;
};

static void canbepm_soft_off(void *data, int howto)
{
 char shut_data[] = {
  0x80, 0x06, 0x00, 0x00,
  0x80, 0x07, 0x00, 0x01,
  0x80, 0x01, 0x00, 0x00
 };
 int i;

 struct canbepm_softc *sc=data;
 if(!(howto & RB_POWEROFF)){
  return;
 }

/*Some Useful thing here*/

 outb( sc->index, sc->io_reg );
 for( i = 0; i < 0x0c; i ++ ) {
  DELAY(750);
  outb( sc->data, shut_data[ i ] );
 }
}

static void canbepm_identify(driver_t *drv, device_t parent)
{
 if(BUS_ADD_CHILD(parent,33,"canbepm",0)==NULL){
  device_printf(parent,"canbepm cannot attach\n");
 }
}

static int canbepm_probe(device_t dev)
{
#if 0
 if(0)
  return ENXIO;
#endif
 device_set_desc(dev,"CanBe Power Management Controller");
 return 0; 
 
}

static int canbepm_attach(device_t dev)
{
        struct canbepm_softc *sc=device_get_softc(dev);

 sc->index = CANBE_INDEX;
 sc->data = CANBE_DATA;
 sc->io_reg = CANBE_IO_REG;

 EVENTHANDLER_REGISTER(shutdown_final,canbepm_soft_off,sc,
 SHUTDOWN_PRI_LAST);
 return 0;
}

static device_method_t canbepm_methods[] = { 
 DEVMETHOD(device_identify, canbepm_identify),
 DEVMETHOD(device_probe,  canbepm_probe),
 DEVMETHOD(device_attach, canbepm_attach),
 { 0, 0}
};
static driver_t canbepm_driver = {
 "canbepm",
 canbepm_methods,
 sizeof(struct canbepm_softc),
};

devclass_t canbepm_devclass;
DRIVER_MODULE(canbepm, nexus, canbepm_driver, canbepm_devclass, 0, 0);

$B!v!v!v!v!v!v!v!v!v!v!v!v!v!v!v(B

$B$G!"(B
$BEOJU!s$"$$$+$o$i$:J,$+$C$F$J$$J}(B     $BMM(B
($B<+J,$J$s$+$h$j$h$C$]$I>e$G$9$h!D(B)
$B$K65$($F$$$?$@$$$?#D#E#L#A#Y!J(B500$B!K$H8@$&$H$3$m$r(B
750$B$KJQ$($F$_$^$7$?!#(B
$B$$$D$b$N=*N;%a%C%;!<%8(B($B$I$s$J$N$+K:$l$^$7$?(B)$B$,=P$F!"(B
$B$=$N8e(B10$BIC$0$i$$2;:;BAL5$/!"BLL\$+!D(B
$B$H;W$C$?$i!"$W$D$s$H9T$-$^$7$?!#(B
$B$7$+$7!"$"$^$j$KCY$$$N$G!"JQ99$7$?$N$G$9!#(B

$B<!$O!"5/F0;~$KG'<1$K9T$/$?$a$NItJ,$G$7$g$&$+!D(B
$B4hD%$k$>!A!D$^$?;~4V$,$+$+$k$@$m$&$1$I!D(B

$B$H$3$m$G!">e5-$N#D#E#L#A#Y$K$D$$$F$G$9$,!"(B
$B$3$l$O!"L5BL$JL?Na(B($B!)(B)$B$rF~$l$F!"%?%$%_%s%0$r<h$j!"(B
$B#I!?#O$N%G!<%?$N<h$j$3$\$7$rK4$/$90Y$H$$$&$d$D$J$N$G$7$g$&$+!)(B
(clock.c$B$N(B)$B#D#E#L#A#Y$N%=!<%9$rD/$a$?$N$G$9$,!"(B
$B$J$s$+;~4V$N7WB,$+2?$+$_$?$$$K8+$($?$b$N$G!"(B
$B$=$&H=CG$7$?$N$G$9$,!#(B
$B$@$H$9$k$H!"(Bkernel$B$O!"$=$N$"$?$j$N;~4V$O9M$($J$$$G!"(B
$BF~=PNO$r9T$C$F$$$k!!$H$$$&;v$K$J$k(B
$B$7$+$7(BC$B8@8l$N5!G=$G!"(BI$B!?(BO$B;~$N;~4VE*$J9MN8$O(B
$B$7$F$/$l$F$$$k$H;W$C$F$$$^$7$?!#(B

$B$3$l$G$"$C$F$k$N$+$J!)!)!)(B

$B@6869b;V(B
$B%3%s%T%e!<%?Am9g3X1`(BHAL$B!!Bg:e9;!!>pJs=hM}2J!!;0G/(B
unknown@pop02.odn.ne.jp


