libsdhcdrivers: Enable reading Present State

Upper layer might be interested in reading Present State Register,
so function was added for reading it.
diff --git a/libsdhcdrivers/include/sdhc/sdio.h b/libsdhcdrivers/include/sdhc/sdio.h
index cdd3c64..d7dd789 100644
--- a/libsdhcdrivers/include/sdhc/sdio.h
+++ b/libsdhcdrivers/include/sdhc/sdio.h
@@ -27,6 +27,8 @@
     int (*handle_irq)(struct sdio_host_dev *sdio, int irq);
     int (*is_voltage_compatible)(struct sdio_host_dev *sdio, int mv);
     int (*nth_irq)(struct sdio_host_dev *sdio, int n);
+    uint32_t (*get_present_state)(struct sdio_host_dev *sdio);
+
     void *priv;
 };
 typedef struct sdio_host_dev sdio_host_dev_t;
@@ -80,6 +82,19 @@
 }
 
 /**
+ * @brief   Returns Present State Register's value
+ *
+ * @return  Value of the Present State Register, see SD specification for more
+ *          details.
+ */
+static inline uint32_t sdio_get_present_state(
+    sdio_host_dev_t *sdio //!< [in] Sdio handle.
+)
+{
+    return sdio->get_present_state(sdio);
+}
+
+/**
  * Passes control to the IRQ handler of the provided SDIO device
  * @param[in] sdio A handle to an initialised SDIO driver
  * @param[in] irq  The IRQ number that was triggered.
diff --git a/libsdhcdrivers/src/sdhc.c b/libsdhcdrivers/src/sdhc.c
index 29f926e..7710ef7 100644
--- a/libsdhcdrivers/src/sdhc.c
+++ b/libsdhcdrivers/src/sdhc.c
@@ -180,13 +180,12 @@
     }
 }
 
-static inline enum dma_mode get_dma_mode(struct sdhc *host, struct mmc_cmd *cmd) {
-    if (cmd->data == NULL)
-    {
+static inline enum dma_mode get_dma_mode(struct sdhc *host, struct mmc_cmd *cmd)
+{
+    if (cmd->data == NULL) {
         return DMA_MODE_NONE;
     }
-    if (cmd->data->pbuf == 0)
-    {
+    if (cmd->data->pbuf == 0) {
         return DMA_MODE_NONE;
     }
     /* Currently only SDMA supported */
@@ -661,6 +660,10 @@
     }
 }
 
+static uint32_t sdhc_get_present_state_register(sdio_host_dev_t *sdio)
+{
+    return readl(sdio_get_sdhc(sdio)->base + PRES_STATE);
+}
 
 int sdhc_init(void *iobase, const int *irq_table, int nirqs, ps_io_ops_t *io_ops,
               sdio_host_dev_t *dev)
@@ -687,6 +690,7 @@
     dev->send_command = &sdhc_send_cmd;
     dev->is_voltage_compatible = &sdhc_is_voltage_compatible;
     dev->reset = &sdhc_reset;
+    dev->get_present_state = &sdhc_get_present_state_register;
     dev->priv = sdhc;
     /* Clear IRQs */
     writel(0, sdhc->base + INT_STATUS_EN);