]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - drivers/net/fsl-mc/dpio/dpio.c
driver: net: fsl-mc: Add create, destroy APIs in flibs
[karo-tx-uboot.git] / drivers / net / fsl-mc / dpio / dpio.c
index cd3fd50fdd9627addfe9dc521253b572d9362490..b61df52860e50351d47478275e01b9e1e75f3cb7 100644 (file)
@@ -48,6 +48,46 @@ int dpio_close(struct fsl_mc_io *mc_io,
        return mc_send_command(mc_io, &cmd);
 }
 
+int dpio_create(struct fsl_mc_io *mc_io,
+               uint32_t cmd_flags,
+               const struct dpio_cfg *cfg,
+               uint16_t *token)
+{
+       struct mc_command cmd = { 0 };
+       int err;
+
+       /* prepare command */
+       cmd.header = mc_encode_cmd_header(DPIO_CMDID_CREATE,
+                                         cmd_flags,
+                                         0);
+       DPIO_CMD_CREATE(cmd, cfg);
+
+       /* send command to mc*/
+       err = mc_send_command(mc_io, &cmd);
+       if (err)
+               return err;
+
+       /* retrieve response parameters */
+       *token = MC_CMD_HDR_READ_TOKEN(cmd.header);
+
+       return 0;
+}
+
+int dpio_destroy(struct fsl_mc_io *mc_io,
+                uint32_t cmd_flags,
+                uint16_t token)
+{
+       struct mc_command cmd = { 0 };
+
+       /* prepare command */
+       cmd.header = mc_encode_cmd_header(DPIO_CMDID_DESTROY,
+                                         cmd_flags,
+                                         token);
+
+       /* send command to mc*/
+       return mc_send_command(mc_io, &cmd);
+}
+
 int dpio_enable(struct fsl_mc_io *mc_io,
                uint32_t cmd_flags,
                uint16_t token)