Index: haretconsole/regs_misc.py
===================================================================
RCS file: /cvs/haret/haretconsole/regs_misc.py,v
retrieving revision 1.6
diff -u -r1.6 regs_misc.py
--- haretconsole/regs_misc.py	16 Mar 2008 00:37:26 -0000	1.6
+++ haretconsole/regs_misc.py	29 Mar 2008 23:25:39 -0000
@@ -23,7 +23,7 @@
     out = {}
     for i in range(count):
         char = chr(ord('A')+i+start)
-        out[base+2*i] = ("cpld" + char, regOneBits("C" + char))
+        out[base+2*i] = ("cpld_" + char, regOneBits("C" + char))
     return out
 
 
Index: img/haret.ico
===================================================================
RCS file: /cvs/haret/img/haret.ico,v
retrieving revision 1.1
diff -u -r1.1 haret.ico
Binary files /tmp/cvsTW2tP3 and haret.ico differ
Index: src/aticmds.cpp
===================================================================
RCS file: /cvs/haret/src/aticmds.cpp,v
retrieving revision 1.2
diff -u -r1.2 aticmds.cpp
--- src/aticmds.cpp	14 Nov 2007 00:44:07 -0000	1.2
+++ src/aticmds.cpp	29 Mar 2008 23:25:39 -0000
@@ -181,3 +181,55 @@
 REG_CMD(AtiAvail, "ATIDBG", atidbg,
         "ATIDBG\n"
         "  Return info on ATI FB using ati dll.")
+
+static void
+atipwrmode(const char *cmd, const char *args)
+{
+    struct Asic *asic;
+    struct Ctx  *ctx;
+
+    DevInfo devinfo;
+
+    uint32 devnum, val;
+    if (!get_expression(&args, &devnum) || !get_expression(&args, &val)) {
+        ScriptError("Expected <devnum> <value>");
+        return;
+    }
+
+    Output ("trying ATI device=%d PWR Mode =%d\n", devnum, val);
+
+    int ret = late_AhiInit(0x0); /* 0x11, !0x100 */
+
+    ret = late_AhiDevEnum(&asic, &devinfo, 0);
+    Output ("ATI asic* =0x%p / 0x%8.8x ret=%d\n", asic, memVirtToPhys((uint32)asic),ret);
+
+#if 0
+    switch (devnum)
+    {
+     case 2:
+       ret = late_AhiDevOpen(&ctx, asic, "USB", 0);
+       Output ("ATI USB ctx* =0x%p / 0x%8.8x ret=%d\n", ctx, memVirtToPhys((uint32)ctx),ret);
+       if (!ret) return;
+     break;
+     case 3:
+       ret = late_AhiDevOpen(&ctx, asic, "SD", 0);
+       Output ("ATI  SD ctx* =0x%p / 0x%8.8x ret=%d\n", ctx, memVirtToPhys((uint32)ctx),ret);
+       if (!ret) return;
+     break;
+     default:
+       Output ("unknown ATI device=%d\n", devnum);
+       return; 
+    }
+#endif
+
+    ret = late_AhiDevOpen(&ctx, asic, "haret", 2);
+    Output ("ATI ctx* =0x%p / 0x%8.8x ret=%d\n", ctx, memVirtToPhys((uint32)ctx),ret);
+
+    late_AhiPwrModeSet(ctx, devnum, val, 0);
+
+    late_AhiDevClose(ctx);
+    
+}
+REG_CMD(AtiAvail, "ATIPWRMODE", atipwrmode,
+        "ATIPWRMODE\n"
+        "  Change the power mode for ATI devices using ati dll.")
Index: src/wincmds.cpp
===================================================================
RCS file: /cvs/haret/src/wincmds.cpp,v
retrieving revision 1.16
diff -u -r1.16 wincmds.cpp
--- src/wincmds.cpp	20 Jan 2008 01:29:15 -0000	1.16
+++ src/wincmds.cpp	29 Mar 2008 23:25:39 -0000
@@ -6,9 +6,15 @@
  */
 
 #include <windows.h> // Sleep
+#include <winioctl.h> // ioctl()
 #include <time.h> // time
 #include "pwinuser.h" // NLedSetDevice
 #include "nled.h" // NLED_SETTINGS_INFO
+#include "bt.h" // BTH_
+#include "ioctl.h" // IOCTL_
+#include "powerm.h" // IOCTL_
+
+#include "memory.h" // ???
 
 #include "xtypes.h" // uint32
 #include "output.h" // Output
@@ -204,3 +210,261 @@
 REG_CMD(0, "SETLCD", LCDonoff,
         "SETLCD <state>\n"
         "  Set the LCD power state (1=on, 2=standby, 3=suspend, 4=off)")
+
+LATE_LOAD(BthSetMode, "bthutil")
+
+static int BTHAvail() {
+    return !!late_BthSetMode;
+}
+
+static void BTctl (const char *cmd, const char *args)
+{
+ uint32 state;
+
+ int ret;
+
+    if (!get_expression(&args, &state)) {
+        ScriptError("Expected <state>");
+        return;
+    }
+
+ HANDLE hbag0 = CreateFile(L"BAG0:",0,0,NULL,OPEN_EXISTING,0,NULL);
+
+ if (!hbag0)
+ {
+      ScriptError("can't open BAG0:");
+  return;  
+ }
+
+ switch (state)
+ {
+#if 0
+  case 0:
+     ret=DeviceIoControl(hbag0,IOCTL_AG_CLOSE_AUDIO,NULL,0,NULL,0,NULL,NULL);
+   if (!ret)
+   {
+        ScriptError("err: close_audio('BAG0:')");
+        return;  
+   }
+  break;
+  case 1:
+     ret=DeviceIoControl(hbag0,IOCTL_AG_OPEN_AUDIO,NULL,0,NULL,0,NULL,NULL);
+     if (!ret)
+      {
+       ScriptError("err: open_audio('BAG0:')");
+       return;  
+      }
+  break;
+#endif
+  case 10:
+     ret=DeviceIoControl(hbag0,IOCTL_SERVICE_STOP,NULL,0,NULL,0,NULL,NULL);
+     if (!ret)
+      {
+       ScriptError("err: service_stop('BAG0:')");
+       return;  
+      }
+  break;
+  case 11:
+     ret=DeviceIoControl(hbag0,IOCTL_SERVICE_START,NULL,0,NULL,0,NULL,NULL);
+     if (!ret)
+      {
+       ScriptError("err: service_start('BAG0:')");
+       return;  
+      }
+  break;
+  case 20:
+     ret=late_BthSetMode(BTH_POWER_OFF);
+     if (!ret)
+      {
+       ScriptError("err: bthsetmode(%d) poweroff",state);
+       return;  
+      }
+      else
+       Output("bthsetmode(%d) poweroff",state);
+  break;
+  case 21:
+     ret=late_BthSetMode(BTH_CONNECTABLE);
+     if (!ret)
+      {
+       ScriptError("err: bthsetmode(%d) connectable",state);
+       return;  
+      }
+      else
+       Output("bthsetmode(%d) connectable",state);
+  break;
+  case 22:
+     ret=late_BthSetMode(BTH_DISCOVERABLE);
+     if (!ret)
+      {
+       ScriptError("err: bthsetmode(%d) discoverable",state);
+       return;  
+      }
+      else
+       Output("bthsetmode(%d) discoverable",state);
+  break;
+ }
+            
+
+ CloseHandle(hbag0);
+
+ return;
+}
+
+REG_CMD(BTHAvail, "BTCTL", BTctl,
+        "BTCTL <state>\n"
+        "  Set the BT control state (0=open audio, 1=close audio, 10=stop, 11=start, 20=pwroff, 21=connectable, 22=discoverable)")
+
+static void IRonoff (const char *cmd, const char *args)
+{
+ uint32 state;
+
+ int ret;
+
+    if (!get_expression(&args, &state)) {
+        ScriptError("Expected <state>");
+        return;
+    }
+
+ HANDLE hobx0 = CreateFile(L"OBX0:", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
+
+ if (!hobx0)
+ {
+      ScriptError("can't open OBX0:");
+  return;  
+ }
+
+ switch (state)
+ {
+  case 0:
+      ret=DeviceIoControl(hobx0, IOCTL_SERVICE_STOP, 0, 0, 0, 0, NULL, 0);
+ if (!ret)
+ {
+       ScriptError("IR_ioctl(%d) stop failed",state);
+  return;  
+ }
+      else
+       Output("IR_ioctl(%d) stop",state);
+  break;
+  case 1:
+      ret=DeviceIoControl(hobx0, IOCTL_SERVICE_START, 0, 0, 0, 0, NULL, 0);
+ if (!ret)
+ {
+       ScriptError("IR_ioctl(%d) start failed",state);
+  return;  
+ }
+      else
+       Output("IR_ioctl(%d) start",state);
+  break;
+ }
+
+ CloseHandle(hobx0);
+
+ return;
+}
+
+REG_CMD(0, "IRCTL", IRonoff,
+        "IRCTL <state>\n"
+        "  Set the IR state (0=stop, 1=start)")
+
+static void
+powerDEV (wchar_t *dev, int state)
+{
+//  LPWSTR dev = L"BKL1:";
+//LPWSTR dev=L"{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\TIACXWLN1";
+//LPWSTR dev=L"MSM1:";
+//LPWSTR dev=L"RIL1:";
+//LPWSTR dev=L"MIS1:";
+//LPWSTR dev=L"WAV1:";
+
+  Output ("SetPowerRequirement(%d) %ls", state, dev);
+
+  HANDLE hPwr =
+    SetPowerRequirement (dev, (CEDEVICE_POWER_STATE) state,
+			 POWER_NAME | POWER_FORCE, NULL, 0);
+  if (hPwr == NULL || hPwr == INVALID_HANDLE_VALUE)
+    {
+      ScriptError ("SetPowerRequirement(%d) failed", state);
+      return;
+    }
+
+  Output ("SetDevicePower(%d) %ls", state, dev);
+  SetDevicePower (dev, POWER_NAME | POWER_FORCE,
+		  (CEDEVICE_POWER_STATE) state);
+
+  Sleep (1 * 1000);
+  ReleasePowerRequirement (hPwr);
+}
+static void
+cmd_PWRctl(const char *cmd, const char *args)
+{
+ uint32 state;
+
+    wchar_t wname[MAX_CMDLEN];
+    if (get_wtoken(&args, wname, ARRAY_SIZE(wname)) || !get_expression(&args, &state)) {
+        ScriptError("Expected <device name> <state>");
+        return;
+    }
+
+
+    Output("Calling  on '%ls' %d", wname,state);
+
+    powerDEV(wname,state);
+}
+
+REG_CMD(0, "PWRCTL", cmd_PWRctl,
+        "PWRCTL <device name> <state>\n"
+        "  Set the device power state (0=on, 4=off)")
+
+static uint8
+pasic3_reg_read(uint16 *addr, uint16 *data, int reg)
+{
+
+	*addr |= 0x80;
+	*addr = (*addr & 0xff80) | (reg & 0x7f);
+
+	return (uint8)(*data);
+}
+
+static void pasic3DumpState (const char *cmd, const char *args)
+{
+//  int i;
+  
+  uint16 *pasic3addr, *pasic3data;
+  uint32 pasic3_gpio_base, pasic3_bus_shift;
+
+    if (!get_expression(&args, &pasic3_gpio_base) || !get_expression(&args, &pasic3_bus_shift)) {
+        ScriptError("Expected <base> <shift>");
+        return;
+    }
+
+  pasic3addr=(uint16 *)memPhysMap (pasic3_gpio_base + (0x14>>(2-pasic3_bus_shift)));
+  pasic3data=(uint16 *)memPhysMap (pasic3_gpio_base + (0x18>>(2-pasic3_bus_shift)));
+
+ int pasic3regs[]={
+  0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
+  0x06, 0x07,
+  0x10, 0x11, 0x12, 0x13, 0x14,
+  0x20, 0x21, 0x22, 0x23,
+  0x28, 0x29, 0x2a, 0x2b, 0x2c,
+ };
+
+Output ("PASIC[23] registers\n");
+
+ for (unsigned int i=0;i<sizeof(pasic3regs)/sizeof(int);i++)
+ {
+  uint16 ret;
+  
+  ret=pasic3_reg_read(pasic3addr, pasic3data, pasic3regs[i]);
+
+  Output("reg= 0x%2.2x val= 0x%2.2x",pasic3regs[i],ret);
+ }
+
+ return; 
+}
+REG_CMD(0, "PASIC3", pasic3DumpState,
+        "PASIC3 <base> <shift>\n"
+        "  Dump PASIC[23] registers. Known devices:\n"
+        "  HIMALAYAS 0x0d000000 2\n"
+        "  BLUEANGEL 0x11000000 1\n"
+        "  MAGICIAN  0x08000000 2\n"
+        "  ALPINE    0x0e000000 1\n")
Index: src/mach/machlist.txt
===================================================================
RCS file: /cvs/haret/src/mach/machlist.txt,v
retrieving revision 1.31
diff -u -r1.31 machlist.txt
--- src/mach/machlist.txt	16 Mar 2008 00:46:55 -0000	1.31
+++ src/mach/machlist.txt	29 Mar 2008 23:25:39 -0000
@@ -83,16 +83,7 @@
 Acer_n30,   S3c2410 ,Acer n30 Handheld,           N30
 Mio_P550,   S3c2440 ,Mio P550,                    MIO_P550
 Kaiser,     MSM7200 ,Kaiser
-Loox5xx,    PXA27x  ,FUJITSU SIEMENS COMPUTERS Pocket LOOX 5xx, LOOXN560, \
-        addlist GPIOS p2v(0x10000000) 0xf000 16, \
-        addlist GPIOS p2v(0x10000002) 0xf000 16, \
-        addlist GPIOS p2v(0x10000004) 0xf000 16, \
-        addlist GPIOS p2v(0x10000006) 0xf000 16, \
-        addlist GPIOS p2v(0x10000008) 0xf000 16, \
-        addlist GPIOS p2v(0x1000000a) 0xf000 16, \
-        addlist GPIOS p2v(0x1000000c) 0xf000 16, \
-        addlist GPIOS p2v(0x1000000e) 0xf000 16, \
-        addlist GPIOS p2v(0x10000010) 0xf000 16
+Loox5xx,    PXA27x  ,FUJITSU SIEMENS COMPUTERS Pocket LOOX 5xx, LOOXN560
 Loox400,    PXA     ,FUJITSU SIEMENS COMPUTERS Pocket LOOX, LOOX410
 MioA701,    PXA27x  ,Mio Technology Limited,      MIOA701
 

#ifndef __BT_H
#define __BT_H


enum BTH_RADIO_MODE
{
  BTH_POWER_OFF,
  BTH_CONNECTABLE,
  BTH_DISCOVERABLE
};

extern "C"
{
  int BthSetMode (int dwMode);
  int BthAGNetworkDialNumber (LPSTR pszNumber);

};

#endif

#ifndef __IOCTL_H
#define __IOCTL_H

#define FILE_DEVICE_HAL         0x00000101
#define FILE_DEVICE_CONSOLE     0x00000102
#define FILE_DEVICE_PSL         0x00000103
#define FILE_DEVICE_SERVICE     0x00000104

#define IOCTL_SERVICE_START             CTL_CODE(FILE_DEVICE_SERVICE, 1, 
METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERVICE_STOP              CTL_CODE(FILE_DEVICE_SERVICE, 2, 
METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_AG_OPEN_AUDIO     0x01
#define IOCTL_AG_CLOSE_AUDIO    0x02


#endif
#ifndef HARET_POWERM
#define HARET_POWERM 1

#include  <windows.h>

#define POWER_NAME              0x00000001
#define POWER_FORCE             0x00001000

typedef enum 
{
  PwrDeviceUnspecified=-1,D0=0,D1,D2,D3,D4,PwrDeviceMaximum
} CEDEVICE_POWER_STATE;

extern "C" 
{
HANDLE SetPowerRequirement(
	const void *pvDevice, CEDEVICE_POWER_STATE DeviceState,ULONG DeviceFlags,
    void *pvSystemState,ULONG StateFlags);

int SetDevicePower(
	const void *pvDevice, ULONG DeviceFlags, CEDEVICE_POWER_STATE DeviceState);

DWORD ReleasePowerRequirement(HANDLE hPowerReq);
};

#define BATTERY_CHEMISTRY_ALKALINE     0x01
#define BATTERY_CHEMISTRY_NICD         0x02
#define BATTERY_CHEMISTRY_NIMH         0x03
#define BATTERY_CHEMISTRY_LION         0x04
#define BATTERY_CHEMISTRY_LIPOLY       0x05
#define BATTERY_CHEMISTRY_ZINCAIR      0x06
#define BATTERY_CHEMISTRY_UNKNOWN      0xFF

extern "C" void WAV_PowerDown(void);
extern "C" void WAV_PowerUp(void);

 typedef enum {
 VideoPowerOn = 1,
 VideoPowerStandBy,
 VideoPowerSuspend,
 VideoPowerOff
 } VIDEO_POWER_STATE;
#endif
_______________________________________________
Haret mailing list
[email protected]
https://handhelds.org/mailman/listinfo/haret

Reply via email to