code: async def read_portrait_landscape(self, callback=None):
          
          register = self.MMA8452Q_Register['PL_STATUS']
          await self.board.i2c_read_request(self.address, register, 1,
                                                 Constants.I2C_READ | Constants.I2C_END_TX_MASK,
                                                 self.data_val, Constants.CB_TYPE_ASYNCIO)
  
          pl_status = await self.wait_for_read_result()
          pl_status = pl_status[self.data_start]
          if pl_status & 0x40:  # Z-tilt lockout
              pl_status = self.LOCKOUT
          else:  # Otherwise return LAPO status
              pl_status = (pl_status & 0x6) >> 1
  
          if callback:
              await callback(pl_status)
          await asyncio.sleep(.001)
  
          return pl_status
docs: This function reads the portrait/landscape status register of the MMA8452Q.
          It will return either PORTRAIT_U, PORTRAIT_D, LANDSCAPE_R, LANDSCAPE_L,
          or LOCKOUT. LOCKOUT indicates that the sensor is in neither p or ls.
          :param callback: Callback function
          :returns: See above.