author | chicken <chicken> | 2004-11-05 10:34:02 (UTC) |
---|---|---|
committer | chicken <chicken> | 2004-11-05 10:34:02 (UTC) |
commit | aea18d994988507f6153552698cbb67054715a92 (patch) (side-by-side diff) | |
tree | 704b7ec91f59e432910343a6d3efc73b90fae613 | |
parent | 586ba5bb2842d80911ea22bf47eaa2f1b39362e1 (diff) | |
download | opie-aea18d994988507f6153552698cbb67054715a92.zip opie-aea18d994988507f6153552698cbb67054715a92.tar.gz opie-aea18d994988507f6153552698cbb67054715a92.tar.bz2 |
correct simpad cs3 readout
-rw-r--r-- | libopie2/opiecore/device/odevice_simpad.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp index 2e54216..d6c2c80 100644 --- a/libopie2/opiecore/device/odevice_simpad.cpp +++ b/libopie2/opiecore/device/odevice_simpad.cpp @@ -169,129 +169,129 @@ void SIMpad::initButtons() ODeviceButton b; if (( sb->model & d->m_model ) == d->m_model ) { b. setKeycode ( sb->code ); b. setUserText ( QObject::tr ( "Button", sb->utext )); b. setPixmap ( Resource::loadPixmap ( sb->pix )); b. setFactoryPresetPressedAction ( OQCopMessage ( makeChannel ( sb->fpressedservice ), sb->fpressedaction )); b. setFactoryPresetHeldAction ( OQCopMessage ( makeChannel ( sb->fheldservice ), sb->fheldaction )); d->m_buttons->append ( b ); } } reloadButtonMapping(); } // SIMpad boardcontrol register CS3 #define SIMPAD_BOARDCONTROL "/proc/cs3" #define SIMPAD_VCC_5V_EN 0x0001 // For 5V PCMCIA #define SIMPAD_VCC_3V_EN 0x0002 // FOR 3.3V PCMCIA #define SIMPAD_EN1 0x0004 // This is only for EPROM's #define SIMPAD_EN0 0x0008 // Both should be enable for 3.3V or 5V #define SIMPAD_DISPLAY_ON 0x0010 #define SIMPAD_PCMCIA_BUFF_DIS 0x0020 #define SIMPAD_MQ_RESET 0x0040 #define SIMPAD_PCMCIA_RESET 0x0080 #define SIMPAD_DECT_POWER_ON 0x0100 #define SIMPAD_IRDA_SD 0x0200 // Shutdown for powersave #define SIMPAD_RS232_ON 0x0400 #define SIMPAD_SD_MEDIAQ 0x0800 // Shutdown for powersave #define SIMPAD_LED2_ON 0x1000 #define SIMPAD_IRDA_MODE 0x2000 // Fast/Slow IrDA mode #define SIMPAD_ENABLE_5V 0x4000 // Enable 5V circuit #define SIMPAD_RESET_SIMCARD 0x8000 //SIMpad touchscreen backlight strength control #define SIMPAD_BACKLIGHT_CONTROL "/proc/driver/mq200/backlight" /* * The SIMpad exposes ChipSelect3 to userspace * via a proc filesystem file. Using this register * one can toggle power of serial, irda, dect circuits * change the video driver and display status and * many more things. * To not lose the current setting we read the current * cs3 setting and toggle the necessary bits and then * write it. */ static bool setCS3Bit( bool bitset, int bit ) { QFile file( SIMPAD_BOARDCONTROL ); if ( !file.open( IO_ReadOnly ) ) return false; unsigned int val = 0; bool ok = false; QTextStream stream( &file ); /* * Use QFile and QTextStream for parsing to be more * robust */ while ( !stream.atEnd() ) { QString line = stream.readLine(); if ( line.startsWith( "Chipselect3 : " ) ) { - val = line.mid( 15 ).toUInt( 0, 16 ); + val = line.mid( 14 ).toUInt( 0, 16 ); ok = true; break; } } if ( !ok ) return false; file.close(); /* * change the value */ val = bitset ? (val | bit) : (val & ~bit); /* * write it back */ int cs3_fd = ::open( SIMPAD_BOARDCONTROL, O_WRONLY ); if ( cs3_fd < 0 ) return false; char line[32]; ::snprintf(line, sizeof(line), "0x%04x\n", val); ::write(cs3_fd, line, strlen(line)); ::close(cs3_fd); return true; } QValueList <OLed> SIMpad::ledList() const { QValueList <OLed> vl; vl << Led_Power; //FIXME which LED is LED2 ? The green one or the amber one? //vl << Led_Mail; //TODO find out if LED1 is accessible anyway return vl; } QValueList <OLedState> SIMpad::ledStateList ( OLed l ) const { QValueList <OLedState> vl; if ( l == Led_Power ) //FIXME which LED is LED2 ? The green one or the amber one? vl << Led_Off << Led_On; //else if ( l == Led_Mail ) //TODO find out if LED1 is accessible anyway //vl << Led_Off; return vl; } OLedState SIMpad::ledState ( OLed l ) const { switch ( l ) { case Led_Power: return m_leds [0]; //case Led_Mail: // return m_leds [1]; default: return Led_Off; } } bool SIMpad::setLedState ( OLed l, OLedState st ) { |