úÎ]VËZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYSafe  )Clock phase (CPHA) for SPI transmissions.,Clock polarity (CPOL) for SPI transmissions.PThis describes which Chip Select pins are asserted (used in SPI communications).$Specifies the SPI data bit ordering. Either high or low. +This describes the address of an I2C slave. OA GPIO pin can be either set to input mode, output mode or an alternative mode.âThis describes the pins on the Raspberry Pi boards. Since the BCM2835 SOC internally uses different numbers (and these numbers differ between versions, the library internally translates this pin number to the correct number.@Pins for the P1 connector of the V2 revision of the Raspberry Pi(@Pins for the P5 connector of the V2 revision of the Raspberry Pi,@Pins for the P1 connector of the V1 revision of the Raspberry Pi=kAny IO computation that accesses the GPIO pins using this library should be wrapped with this function; ie withGPIO $ do foo'. It prepares the file descriptors to dev˜mem and makes sure everything is safely deallocated if an exception occurs. The behavior when accessing the GPIO outside of this function is undefined.>eAny IO computation that uses the I2C bus using this library should be wrapped with this function; ie withI2C $ do fooÁ. It prepares the relevant pins for use with the I2C protocol and makes sure everything is safely returned to normal if an exception occurs. If you only use the GPIO pins for I2C, you can do withGPIO . withI2C $ do fooq and it will work as expected. WARNING: after this function returns, the I2C pins will be set to Input, so use @$ if you want to use them for output.?oAny IO computation that uses the SPI functionality using this library should be wrapped with this function; ie withSPI $ do fooÁ. It prepares the relevant pins for use with the SPI protocol and makes sure everything is safely returned to normal if an exception occurs. If you only use the GPIO pins for SPI, you can do withGPIO . withSPI $ do fooq and it will work as expected. WARNING: after this function returns, the SPI pins will be set to Input, so use @$ if you want to use them for output.@Sets the pin to either   or  mode.A!Sets the specified pin to either Z or [.B/Returns the current state of the specified pin.C@Sets the clock divider for (and hence the speed of) the I2C bus.D"Sets the baud rate of the I2C bus.EWrites the data in the  ByteString to the specified I2C  +. Throws an IOException if an error occurs.F#Reads num bytes from the specified  +. Throws an IOException if an error occurs.GWrites the data in the  ByteString to the specified  _, then issues a "repeated start" (with no prior stop) and then reads num bytes from the same  I. Necessary for devices that require such behavior, such as the MLX90620.H:Sets the chip select pin(s). When a transfer is made with M or N>, the selected pin(s) will be asserted during the transfer. I=Sets the SPI clock divider and therefore the SPI clock speed.JÆSet the bit order to be used for transmit and receive. The bcm2835 SPI0 only supports MSBFirst, so if you select LSBFirst, the bytes will be reversed in software. The library defaults to MSBFirst.KSSets the chip select pin polarity for a given pin(s). When a transfer is made with M or NÁ, the currently selected chip select pin(s) will be asserted to the LogicLevel supplied. When transfers are not happening, the chip select pin(s) return to the complement (inactive) value. L9Sets the SPI clock polarity and phase (ie, CPOL and CPHA)M€Transfers one byte to and from the currently selected SPI slave. Asserts the currently selected CS pins (as previously set by H”) during the transfer. Clocks the 8 bit value out on MOSI, and simultaneously clocks in data from MISO. Returns the read data byte from the slave.NŸTransfers any number of bytes to and from the currently selected SPI slave, one byte at a time. Asserts the currently selected CS pins (as previously set by He) during the transfer. Clocks 8 bit bytes out on MOSI, and simultaneously clocks in data from MISO.OsAny IO computation that uses the AUX SPI functionality using this library should be wrapped with this function; ie withAUXSPI $ do fooÁ. It prepares the relevant pins for use with the SPI protocol and makes sure everything is safely returned to normal if an exception occurs. If you only use the GPIO pins for SPI, you can do withGPIO . withAUXSPI $ do fooq and it will work as expected. WARNING: after this function returns, the SPI pins will be set to Input, so use @$ if you want to use them for output.PASets the AUX SPI clock divider and therefore the SPI clock speed.QÓTransfers one byte to and from the SPI slave. Asserts the CS2 pin during the transfer. Clocks the 8 bit value out on MOSI, and simultaneously clocks in data from MISO. Returns the read data byte from the slave.r  !"#$%&'()*+,-./0123456789:;<\]^_`abcdefghijklmnopqrstuvw=>?xy@ABzCDEFGHIJKLMNOPQRR  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR !"#$%&'()*+,-./0123456789:;<   =@BA>CDEFGO?HJKPILQMN=  ' !"#$%&'()*+,-./0123456789:;<\]^_`abcdefghijklmnopqrstuvw=>?xy@ABzCDEFGHIJKLMNOPQR{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^\]_`abcdefghijklmnopqrstuvwxyz{|}~ HPi-0.7.0-6wFEnNhkcfF16Gpsh2HohMSystem.RaspberryPi.GPIOCPHACPOLSPIPinCS0CS1CS2CSNONE SPIBitOrderLSBFirstMSBFirst LogicLevelAddressPinModeInputOutputAlt0Alt1Alt2Alt3Alt4Alt5PinPin03Pin05Pin07Pin08Pin10Pin11Pin12Pin13Pin15Pin16Pin18Pin19Pin21Pin22Pin23Pin24Pin26Pin36PinP5_03PinP5_04PinP5_05PinP5_06PinV1_03PinV1_05PinV1_07PinV1_08PinV1_10PinV1_11PinV1_12PinV1_13PinV1_15PinV1_16PinV1_18PinV1_19PinV1_21PinV1_22PinV1_23PinV1_24PinV1_26withGPIOwithI2CwithSPIsetPinFunctionwritePinreadPinsetI2cClockDividersetI2cBaudRatewriteI2CreadI2CwriteReadRSI2C chipSelectSPIsetClockDividerSPIsetBitOrderSPIsetChipSelectPolaritySPIsetDataModeSPI transferSPItransferManySPI withAUXSPIsetClockDividerAUXSPItransferAUXSPI $fEnumPinMode$fEqPin $fShowPin $fEqPinMode $fShowPinMode $fEqSPIPin $fShowSPIPin $fEnumSPIPinghc-prim GHC.TypesTrueFalsec_setClockDividerAUXSPIc_transferAUXSPI stopAUXSPI initAUXSPIc_setDataModeSPIc_setClockDividerSPIc_setChipSelectPolarity c_setBitOrderc_chipSelectSPIc_transferManySPI c_transferSPIstopSPIinitSPIc_writeReadRSI2C c_readI2C c_writeI2Cc_setBaudRateI2Cc_setClockDividerI2Cc_setSlaveAddressI2CstopI2CinitI2C c_readPin c_writePinc_setPinFunctionsetDebugBCM2835 stopBCM2835 initBCM2835table actOnResultgetHwPin setI2cAddress