MLK-14599-1 soc:imx8:Update SCFW API
authorRanjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Fri, 31 Mar 2017 15:29:19 +0000 (10:29 -0500)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:21:48 +0000 (15:21 -0500)
Update SCFW API to the following commit in SCFW git:
"
'commit: ("a620caf7444c45715b68b5cf128219005598365f")'
Author: Mike <michael.kjar@nxp.com>
Date:   Thu Mar 30 18:35:27 2017 -0500

Added a DDR Stress Test to the test folder

- New DDR test is like the stress test where we increment/sweep the DDR freq
- More tests may be added as development continues
- Modified mx8qm/soc.h to boot the A72 to DDR when building with option qmddr
"

Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
19 files changed:
drivers/pinctrl/freescale/pinctrl-imx8qxp.c
drivers/soc/imx/sc/svc/irq/rpc.h
drivers/soc/imx/sc/svc/misc/rpc.h
drivers/soc/imx/sc/svc/misc/rpc_clnt.c
drivers/soc/imx/sc/svc/pad/rpc.h
drivers/soc/imx/sc/svc/pad/rpc_clnt.c
drivers/soc/imx/sc/svc/pm/rpc.h
drivers/soc/imx/sc/svc/pm/rpc_clnt.c
drivers/soc/imx/sc/svc/rm/rpc.h
drivers/soc/imx/sc/svc/timer/rpc.h
drivers/soc/imx/sc/svc/timer/rpc_clnt.c
include/dt-bindings/pinctrl/pins-imx8qxp.h
include/dt-bindings/soc/imx_rsrc.h
include/soc/imx8/sc/svc/irq/api.h
include/soc/imx8/sc/svc/misc/api.h
include/soc/imx8/sc/svc/pad/api.h
include/soc/imx8/sc/svc/pm/api.h
include/soc/imx8/sc/svc/timer/api.h
include/soc/imx8/sc/types.h

index 440baec..9bd6ee0 100644 (file)
@@ -49,7 +49,7 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_EMMC0_DATA7),
        IMX_PINCTRL_PIN(SC_P_EMMC0_STROBE),
        IMX_PINCTRL_PIN(SC_P_EMMC0_RESET_B),
-       IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX),
+       IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX0),
        IMX_PINCTRL_PIN(SC_P_USDHC1_RESET_B),
        IMX_PINCTRL_PIN(SC_P_USDHC1_VSELECT),
        IMX_PINCTRL_PIN(SC_P_USDHC1_WP),
@@ -74,7 +74,7 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_ENET0_RGMII_RXD1),
        IMX_PINCTRL_PIN(SC_P_ENET0_RGMII_RXD2),
        IMX_PINCTRL_PIN(SC_P_ENET0_RGMII_RXD3),
-       IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB),
+       IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0),
        IMX_PINCTRL_PIN(SC_P_ENET0_REFCLK_125M_25M),
        IMX_PINCTRL_PIN(SC_P_ENET0_MDIO),
        IMX_PINCTRL_PIN(SC_P_ENET0_MDC),
@@ -85,8 +85,6 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_FLEXCAN1_TX),
        IMX_PINCTRL_PIN(SC_P_UART0_RX),
        IMX_PINCTRL_PIN(SC_P_UART0_TX),
-       IMX_PINCTRL_PIN(SC_P_UART0_RTS_B),
-       IMX_PINCTRL_PIN(SC_P_UART0_CTS_B),
        IMX_PINCTRL_PIN(SC_P_UART1_TX),
        IMX_PINCTRL_PIN(SC_P_UART1_RX),
        IMX_PINCTRL_PIN(SC_P_UART1_RTS_B),
@@ -101,13 +99,9 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_SPI2_SDO),
        IMX_PINCTRL_PIN(SC_P_SPI2_SDI),
        IMX_PINCTRL_PIN(SC_P_SPI2_CS0),
-       IMX_PINCTRL_PIN(SC_P_SPI2_CS1),
        IMX_PINCTRL_PIN(SC_P_SAI1_RXC),
        IMX_PINCTRL_PIN(SC_P_SAI1_RXD),
        IMX_PINCTRL_PIN(SC_P_SAI1_RXFS),
-       IMX_PINCTRL_PIN(SC_P_SAI1_TXC),
-       IMX_PINCTRL_PIN(SC_P_SAI1_TXD),
-       IMX_PINCTRL_PIN(SC_P_SAI1_TXFS),
        IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHT),
        IMX_PINCTRL_PIN(SC_P_ESAI0_FSR),
        IMX_PINCTRL_PIN(SC_P_ESAI0_FST),
@@ -129,7 +123,6 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_SPI3_CS1),
        IMX_PINCTRL_PIN(SC_P_MCLK_IN0),
        IMX_PINCTRL_PIN(SC_P_MCLK_OUT0),
-       IMX_PINCTRL_PIN(SC_P_FTM0),
        IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB),
        IMX_PINCTRL_PIN(SC_P_ADC_IN1),
        IMX_PINCTRL_PIN(SC_P_ADC_IN0),
@@ -189,15 +182,6 @@ static const struct pinctrl_pin_desc imx8qxp_pinctrl_pads[] = {
        IMX_PINCTRL_PIN(SC_P_QSPI0B_DQS),
        IMX_PINCTRL_PIN(SC_P_QSPI0B_SS0_B),
        IMX_PINCTRL_PIN(SC_P_QSPI0B_SS1_B),
-       IMX_PINCTRL_PIN(SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI0),
-       IMX_PINCTRL_PIN(SC_P_XTALI),
-       IMX_PINCTRL_PIN(SC_P_XTALO),
-       IMX_PINCTRL_PIN(SC_P_ANA_TEST_OUT_P),
-       IMX_PINCTRL_PIN(SC_P_ANA_TEST_OUT_N),
-       IMX_PINCTRL_PIN(SC_P_RTC_XTALI),
-       IMX_PINCTRL_PIN(SC_P_RTC_XTALO),
-       IMX_PINCTRL_PIN(SC_P_PMIC_ON_REQ),
-       IMX_PINCTRL_PIN(SC_P_ON_OFF_BUTTON),
 };
 
 static struct imx_pinctrl_soc_info imx8qxp_pinctrl_info = {
index e2707a4..93ce7c3 100644 (file)
@@ -25,9 +25,9 @@
  * This type is used to indicate RPC IRQ function calls.
  */
 typedef enum irq_func_e {
-       IRQ_FUNC_UNKNOWN,       /* Unknown function */
-       IRQ_FUNC_ENABLE,        /* Index for irq_enable() RPC call */
-       IRQ_FUNC_STATUS,        /* Index for irq_status() RPC call */
+       IRQ_FUNC_UNKNOWN = 0,   /* Unknown function */
+       IRQ_FUNC_ENABLE = 1,    /* Index for irq_enable() RPC call */
+       IRQ_FUNC_STATUS = 2,    /* Index for irq_status() RPC call */
 } irq_func_t;
 
 /* Functions */
index e0751ac..2e9adbe 100644 (file)
  * This type is used to indicate RPC MISC function calls.
  */
 typedef enum misc_func_e {
-       MISC_FUNC_UNKNOWN,      /* Unknown function */
-       MISC_FUNC_SET_CONTROL,  /* Index for misc_set_control() RPC call */
-       MISC_FUNC_GET_CONTROL,  /* Index for misc_get_control() RPC call */
-       MISC_FUNC_SET_ARI,      /* Index for misc_set_ari() RPC call */
-       MISC_FUNC_SET_MAX_DMA_GROUP,    /* Index for misc_set_max_dma_group() RPC call */
-       MISC_FUNC_SET_DMA_GROUP,        /* Index for misc_set_dma_group() RPC call */
-       MISC_FUNC_WAVEFORM_CAPTURE,     /* Index for misc_waveform_capture() RPC call */
-       MISC_FUNC_BOOT_STATUS,  /* Index for misc_boot_status() RPC call */
-       MISC_FUNC_SECO_IMAGE_LOAD,      /* Index for misc_seco_image_load() RPC call */
-       MISC_FUNC_SECO_AUTHENTICATE,    /* Index for misc_seco_authenticate() RPC call */
+       MISC_FUNC_UNKNOWN = 0,  /* Unknown function */
+       MISC_FUNC_SET_CONTROL = 1,      /* Index for misc_set_control() RPC call */
+       MISC_FUNC_GET_CONTROL = 2,      /* Index for misc_get_control() RPC call */
+       MISC_FUNC_SET_MAX_DMA_GROUP = 4,        /* Index for misc_set_max_dma_group() RPC call */
+       MISC_FUNC_SET_DMA_GROUP = 5,    /* Index for misc_set_dma_group() RPC call */
+       MISC_FUNC_SECO_IMAGE_LOAD = 8,  /* Index for misc_seco_image_load() RPC call */
+       MISC_FUNC_SECO_AUTHENTICATE = 9,        /* Index for misc_seco_authenticate() RPC call */
+       MISC_FUNC_DEBUG_OUT = 10,       /* Index for misc_debug_out() RPC call */
+       MISC_FUNC_WAVEFORM_CAPTURE = 6, /* Index for misc_waveform_capture() RPC call */
+       MISC_FUNC_SET_ARI = 3,  /* Index for misc_set_ari() RPC call */
+       MISC_FUNC_BOOT_STATUS = 7,      /* Index for misc_boot_status() RPC call */
 } misc_func_t;
 
 /* Functions */
index bacaa08..6d71d5c 100644 (file)
@@ -44,7 +44,7 @@ sc_err_t sc_misc_set_control(sc_ipc_t ipc, sc_rsrc_t resource,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -65,137 +65,154 @@ sc_err_t sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource,
        if (val != NULL)
                *val = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_misc_set_ari(sc_ipc_t ipc, sc_rsrc_t resource,
-                        sc_rsrc_t resource_mst, uint16_t ari, bool enable)
+sc_err_t sc_misc_set_max_dma_group(sc_ipc_t ipc, sc_rm_pt_t pt,
+                                  sc_misc_dma_group_t max)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_SET_ARI;
-       RPC_D16(&msg, 0) = resource;
-       RPC_D16(&msg, 2) = resource_mst;
-       RPC_D16(&msg, 4) = ari;
-       RPC_D8(&msg, 6) = enable;
-       RPC_SIZE(&msg) = 3;
+       RPC_FUNC(&msg) = MISC_FUNC_SET_MAX_DMA_GROUP;
+       RPC_D8(&msg, 0) = pt;
+       RPC_D8(&msg, 1) = max;
+       RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_misc_set_max_dma_group(sc_ipc_t ipc, sc_rm_pt_t pt,
-                                  sc_misc_dma_group_t max)
+sc_err_t sc_misc_set_dma_group(sc_ipc_t ipc, sc_rsrc_t resource,
+                              sc_misc_dma_group_t group)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_SET_MAX_DMA_GROUP;
-       RPC_D8(&msg, 0) = pt;
-       RPC_D8(&msg, 1) = max;
+       RPC_FUNC(&msg) = MISC_FUNC_SET_DMA_GROUP;
+       RPC_D16(&msg, 0) = resource;
+       RPC_D8(&msg, 2) = group;
        RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_misc_set_dma_group(sc_ipc_t ipc, sc_rsrc_t resource,
-                              sc_misc_dma_group_t group)
+sc_err_t sc_misc_seco_image_load(sc_ipc_t ipc, uint32_t addr_src,
+                                uint32_t addr_dst, uint32_t len, bool fw)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_SET_DMA_GROUP;
-       RPC_D16(&msg, 0) = resource;
-       RPC_D8(&msg, 2) = group;
-       RPC_SIZE(&msg) = 2;
+       RPC_FUNC(&msg) = MISC_FUNC_SECO_IMAGE_LOAD;
+       RPC_D32(&msg, 0) = addr_src;
+       RPC_D32(&msg, 4) = addr_dst;
+       RPC_D32(&msg, 8) = len;
+       RPC_D8(&msg, 12) = fw;
+       RPC_SIZE(&msg) = 5;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_misc_waveform_capture(sc_ipc_t ipc, bool enable)
+sc_err_t sc_misc_seco_authenticate(sc_ipc_t ipc,
+                                  sc_misc_seco_auth_cmd_t cmd,
+                                  uint32_t addr_meta)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_WAVEFORM_CAPTURE;
-       RPC_D8(&msg, 0) = enable;
-       RPC_SIZE(&msg) = 2;
+       RPC_FUNC(&msg) = MISC_FUNC_SECO_AUTHENTICATE;
+       RPC_D32(&msg, 0) = addr_meta;
+       RPC_D8(&msg, 4) = cmd;
+       RPC_SIZE(&msg) = 3;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status)
+void sc_misc_debug_out(sc_ipc_t ipc, uint8_t ch)
 {
        sc_rpc_msg_t msg;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_BOOT_STATUS;
-       RPC_D8(&msg, 0) = status;
+       RPC_FUNC(&msg) = MISC_FUNC_DEBUG_OUT;
+       RPC_D8(&msg, 0) = ch;
        RPC_SIZE(&msg) = 2;
 
-       sc_call_rpc(ipc, &msg, true);
+       sc_call_rpc(ipc, &msg, false);
+
+       return;
 }
 
-sc_err_t sc_misc_seco_image_load(sc_ipc_t ipc, uint32_t addr_src,
-                                uint32_t addr_dst, uint32_t len, bool fw)
+sc_err_t sc_misc_waveform_capture(sc_ipc_t ipc, bool enable)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_SECO_IMAGE_LOAD;
-       RPC_D32(&msg, 0) = addr_src;
-       RPC_D32(&msg, 4) = addr_dst;
-       RPC_D32(&msg, 8) = len;
-       RPC_D8(&msg, 12) = fw;
-       RPC_SIZE(&msg) = 5;
+       RPC_FUNC(&msg) = MISC_FUNC_WAVEFORM_CAPTURE;
+       RPC_D8(&msg, 0) = enable;
+       RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_misc_seco_authenticate(sc_ipc_t ipc,
-                                  sc_misc_seco_auth_cmd_t cmd,
-                                  uint32_t addr_meta)
+sc_err_t sc_misc_set_ari(sc_ipc_t ipc, sc_rsrc_t resource,
+                        sc_rsrc_t resource_mst, uint16_t ari, bool enable)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_MISC;
-       RPC_FUNC(&msg) = MISC_FUNC_SECO_AUTHENTICATE;
-       RPC_D32(&msg, 0) = addr_meta;
-       RPC_D8(&msg, 4) = cmd;
+       RPC_FUNC(&msg) = MISC_FUNC_SET_ARI;
+       RPC_D16(&msg, 0) = resource;
+       RPC_D16(&msg, 2) = resource_mst;
+       RPC_D16(&msg, 4) = ari;
+       RPC_D8(&msg, 6) = enable;
        RPC_SIZE(&msg) = 3;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
+}
+
+void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status)
+{
+       sc_rpc_msg_t msg;
+
+       RPC_VER(&msg) = SC_RPC_VERSION;
+       RPC_SVC(&msg) = SC_RPC_SVC_MISC;
+       RPC_FUNC(&msg) = MISC_FUNC_BOOT_STATUS;
+       RPC_D8(&msg, 0) = status;
+       RPC_SIZE(&msg) = 2;
+
+       sc_call_rpc(ipc, &msg, true);
+
+       return;
 }
 
 /**@}*/
index 24c6c05..08d9659 100644 (file)
  * This type is used to indicate RPC PAD function calls.
  */
 typedef enum pad_func_e {
-       PAD_FUNC_UNKNOWN,       /* Unknown function */
-       PAD_FUNC_SET_MUX,       /* Index for pad_set_mux() RPC call */
-       PAD_FUNC_SET_GP,        /* Index for pad_set_gp() RPC call */
-       PAD_FUNC_SET_GP_28LPP,  /* Index for pad_set_gp_28lpp() RPC call */
-       PAD_FUNC_SET_WAKEUP,    /* Index for pad_set_wakeup() RPC call */
-       PAD_FUNC_SET_ALL,       /* Index for pad_set_all() RPC call */
-       PAD_FUNC_GET_MUX,       /* Index for pad_get_mux() RPC call */
-       PAD_FUNC_GET_GP,        /* Index for pad_get_gp() RPC call */
-       PAD_FUNC_GET_GP_28LPP,  /* Index for pad_get_gp_28lpp() RPC call */
-       PAD_FUNC_GET_WAKEUP,    /* Index for pad_get_wakeup() RPC call */
-       PAD_FUNC_GET_ALL,       /* Index for pad_get_all() RPC call */
-       PAD_FUNC_SET_GP_28FDSOI,        /* Index for pad_set_gp_28fdsoi() RPC call */
-       PAD_FUNC_GET_GP_28FDSOI,        /* Index for pad_get_gp_28fdsoi() RPC call */
-       PAD_FUNC_SET_GP_28FDSOI_COMP,   /* Index for pad_set_gp_28fdsoi_comp() RPC call */
-       PAD_FUNC_GET_GP_28FDSOI_COMP,   /* Index for pad_get_gp_28fdsoi_comp() RPC call */
-       PAD_FUNC_SET,           /* Index for pad_set() RPC call */
-       PAD_FUNC_GET,           /* Index for pad_get() RPC call */
+       PAD_FUNC_UNKNOWN = 0,   /* Unknown function */
+       PAD_FUNC_SET_MUX = 1,   /* Index for pad_set_mux() RPC call */
+       PAD_FUNC_GET_MUX = 6,   /* Index for pad_get_mux() RPC call */
+       PAD_FUNC_SET_GP = 2,    /* Index for pad_set_gp() RPC call */
+       PAD_FUNC_GET_GP = 7,    /* Index for pad_get_gp() RPC call */
+       PAD_FUNC_SET_WAKEUP = 4,        /* Index for pad_set_wakeup() RPC call */
+       PAD_FUNC_GET_WAKEUP = 9,        /* Index for pad_get_wakeup() RPC call */
+       PAD_FUNC_SET_ALL = 5,   /* Index for pad_set_all() RPC call */
+       PAD_FUNC_GET_ALL = 10,  /* Index for pad_get_all() RPC call */
+       PAD_FUNC_SET = 15,      /* Index for pad_set() RPC call */
+       PAD_FUNC_GET = 16,      /* Index for pad_get() RPC call */
+       PAD_FUNC_SET_GP_28LPP = 3,      /* Index for pad_set_gp_28lpp() RPC call */
+       PAD_FUNC_GET_GP_28LPP = 8,      /* Index for pad_get_gp_28lpp() RPC call */
+       PAD_FUNC_SET_GP_28FDSOI = 11,   /* Index for pad_set_gp_28fdsoi() RPC call */
+       PAD_FUNC_GET_GP_28FDSOI = 12,   /* Index for pad_get_gp_28fdsoi() RPC call */
+       PAD_FUNC_SET_GP_28FDSOI_COMP = 13,      /* Index for pad_set_gp_28fdsoi_comp() RPC call */
+       PAD_FUNC_GET_GP_28FDSOI_COMP = 14,      /* Index for pad_get_gp_28fdsoi_comp() RPC call */
 } pad_func_t;
 
 /* Functions */
index 6b4c912..8978b4b 100644 (file)
@@ -45,7 +45,32 @@ sc_err_t sc_pad_set_mux(sc_ipc_t ipc, sc_pin_t pin,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
+}
+
+sc_err_t sc_pad_get_mux(sc_ipc_t ipc, sc_pin_t pin,
+                       uint8_t *mux, sc_pad_config_t *config,
+                       sc_pad_iso_t *iso)
+{
+       sc_rpc_msg_t msg;
+       uint8_t result;
+
+       RPC_VER(&msg) = SC_RPC_VERSION;
+       RPC_SVC(&msg) = SC_RPC_SVC_PAD;
+       RPC_FUNC(&msg) = PAD_FUNC_GET_MUX;
+       RPC_D16(&msg, 0) = pin;
+       RPC_SIZE(&msg) = 2;
+
+       sc_call_rpc(ipc, &msg, false);
+
+       result = RPC_R8(&msg);
+       if (mux != NULL)
+               *mux = RPC_D8(&msg, 0);
+       if (config != NULL)
+               *config = RPC_D8(&msg, 1);
+       if (iso != NULL)
+               *iso = RPC_D8(&msg, 2);
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_set_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t ctrl)
@@ -63,31 +88,26 @@ sc_err_t sc_pad_set_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t ctrl)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_set_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
-                            sc_pad_28lpp_dse_t dse, bool sre, bool hys,
-                            bool pe, sc_pad_28lpp_ps_t ps)
+sc_err_t sc_pad_get_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t *ctrl)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_SET_GP_28LPP;
+       RPC_FUNC(&msg) = PAD_FUNC_GET_GP;
        RPC_D16(&msg, 0) = pin;
-       RPC_D8(&msg, 2) = dse;
-       RPC_D8(&msg, 3) = ps;
-       RPC_D8(&msg, 4) = sre;
-       RPC_D8(&msg, 5) = hys;
-       RPC_D8(&msg, 6) = pe;
-       RPC_SIZE(&msg) = 3;
+       RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
+       if (ctrl != NULL)
+               *ctrl = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_set_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t wakeup)
@@ -105,7 +125,26 @@ sc_err_t sc_pad_set_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t wakeup)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
+}
+
+sc_err_t sc_pad_get_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t *wakeup)
+{
+       sc_rpc_msg_t msg;
+       uint8_t result;
+
+       RPC_VER(&msg) = SC_RPC_VERSION;
+       RPC_SVC(&msg) = SC_RPC_SVC_PAD;
+       RPC_FUNC(&msg) = PAD_FUNC_GET_WAKEUP;
+       RPC_D16(&msg, 0) = pin;
+       RPC_SIZE(&msg) = 2;
+
+       sc_call_rpc(ipc, &msg, false);
+
+       result = RPC_R8(&msg);
+       if (wakeup != NULL)
+               *wakeup = RPC_D8(&msg, 0);
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_set_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t mux,
@@ -129,128 +168,126 @@ sc_err_t sc_pad_set_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t mux,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_get_mux(sc_ipc_t ipc, sc_pin_t pin,
-                       uint8_t *mux, sc_pad_config_t *config,
-                       sc_pad_iso_t *iso)
+sc_err_t sc_pad_get_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t *mux,
+                       sc_pad_config_t *config, sc_pad_iso_t *iso,
+                       uint32_t *ctrl, sc_pad_wakeup_t *wakeup)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET_MUX;
+       RPC_FUNC(&msg) = PAD_FUNC_GET_ALL;
        RPC_D16(&msg, 0) = pin;
        RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
+       if (ctrl != NULL)
+               *ctrl = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
        if (mux != NULL)
-               *mux = RPC_D8(&msg, 0);
+               *mux = RPC_D8(&msg, 4);
        if (config != NULL)
-               *config = RPC_D8(&msg, 1);
+               *config = RPC_D8(&msg, 5);
        if (iso != NULL)
-               *iso = RPC_D8(&msg, 2);
-       return (sc_err_t) result;
+               *iso = RPC_D8(&msg, 6);
+       if (wakeup != NULL)
+               *wakeup = RPC_D8(&msg, 7);
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_get_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t *ctrl)
+sc_err_t sc_pad_set(sc_ipc_t ipc, sc_pin_t pin, uint32_t val)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET_GP;
-       RPC_D16(&msg, 0) = pin;
-       RPC_SIZE(&msg) = 2;
+       RPC_FUNC(&msg) = PAD_FUNC_SET;
+       RPC_D32(&msg, 0) = val;
+       RPC_D16(&msg, 4) = pin;
+       RPC_SIZE(&msg) = 3;
 
        sc_call_rpc(ipc, &msg, false);
 
-       if (ctrl != NULL)
-               *ctrl = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_get_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
-                            sc_pad_28lpp_dse_t *dse, bool *sre, bool *hys,
-                            bool *pe, sc_pad_28lpp_ps_t *ps)
+sc_err_t sc_pad_get(sc_ipc_t ipc, sc_pin_t pin, uint32_t *val)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET_GP_28LPP;
+       RPC_FUNC(&msg) = PAD_FUNC_GET;
        RPC_D16(&msg, 0) = pin;
        RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
+       if (val != NULL)
+               *val = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       if (dse != NULL)
-               *dse = RPC_D8(&msg, 0);
-       if (ps != NULL)
-               *ps = RPC_D8(&msg, 1);
-       if (sre != NULL)
-               *sre = RPC_D8(&msg, 2);
-       if (hys != NULL)
-               *hys = RPC_D8(&msg, 3);
-       if (pe != NULL)
-               *pe = RPC_D8(&msg, 4);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_get_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t *wakeup)
+sc_err_t sc_pad_set_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
+                            sc_pad_28lpp_dse_t dse, bool sre, bool hys,
+                            bool pe, sc_pad_28lpp_ps_t ps)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET_WAKEUP;
+       RPC_FUNC(&msg) = PAD_FUNC_SET_GP_28LPP;
        RPC_D16(&msg, 0) = pin;
-       RPC_SIZE(&msg) = 2;
+       RPC_D8(&msg, 2) = dse;
+       RPC_D8(&msg, 3) = ps;
+       RPC_D8(&msg, 4) = sre;
+       RPC_D8(&msg, 5) = hys;
+       RPC_D8(&msg, 6) = pe;
+       RPC_SIZE(&msg) = 3;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       if (wakeup != NULL)
-               *wakeup = RPC_D8(&msg, 0);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pad_get_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t *mux,
-                       sc_pad_config_t *config, sc_pad_iso_t *iso,
-                       uint32_t *ctrl, sc_pad_wakeup_t *wakeup)
+sc_err_t sc_pad_get_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
+                            sc_pad_28lpp_dse_t *dse, bool *sre, bool *hys,
+                            bool *pe, sc_pad_28lpp_ps_t *ps)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET_ALL;
+       RPC_FUNC(&msg) = PAD_FUNC_GET_GP_28LPP;
        RPC_D16(&msg, 0) = pin;
        RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
-       if (ctrl != NULL)
-               *ctrl = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       if (mux != NULL)
-               *mux = RPC_D8(&msg, 4);
-       if (config != NULL)
-               *config = RPC_D8(&msg, 5);
-       if (iso != NULL)
-               *iso = RPC_D8(&msg, 6);
-       if (wakeup != NULL)
-               *wakeup = RPC_D8(&msg, 7);
-       return (sc_err_t) result;
+       if (dse != NULL)
+               *dse = RPC_D8(&msg, 0);
+       if (ps != NULL)
+               *ps = RPC_D8(&msg, 1);
+       if (sre != NULL)
+               *sre = RPC_D8(&msg, 2);
+       if (hys != NULL)
+               *hys = RPC_D8(&msg, 3);
+       if (pe != NULL)
+               *pe = RPC_D8(&msg, 4);
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_set_gp_28fdsoi(sc_ipc_t ipc, sc_pin_t pin,
@@ -270,7 +307,7 @@ sc_err_t sc_pad_set_gp_28fdsoi(sc_ipc_t ipc, sc_pin_t pin,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_get_gp_28fdsoi(sc_ipc_t ipc, sc_pin_t pin,
@@ -293,7 +330,7 @@ sc_err_t sc_pad_get_gp_28fdsoi(sc_ipc_t ipc, sc_pin_t pin,
                *dse = RPC_D8(&msg, 0);
        if (ps != NULL)
                *ps = RPC_D8(&msg, 1);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_set_gp_28fdsoi_comp(sc_ipc_t ipc, sc_pin_t pin,
@@ -318,7 +355,7 @@ sc_err_t sc_pad_set_gp_28fdsoi_comp(sc_ipc_t ipc, sc_pin_t pin,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pad_get_gp_28fdsoi_comp(sc_ipc_t ipc, sc_pin_t pin,
@@ -353,44 +390,7 @@ sc_err_t sc_pad_get_gp_28fdsoi_comp(sc_ipc_t ipc, sc_pin_t pin,
                *nasrc_sel = RPC_D8(&msg, 5);
        if (compok != NULL)
                *compok = RPC_D8(&msg, 6);
-       return (sc_err_t) result;
-}
-
-sc_err_t sc_pad_set(sc_ipc_t ipc, sc_pin_t pin, uint32_t val)
-{
-       sc_rpc_msg_t msg;
-       uint8_t result;
-
-       RPC_VER(&msg) = SC_RPC_VERSION;
-       RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_SET;
-       RPC_D32(&msg, 0) = val;
-       RPC_D16(&msg, 4) = pin;
-       RPC_SIZE(&msg) = 3;
-
-       sc_call_rpc(ipc, &msg, false);
-
-       result = RPC_R8(&msg);
-       return (sc_err_t) result;
-}
-
-sc_err_t sc_pad_get(sc_ipc_t ipc, sc_pin_t pin, uint32_t *val)
-{
-       sc_rpc_msg_t msg;
-       uint8_t result;
-
-       RPC_VER(&msg) = SC_RPC_VERSION;
-       RPC_SVC(&msg) = SC_RPC_SVC_PAD;
-       RPC_FUNC(&msg) = PAD_FUNC_GET;
-       RPC_D16(&msg, 0) = pin;
-       RPC_SIZE(&msg) = 2;
-
-       sc_call_rpc(ipc, &msg, false);
-
-       if (val != NULL)
-               *val = RPC_D32(&msg, 0);
-       result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 /**@}*/
index d2d671d..d307b64 100644 (file)
  * This type is used to indicate RPC PM function calls.
  */
 typedef enum pm_func_e {
-       PM_FUNC_UNKNOWN,        /* Unknown function */
-       PM_FUNC_SET_SYS_POWER_MODE,     /* Index for pm_set_sys_power_mode() RPC call */
-       PM_FUNC_GET_SYS_POWER_MODE,     /* Index for pm_get_sys_power_mode() RPC call */
-       PM_FUNC_SET_RESOURCE_POWER_MODE,        /* Index for pm_set_resource_power_mode() RPC call */
-       PM_FUNC_GET_RESOURCE_POWER_MODE,        /* Index for pm_get_resource_power_mode() RPC call */
-       PM_FUNC_SET_CLOCK_RATE, /* Index for pm_set_clock_rate() RPC call */
-       PM_FUNC_GET_CLOCK_RATE, /* Index for pm_get_clock_rate() RPC call */
-       PM_FUNC_CLOCK_ENABLE,   /* Index for pm_clock_enable() RPC call */
-       PM_FUNC_BOOT,           /* Index for pm_boot() RPC call */
-       PM_FUNC_REBOOT,         /* Index for pm_reboot() RPC call */
-       PM_FUNC_RESET_REASON,   /* Index for pm_reset_reason() RPC call */
-       PM_FUNC_CPU_START,      /* Index for pm_cpu_start() RPC call */
-       PM_FUNC_REBOOT_PARTITION,       /* Index for pm_reboot_partition() RPC call */
-       PM_FUNC_RESET,          /* Index for pm_reset() RPC call */
+       PM_FUNC_UNKNOWN = 0,    /* Unknown function */
+       PM_FUNC_SET_SYS_POWER_MODE = 1, /* Index for pm_set_sys_power_mode() RPC call */
+       PM_FUNC_GET_SYS_POWER_MODE = 2, /* Index for pm_get_sys_power_mode() RPC call */
+       PM_FUNC_SET_RESOURCE_POWER_MODE = 3,    /* Index for pm_set_resource_power_mode() RPC call */
+       PM_FUNC_GET_RESOURCE_POWER_MODE = 4,    /* Index for pm_get_resource_power_mode() RPC call */
+       PM_FUNC_SET_CLOCK_RATE = 5,     /* Index for pm_set_clock_rate() RPC call */
+       PM_FUNC_GET_CLOCK_RATE = 6,     /* Index for pm_get_clock_rate() RPC call */
+       PM_FUNC_CLOCK_ENABLE = 7,       /* Index for pm_clock_enable() RPC call */
+       PM_FUNC_RESET = 13,     /* Index for pm_reset() RPC call */
+       PM_FUNC_RESET_REASON = 10,      /* Index for pm_reset_reason() RPC call */
+       PM_FUNC_BOOT = 8,       /* Index for pm_boot() RPC call */
+       PM_FUNC_REBOOT = 9,     /* Index for pm_reboot() RPC call */
+       PM_FUNC_REBOOT_PARTITION = 12,  /* Index for pm_reboot_partition() RPC call */
+       PM_FUNC_CPU_START = 11, /* Index for pm_cpu_start() RPC call */
 } pm_func_t;
 
 /* Functions */
index b1d7188..9244d8b 100644 (file)
@@ -43,7 +43,7 @@ sc_err_t sc_pm_set_sys_power_mode(sc_ipc_t ipc, sc_rm_pt_t pt,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_get_sys_power_mode(sc_ipc_t ipc, sc_rm_pt_t pt,
@@ -63,7 +63,7 @@ sc_err_t sc_pm_get_sys_power_mode(sc_ipc_t ipc, sc_rm_pt_t pt,
        result = RPC_R8(&msg);
        if (mode != NULL)
                *mode = RPC_D8(&msg, 0);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_set_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -82,7 +82,7 @@ sc_err_t sc_pm_set_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_get_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -102,7 +102,7 @@ sc_err_t sc_pm_get_resource_power_mode(sc_ipc_t ipc, sc_rsrc_t resource,
        result = RPC_R8(&msg);
        if (mode != NULL)
                *mode = RPC_D8(&msg, 0);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_set_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -123,7 +123,7 @@ sc_err_t sc_pm_set_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource,
 
        *rate = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_get_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -144,7 +144,7 @@ sc_err_t sc_pm_get_clock_rate(sc_ipc_t ipc, sc_rsrc_t resource,
        if (rate != NULL)
                *rate = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_clock_enable(sc_ipc_t ipc, sc_rsrc_t resource,
@@ -165,44 +165,24 @@ sc_err_t sc_pm_clock_enable(sc_ipc_t ipc, sc_rsrc_t resource,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pm_boot(sc_ipc_t ipc, sc_rm_pt_t pt,
-                   sc_rsrc_t resource_cpu, sc_faddr_t boot_addr,
-                   sc_rsrc_t resource_mu, sc_rsrc_t resource_dev)
+sc_err_t sc_pm_reset(sc_ipc_t ipc, sc_pm_reset_type_t type)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PM;
-       RPC_FUNC(&msg) = PM_FUNC_BOOT;
-       RPC_D32(&msg, 0) = boot_addr >> 32;
-       RPC_D32(&msg, 4) = boot_addr;
-       RPC_D16(&msg, 8) = resource_cpu;
-       RPC_D16(&msg, 10) = resource_mu;
-       RPC_D16(&msg, 12) = resource_dev;
-       RPC_D8(&msg, 14) = pt;
-       RPC_SIZE(&msg) = 5;
+       RPC_FUNC(&msg) = PM_FUNC_RESET;
+       RPC_D8(&msg, 0) = type;
+       RPC_SIZE(&msg) = 2;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
-}
-
-void sc_pm_reboot(sc_ipc_t ipc, sc_pm_reset_type_t type)
-{
-       sc_rpc_msg_t msg;
-
-       RPC_VER(&msg) = SC_RPC_VERSION;
-       RPC_SVC(&msg) = SC_RPC_SVC_PM;
-       RPC_FUNC(&msg) = PM_FUNC_REBOOT;
-       RPC_D8(&msg, 0) = type;
-       RPC_SIZE(&msg) = 2;
-
-       sc_call_rpc(ipc, &msg, true);
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_pm_reset_reason(sc_ipc_t ipc, sc_pm_reset_reason_t *reason)
@@ -220,28 +200,46 @@ sc_err_t sc_pm_reset_reason(sc_ipc_t ipc, sc_pm_reset_reason_t *reason)
        result = RPC_R8(&msg);
        if (reason != NULL)
                *reason = RPC_D8(&msg, 0);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pm_cpu_start(sc_ipc_t ipc, sc_rsrc_t resource, bool enable,
-                        sc_faddr_t address)
+sc_err_t sc_pm_boot(sc_ipc_t ipc, sc_rm_pt_t pt,
+                   sc_rsrc_t resource_cpu, sc_faddr_t boot_addr,
+                   sc_rsrc_t resource_mu, sc_rsrc_t resource_dev)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PM;
-       RPC_FUNC(&msg) = PM_FUNC_CPU_START;
-       RPC_D32(&msg, 0) = address >> 32;
-       RPC_D32(&msg, 4) = address;
-       RPC_D16(&msg, 8) = resource;
-       RPC_D8(&msg, 10) = enable;
-       RPC_SIZE(&msg) = 4;
+       RPC_FUNC(&msg) = PM_FUNC_BOOT;
+       RPC_D32(&msg, 0) = boot_addr >> 32;
+       RPC_D32(&msg, 4) = boot_addr;
+       RPC_D16(&msg, 8) = resource_cpu;
+       RPC_D16(&msg, 10) = resource_mu;
+       RPC_D16(&msg, 12) = resource_dev;
+       RPC_D8(&msg, 14) = pt;
+       RPC_SIZE(&msg) = 5;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
+}
+
+void sc_pm_reboot(sc_ipc_t ipc, sc_pm_reset_type_t type)
+{
+       sc_rpc_msg_t msg;
+
+       RPC_VER(&msg) = SC_RPC_VERSION;
+       RPC_SVC(&msg) = SC_RPC_SVC_PM;
+       RPC_FUNC(&msg) = PM_FUNC_REBOOT;
+       RPC_D8(&msg, 0) = type;
+       RPC_SIZE(&msg) = 2;
+
+       sc_call_rpc(ipc, &msg, true);
+
+       return;
 }
 
 sc_err_t sc_pm_reboot_partition(sc_ipc_t ipc, sc_rm_pt_t pt,
@@ -260,24 +258,28 @@ sc_err_t sc_pm_reboot_partition(sc_ipc_t ipc, sc_rm_pt_t pt,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_pm_reset(sc_ipc_t ipc, sc_pm_reset_type_t type)
+sc_err_t sc_pm_cpu_start(sc_ipc_t ipc, sc_rsrc_t resource, bool enable,
+                        sc_faddr_t address)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_PM;
-       RPC_FUNC(&msg) = PM_FUNC_RESET;
-       RPC_D8(&msg, 0) = type;
-       RPC_SIZE(&msg) = 2;
+       RPC_FUNC(&msg) = PM_FUNC_CPU_START;
+       RPC_D32(&msg, 0) = address >> 32;
+       RPC_D32(&msg, 4) = address;
+       RPC_D16(&msg, 8) = resource;
+       RPC_D8(&msg, 10) = enable;
+       RPC_SIZE(&msg) = 4;
 
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 /**@}*/
index 189a324..25e6024 100644 (file)
  * This type is used to indicate RPC RM function calls.
  */
 typedef enum rm_func_e {
-       RM_FUNC_UNKNOWN,        /* Unknown function */
-       RM_FUNC_PARTITION_ALLOC,        /* Index for rm_partition_alloc() RPC call */
-       RM_FUNC_PARTITION_FREE, /* Index for rm_partition_free() RPC call */
-       RM_FUNC_PARTITION_STATIC,       /* Index for rm_partition_static() RPC call */
-       RM_FUNC_PARTITION_LOCK, /* Index for rm_partition_lock() RPC call */
-       RM_FUNC_GET_PARTITION,  /* Index for rm_get_partition() RPC call */
-       RM_FUNC_SET_PARENT,     /* Index for rm_set_parent() RPC call */
-       RM_FUNC_MOVE_ALL,       /* Index for rm_move_all() RPC call */
-       RM_FUNC_ASSIGN_RESOURCE,        /* Index for rm_assign_resource() RPC call */
-       RM_FUNC_SET_RESOURCE_MOVABLE,   /* Index for rm_set_resource_movable() RPC call */
-       RM_FUNC_SET_MASTER_ATTRIBUTES,  /* Index for rm_set_master_attributes() RPC call */
-       RM_FUNC_SET_MASTER_SID, /* Index for rm_set_master_sid() RPC call */
-       RM_FUNC_SET_PERIPHERAL_PERMISSIONS,     /* Index for rm_set_peripheral_permissions() RPC call */
-       RM_FUNC_IS_RESOURCE_OWNED,      /* Index for rm_is_resource_owned() RPC call */
-       RM_FUNC_IS_RESOURCE_MASTER,     /* Index for rm_is_resource_master() RPC call */
-       RM_FUNC_IS_RESOURCE_PERIPHERAL, /* Index for rm_is_resource_peripheral() RPC call */
-       RM_FUNC_GET_RESOURCE_INFO,      /* Index for rm_get_resource_info() RPC call */
-       RM_FUNC_MEMREG_ALLOC,   /* Index for rm_memreg_alloc() RPC call */
-       RM_FUNC_MEMREG_FREE,    /* Index for rm_memreg_free() RPC call */
-       RM_FUNC_ASSIGN_MEMREG,  /* Index for rm_assign_memreg() RPC call */
-       RM_FUNC_SET_MEMREG_PERMISSIONS, /* Index for rm_set_memreg_permissions() RPC call */
-       RM_FUNC_IS_MEMREG_OWNED,        /* Index for rm_is_memreg_owned() RPC call */
-       RM_FUNC_GET_MEMREG_INFO,        /* Index for rm_get_memreg_info() RPC call */
-       RM_FUNC_ASSIGN_PIN,     /* Index for rm_assign_pin() RPC call */
-       RM_FUNC_SET_PIN_MOVABLE,        /* Index for rm_set_pin_movable() RPC call */
-       RM_FUNC_IS_PIN_OWNED,   /* Index for rm_is_pin_owned() RPC call */
-       RM_FUNC_GET_DID,        /* Index for rm_get_did() RPC call */
+       RM_FUNC_UNKNOWN = 0,    /* Unknown function */
+       RM_FUNC_PARTITION_ALLOC = 1,    /* Index for rm_partition_alloc() RPC call */
+       RM_FUNC_PARTITION_FREE = 2,     /* Index for rm_partition_free() RPC call */
+       RM_FUNC_GET_DID = 26,   /* Index for rm_get_did() RPC call */
+       RM_FUNC_PARTITION_STATIC = 3,   /* Index for rm_partition_static() RPC call */
+       RM_FUNC_PARTITION_LOCK = 4,     /* Index for rm_partition_lock() RPC call */
+       RM_FUNC_GET_PARTITION = 5,      /* Index for rm_get_partition() RPC call */
+       RM_FUNC_SET_PARENT = 6, /* Index for rm_set_parent() RPC call */
+       RM_FUNC_MOVE_ALL = 7,   /* Index for rm_move_all() RPC call */
+       RM_FUNC_ASSIGN_RESOURCE = 8,    /* Index for rm_assign_resource() RPC call */
+       RM_FUNC_SET_RESOURCE_MOVABLE = 9,       /* Index for rm_set_resource_movable() RPC call */
+       RM_FUNC_SET_MASTER_ATTRIBUTES = 10,     /* Index for rm_set_master_attributes() RPC call */
+       RM_FUNC_SET_MASTER_SID = 11,    /* Index for rm_set_master_sid() RPC call */
+       RM_FUNC_SET_PERIPHERAL_PERMISSIONS = 12,        /* Index for rm_set_peripheral_permissions() RPC call */
+       RM_FUNC_IS_RESOURCE_OWNED = 13, /* Index for rm_is_resource_owned() RPC call */
+       RM_FUNC_IS_RESOURCE_MASTER = 14,        /* Index for rm_is_resource_master() RPC call */
+       RM_FUNC_IS_RESOURCE_PERIPHERAL = 15,    /* Index for rm_is_resource_peripheral() RPC call */
+       RM_FUNC_GET_RESOURCE_INFO = 16, /* Index for rm_get_resource_info() RPC call */
+       RM_FUNC_MEMREG_ALLOC = 17,      /* Index for rm_memreg_alloc() RPC call */
+       RM_FUNC_MEMREG_FREE = 18,       /* Index for rm_memreg_free() RPC call */
+       RM_FUNC_ASSIGN_MEMREG = 19,     /* Index for rm_assign_memreg() RPC call */
+       RM_FUNC_SET_MEMREG_PERMISSIONS = 20,    /* Index for rm_set_memreg_permissions() RPC call */
+       RM_FUNC_IS_MEMREG_OWNED = 21,   /* Index for rm_is_memreg_owned() RPC call */
+       RM_FUNC_GET_MEMREG_INFO = 22,   /* Index for rm_get_memreg_info() RPC call */
+       RM_FUNC_ASSIGN_PIN = 23,        /* Index for rm_assign_pin() RPC call */
+       RM_FUNC_SET_PIN_MOVABLE = 24,   /* Index for rm_set_pin_movable() RPC call */
+       RM_FUNC_IS_PIN_OWNED = 25,      /* Index for rm_is_pin_owned() RPC call */
 } rm_func_t;
 
 /* Functions */
index 8e7de75..e4caa23 100644 (file)
  * This type is used to indicate RPC TIMER function calls.
  */
 typedef enum timer_func_e {
-       TIMER_FUNC_UNKNOWN,     /* Unknown function */
-       TIMER_FUNC_SET_WDOG_TIMEOUT,    /* Index for timer_set_wdog_timeout() RPC call */
-       TIMER_FUNC_START_WDOG,  /* Index for timer_start_wdog() RPC call */
-       TIMER_FUNC_STOP_WDOG,   /* Index for timer_stop_wdog() RPC call */
-       TIMER_FUNC_PING_WDOG,   /* Index for timer_ping_wdog() RPC call */
-       TIMER_FUNC_GET_WDOG_STATUS,     /* Index for timer_get_wdog_status() RPC call */
-       TIMER_FUNC_SET_RTC_TIME,        /* Index for timer_set_rtc_time() RPC call */
-       TIMER_FUNC_GET_RTC_TIME,        /* Index for timer_get_rtc_time() RPC call */
-       TIMER_FUNC_SET_RTC_ALARM,       /* Index for timer_set_rtc_alarm() RPC call */
-       TIMER_FUNC_GET_RTC_SEC1970,     /* Index for timer_get_rtc_sec1970() RPC call */
+       TIMER_FUNC_UNKNOWN = 0, /* Unknown function */
+       TIMER_FUNC_SET_WDOG_TIMEOUT = 1,        /* Index for timer_set_wdog_timeout() RPC call */
+       TIMER_FUNC_START_WDOG = 2,      /* Index for timer_start_wdog() RPC call */
+       TIMER_FUNC_STOP_WDOG = 3,       /* Index for timer_stop_wdog() RPC call */
+       TIMER_FUNC_PING_WDOG = 4,       /* Index for timer_ping_wdog() RPC call */
+       TIMER_FUNC_GET_WDOG_STATUS = 5, /* Index for timer_get_wdog_status() RPC call */
+       TIMER_FUNC_SET_RTC_TIME = 6,    /* Index for timer_set_rtc_time() RPC call */
+       TIMER_FUNC_GET_RTC_TIME = 7,    /* Index for timer_get_rtc_time() RPC call */
+       TIMER_FUNC_GET_RTC_SEC1970 = 9, /* Index for timer_get_rtc_sec1970() RPC call */
+       TIMER_FUNC_SET_RTC_ALARM = 8,   /* Index for timer_set_rtc_alarm() RPC call */
 } timer_func_t;
 
 /* Functions */
index bcaaf52..ac53a35 100644 (file)
@@ -41,7 +41,7 @@ sc_err_t sc_timer_set_wdog_timeout(sc_ipc_t ipc, sc_timer_wdog_time_t timeout)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_start_wdog(sc_ipc_t ipc, bool lock)
@@ -58,7 +58,7 @@ sc_err_t sc_timer_start_wdog(sc_ipc_t ipc, bool lock)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_stop_wdog(sc_ipc_t ipc)
@@ -74,7 +74,7 @@ sc_err_t sc_timer_stop_wdog(sc_ipc_t ipc)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_ping_wdog(sc_ipc_t ipc)
@@ -90,7 +90,7 @@ sc_err_t sc_timer_ping_wdog(sc_ipc_t ipc)
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_get_wdog_status(sc_ipc_t ipc,
@@ -115,7 +115,7 @@ sc_err_t sc_timer_get_wdog_status(sc_ipc_t ipc,
        if (remaining_time != NULL)
                *remaining_time = RPC_D32(&msg, 8);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_set_rtc_time(sc_ipc_t ipc, uint16_t year, uint8_t mon,
@@ -139,7 +139,7 @@ sc_err_t sc_timer_set_rtc_time(sc_ipc_t ipc, uint16_t year, uint8_t mon,
        sc_call_rpc(ipc, &msg, false);
 
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 sc_err_t sc_timer_get_rtc_time(sc_ipc_t ipc, uint16_t *year, uint8_t *mon,
@@ -169,49 +169,49 @@ sc_err_t sc_timer_get_rtc_time(sc_ipc_t ipc, uint16_t *year, uint8_t *mon,
                *min = RPC_D8(&msg, 5);
        if (sec != NULL)
                *sec = RPC_D8(&msg, 6);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_timer_set_rtc_alarm(sc_ipc_t ipc, uint16_t year, uint8_t mon,
-                               uint8_t day, uint8_t hour, uint8_t min,
-                               uint8_t sec)
+sc_err_t sc_timer_get_rtc_sec1970(sc_ipc_t ipc, uint32_t *sec)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_TIMER;
-       RPC_FUNC(&msg) = TIMER_FUNC_SET_RTC_ALARM;
-       RPC_D16(&msg, 0) = year;
-       RPC_D8(&msg, 2) = mon;
-       RPC_D8(&msg, 3) = day;
-       RPC_D8(&msg, 4) = hour;
-       RPC_D8(&msg, 5) = min;
-       RPC_D8(&msg, 6) = sec;
-       RPC_SIZE(&msg) = 3;
+       RPC_FUNC(&msg) = TIMER_FUNC_GET_RTC_SEC1970;
+       RPC_SIZE(&msg) = 1;
 
        sc_call_rpc(ipc, &msg, false);
 
+       if (sec != NULL)
+               *sec = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
-sc_err_t sc_timer_get_rtc_sec1970(sc_ipc_t ipc, uint32_t *sec)
+sc_err_t sc_timer_set_rtc_alarm(sc_ipc_t ipc, uint16_t year, uint8_t mon,
+                               uint8_t day, uint8_t hour, uint8_t min,
+                               uint8_t sec)
 {
        sc_rpc_msg_t msg;
        uint8_t result;
 
        RPC_VER(&msg) = SC_RPC_VERSION;
        RPC_SVC(&msg) = SC_RPC_SVC_TIMER;
-       RPC_FUNC(&msg) = TIMER_FUNC_GET_RTC_SEC1970;
-       RPC_SIZE(&msg) = 1;
+       RPC_FUNC(&msg) = TIMER_FUNC_SET_RTC_ALARM;
+       RPC_D16(&msg, 0) = year;
+       RPC_D8(&msg, 2) = mon;
+       RPC_D8(&msg, 3) = day;
+       RPC_D8(&msg, 4) = hour;
+       RPC_D8(&msg, 5) = min;
+       RPC_D8(&msg, 6) = sec;
+       RPC_SIZE(&msg) = 3;
 
        sc_call_rpc(ipc, &msg, false);
 
-       if (sec != NULL)
-               *sec = RPC_D32(&msg, 0);
        result = RPC_R8(&msg);
-       return (sc_err_t) result;
+       return (sc_err_t)result;
 }
 
 /**@}*/
index 932d26a..4770f4e 100644 (file)
@@ -5,15 +5,9 @@
  * SPDX-License-Identifier:     GPL-2.0+
  */
 
-/*==========================================================================*/
 /*!
- * @file
- *
  * Header file used to configure SoC pin list.
  */
-/*==========================================================================*/
-
-/* DO NOT EDIT - This file auto generated by bin/pins_h.pl */
 
 #ifndef _SC_PINS_H
 #define _SC_PINS_H
 
 /* Defines */
 
-#define SC_P_ALL            UINT16_MAX      //!< All pins
+#define SC_P_ALL            UINT16_MAX /* All pins */
 
 /*!
  * @name Pin Definitions
  */
 /*@{*/
-#define SC_P_PCIE_CTRL0_CLKREQ_B                 0    //!< HSIO.PCIE0.CLKREQ_B, LSIO.GPIO0.IO04
-#define SC_P_PCIE_CTRL0_WAKE_B                   1    //!< HSIO.PCIE0.WAKE_B, LSIO.GPIO0.IO05
-#define SC_P_PCIE_CTRL0_PERST_B                  2    //!< HSIO.PCIE0.PERST_B, LSIO.GPIO0.IO06
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_PCIESEP       3    //!<
-#define SC_P_USB_SS3_TC0                         4    //!< ADMA.I2C1.SCL, CONN.USB_OTG1.PWR, CONN.USB_OTG2.PWR, LSIO.GPIO0.IO00
-#define SC_P_USB_SS3_TC1                         5    //!< ADMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO0.IO01
-#define SC_P_USB_SS3_TC2                         6    //!< ADMA.I2C1.SDA, CONN.USB_OTG1.OC, CONN.USB_OTG2.OC, LSIO.GPIO0.IO02
-#define SC_P_USB_SS3_TC3                         7    //!< ADMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO0.IO03
-#define SC_P_COMP_CTL_GPIO_3V3_USB3IO            8    //!<
-#define SC_P_EMMC0_CLK                           9    //!< CONN.EMMC0.CLK, CONN.NAND.READY_B, LSIO.KPP0.COL0, LSIO.GPIO0.IO17
-#define SC_P_EMMC0_CMD                           10   //!< CONN.EMMC0.CMD, CONN.NAND.DQS, LSIO.KPP0.COL1, LSIO.GPIO0.IO18
-#define SC_P_EMMC0_DATA0                         11   //!< CONN.EMMC0.DATA0, CONN.NAND.DATA00, LSIO.KPP0.COL2, LSIO.GPIO0.IO19
-#define SC_P_EMMC0_DATA1                         12   //!< CONN.EMMC0.DATA1, CONN.NAND.DATA01, LSIO.KPP0.COL3, LSIO.GPIO0.IO20
-#define SC_P_EMMC0_DATA2                         13   //!< CONN.EMMC0.DATA2, CONN.NAND.DATA02, LSIO.KPP0.COL4, LSIO.GPIO0.IO21
-#define SC_P_EMMC0_DATA3                         14   //!< CONN.EMMC0.DATA3, CONN.NAND.DATA03, LSIO.KPP0.COL5, LSIO.GPIO0.IO22
-#define SC_P_EMMC0_DATA4                         15   //!< CONN.EMMC0.DATA4, CONN.NAND.DATA04, LSIO.KPP0.ROW0, CONN.EMMC0.WP
-#define SC_P_EMMC0_DATA5                         16   //!< CONN.EMMC0.DATA5, CONN.NAND.DATA05, LSIO.KPP0.ROW1, CONN.EMMC0.VSELECT
-#define SC_P_EMMC0_DATA6                         17   //!< CONN.EMMC0.DATA6, CONN.NAND.DATA06, LSIO.KPP0.ROW2, CONN.MLB.CLK
-#define SC_P_EMMC0_DATA7                         18   //!< CONN.EMMC0.DATA7, CONN.NAND.DATA07, LSIO.KPP0.ROW3, CONN.MLB.SIG
-#define SC_P_EMMC0_STROBE                        19   //!< CONN.EMMC0.STROBE, CONN.NAND.CLE, LSIO.KPP0.ROW4, CONN.MLB.DATA
-#define SC_P_EMMC0_RESET_B                       20   //!< CONN.EMMC0.RESET_B, CONN.NAND.WP_B, LSIO.KPP0.ROW5, LSIO.GPIO0.IO28
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX        21   //!<
-#define SC_P_USDHC1_RESET_B                      22   //!< CONN.USDHC1.RESET_B, CONN.NAND.RE_N, CONN.MLB.SIG, LSIO.GPIO0.IO07
-#define SC_P_USDHC1_VSELECT                      23   //!< CONN.USDHC1.VSELECT, CONN.NAND.RE_P, CONN.MLB.CLK, LSIO.GPIO0.IO08
-#define SC_P_USDHC1_WP                           24   //!< CONN.USDHC1.WP, CONN.NAND.DQS_N, LSIO.GPIO0.IO09
-#define SC_P_USDHC1_CD_B                         25   //!< CONN.USDHC1.CD_B, CONN.NAND.DQS_P, CONN.MLB.DATA, LSIO.GPIO0.IO10
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSELSEP       26   //!<
-#define SC_P_USDHC1_CLK                          27   //!< CONN.USDHC1.CLK, ADMA.MQS.R, LSIO.GPIO0.IO11
-#define SC_P_USDHC1_CMD                          28   //!< CONN.USDHC1.CMD, CONN.NAND.CE0_B, ADMA.MQS.L, LSIO.GPIO0.IO12
-#define SC_P_USDHC1_DATA0                        29   //!< CONN.USDHC1.DATA0, CONN.NAND.CE1_B, ADMA.UART4.RX, LSIO.GPIO0.IO13
-#define SC_P_USDHC1_DATA1                        30   //!< CONN.USDHC1.DATA1, CONN.NAND.RE_B, ADMA.UART4.TX, LSIO.GPIO0.IO14
-#define SC_P_USDHC1_DATA2                        31   //!< CONN.USDHC1.DATA2, CONN.NAND.WE_B, ADMA.UART4.CTS_B, LSIO.GPIO0.IO15
-#define SC_P_USDHC1_DATA3                        32   //!< CONN.USDHC1.DATA3, CONN.NAND.ALE, ADMA.UART4.RTS_B, LSIO.GPIO0.IO16
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSEL3         33   //!<
-#define SC_P_ENET0_RGMII_TXC                     34   //!< CONN.ENET0.RGMII_TXC, CONN.ENET0.RCLK50M_OUT, CONN.ENET0.RCLK50M_IN, CONN.NAND.CE1_B
-#define SC_P_ENET0_RGMII_TX_CTL                  35   //!< CONN.ENET0.RGMII_TX_CTL, CONN.USDHC1.RESET_B
-#define SC_P_ENET0_RGMII_TXD0                    36   //!< CONN.ENET0.RGMII_TXD0, CONN.USDHC1.VSELECT
-#define SC_P_ENET0_RGMII_TXD1                    37   //!< CONN.ENET0.RGMII_TXD1, CONN.USDHC1.WP
-#define SC_P_ENET0_RGMII_TXD2                    38   //!< CONN.ENET0.RGMII_TXD2, CONN.MLB.CLK, CONN.NAND.CE0_B, LSIO.GPIO1.IO05
-#define SC_P_ENET0_RGMII_TXD3                    39   //!< CONN.ENET0.RGMII_TXD3, CONN.MLB.SIG, CONN.NAND.RE_B, CONN.USDHC1.CD_B
-#define SC_P_ENET0_RGMII_RXC                     40   //!< CONN.ENET0.RGMII_RXC, CONN.MLB.DATA, CONN.NAND.WE_B, CONN.USDHC1.CLK
-#define SC_P_ENET0_RGMII_RX_CTL                  41   //!< CONN.ENET0.RGMII_RX_CTL, CONN.USDHC1.CMD
-#define SC_P_ENET0_RGMII_RXD0                    42   //!< CONN.ENET0.RGMII_RXD0, CONN.USDHC1.DATA0
-#define SC_P_ENET0_RGMII_RXD1                    43   //!< CONN.ENET0.RGMII_RXD1, CONN.USDHC1.DATA1
-#define SC_P_ENET0_RGMII_RXD2                    44   //!< CONN.ENET0.RGMII_RXD2, CONN.ENET0.RMII_RX_ER, CONN.USDHC1.DATA2
-#define SC_P_ENET0_RGMII_RXD3                    45   //!< CONN.ENET0.RGMII_RXD3, CONN.NAND.ALE, CONN.USDHC1.DATA3
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB    46   //!<
-#define SC_P_ENET0_REFCLK_125M_25M               47   //!< CONN.ENET0.REFCLK_125M_25M, CONN.ENET0.PPS, CONN.ENET1.PPS, LSIO.GPIO1.IO00
-#define SC_P_ENET0_MDIO                          48   //!< CONN.ENET0.MDIO, ADMA.I2C4.SDA, CONN.ENET1.MDIO, LSIO.GPIO0.IO29
-#define SC_P_ENET0_MDC                           49   //!< CONN.ENET0.MDC, ADMA.I2C4.SCL, CONN.ENET1.MDC, LSIO.GPIO0.IO30
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOCT        50   //!<
-#define SC_P_FLEXCAN0_RX                         51   //!< ADMA.FLEXCAN0.RX, M40.GPIO0.IO02, LSIO.GPIO3.IO10
-#define SC_P_FLEXCAN0_TX                         52   //!< ADMA.FLEXCAN0.TX, M40.GPIO0.IO03, LSIO.GPIO3.IO11
-#define SC_P_FLEXCAN1_RX                         53   //!< ADMA.FLEXCAN1.RX, M40.GPIO0.IO00, ADMA.UART3.RX, LSIO.GPIO3.IO12
-#define SC_P_FLEXCAN1_TX                         54   //!< ADMA.FLEXCAN1.TX, M40.GPIO0.IO01, ADMA.UART3.TX, LSIO.GPIO3.IO13
-#define SC_P_UART0_RX                            55   //!< ADMA.UART0.RX, M40.UART0.RX, M40.I2C0.SCL, LSIO.GPIO3.IO14
-#define SC_P_UART0_TX                            56   //!< ADMA.UART0.TX, M40.UART0.TX, M40.I2C0.SDA, LSIO.GPIO3.IO15
-#define SC_P_UART0_RTS_B                         57   //!< ADMA.UART0.RTS_B, LSIO.PWM0.OUT, ADMA.UART2.RX, LSIO.GPIO3.IO16
-#define SC_P_UART0_CTS_B                         58   //!< ADMA.UART0.CTS_B, LSIO.PWM1.OUT, ADMA.UART2.TX, LSIO.GPIO3.IO17
-#define SC_P_UART1_TX                            59   //!< ADMA.UART1.TX, LSIO.GPT0.CLK, LSIO.PWM2.OUT, LSIO.GPIO3.IO18
-#define SC_P_UART1_RX                            60   //!< ADMA.UART1.RX, LSIO.GPT0.CAPTURE, LSIO.PWM3.OUT, LSIO.GPIO3.IO19
-#define SC_P_UART1_RTS_B                         61   //!< ADMA.UART1.RTS_B, LSIO.GPT0.COMPARE, ADMA.UART1.CTS_B, LSIO.GPIO3.IO20
-#define SC_P_UART1_CTS_B                         62   //!< ADMA.UART1.CTS_B, ADMA.UART1.RTS_B, LSIO.GPIO3.IO21
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOLH        63   //!<
-#define SC_P_SPI0_SCK                            64   //!< ADMA.SPI0.SCK, ADMA.SAI0.RXC, LSIO.GPIO2.IO21
-#define SC_P_SPI0_SDO                            65   //!< ADMA.SPI0.SDO, ADMA.SAI0.TXD, LSIO.GPIO2.IO22
-#define SC_P_SPI0_SDI                            66   //!< ADMA.SPI0.SDI, ADMA.SAI0.RXD, LSIO.GPIO2.IO23
-#define SC_P_SPI0_CS0                            67   //!< ADMA.SPI0.CS0, ADMA.SAI0.RXFS, LSIO.GPIO2.IO24
-#define SC_P_SPI0_CS1                            68   //!< ADMA.SPI0.CS1, ADMA.SAI0.TXC, ADMA.SAI1.TXD, LSIO.GPIO2.IO25
-#define SC_P_SPI2_SCK                            69   //!< ADMA.SPI2.SCK, LSIO.GPIO2.IO26
-#define SC_P_SPI2_SDO                            70   //!< ADMA.SPI2.SDO, LSIO.GPIO2.IO27
-#define SC_P_SPI2_SDI                            71   //!< ADMA.SPI2.SDI, LSIO.GPIO2.IO28
-#define SC_P_SPI2_CS0                            72   //!< ADMA.SPI2.CS0, LSIO.GPIO2.IO29
-#define SC_P_SPI2_CS1                            73   //!< ADMA.SAI0.TXFS, ADMA.SPI2.CS1, ADMA.SPI1.SCK, LSIO.GPIO2.IO30
-#define SC_P_SAI1_RXC                            74   //!< ADMA.SAI0.TXD, ADMA.SAI1.RXC, ADMA.SPI1.SDO, LSIO.GPIO3.IO01
-#define SC_P_SAI1_RXD                            75   //!< ADMA.SAI0.TXC, ADMA.SAI1.TXD, ADMA.SPI1.SDI, LSIO.GPIO3.IO01
-#define SC_P_SAI1_RXFS                           76   //!< ADMA.SAI0.RXD, ADMA.SAI1.RXFS, ADMA.SPI1.CS0, LSIO.GPIO3.IO02
-#define SC_P_SAI1_TXC                            77   //!< ADMA.SAI1.RXC, ADMA.SAI1.TXC, ADMA.FLEXCAN2.RX, LSIO.GPIO3.IO03
-#define SC_P_SAI1_TXD                            78   //!< ADMA.SAI1.RXD, ADMA.SAI0.TXFS, ADMA.SPI1.CS1, LSIO.GPIO3.IO04
-#define SC_P_SAI1_TXFS                           79   //!< ADMA.SAI1.RXFS, ADMA.SAI1.TXFS, ADMA.FLEXCAN2.TX, LSIO.GPIO3.IO05
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHT       80   //!<
-#define SC_P_ESAI0_FSR                           81   //!< ADMA.ESAI0.FSR, CONN.ENET1.RCLK50M_OUT, CONN.ENET1.RGMII_TXC
-#define SC_P_ESAI0_FST                           82   //!< ADMA.ESAI0.FST, CONN.ENET1.RGMII_TX_CTL
-#define SC_P_ESAI0_SCKR                          83   //!< ADMA.ESAI0.SCKR, CONN.ENET1.RGMII_TXD0
-#define SC_P_ESAI0_SCKT                          84   //!< ADMA.ESAI0.SCKT, CONN.ENET1.RGMII_TXD1
-#define SC_P_ESAI0_TX0                           85   //!< ADMA.ESAI0.TX0, CONN.MLB.CLK, CONN.ENET1.RGMII_TXD2
-#define SC_P_ESAI0_TX1                           86   //!< ADMA.ESAI0.TX1, CONN.MLB.SIG, CONN.ENET1.RGMII_TXD3
-#define SC_P_ESAI0_TX2_RX3                       87   //!< ADMA.ESAI0.TX2_RX3, CONN.MLB.DATA, CONN.ENET1.RGMII_RXC
-#define SC_P_ESAI0_TX3_RX2                       88   //!< ADMA.ESAI0.TX3_RX2, CONN.ENET1.RGMII_RX_CTL
-#define SC_P_ESAI0_TX4_RX1                       89   //!< ADMA.ESAI0.TX4_RX1, ADMA.MQS.R, CONN.ENET1.RGMII_RXD0
-#define SC_P_ESAI0_TX5_RX0                       90   //!< ADMA.ESAI0.TX5_RX0, ADMA.MQS.L, CONN.ENET1.RGMII_RXD1
-#define SC_P_SPDIF0_RX                           91   //!< ADMA.SPDIF0.RX, CONN.ENET1.RMII_RX_ER, CONN.ENET1.RGMII_RXD2
-#define SC_P_SPDIF0_TX                           92   //!< ADMA.SPDIF0.TX, CONN.ENET1.RCLK50M_IN, CONN.ENET1.RGMII_RXD3
-#define SC_P_SPDIF0_EXT_CLK                      93   //!< ADMA.SPDIF0.EXT_CLK, CONN.ENET1.REFCLK_125M_25M
-#define SC_P_SPI3_SCK                            94   //!< ADMA.SPI3.SCK, LSIO.GPIO2.IO13
-#define SC_P_SPI3_SDO                            95   //!< ADMA.SPI3.SDO, LSIO.GPIO2.IO14
-#define SC_P_SPI3_SDI                            96   //!< ADMA.SPI3.SDI, ADMA.FTM.CH1, LSIO.GPIO2.IO15
-#define SC_P_SPI3_CS0                            97   //!< ADMA.SPI3.CS0, ADMA.FTM.CH2, LSIO.GPIO2.IO16
-#define SC_P_SPI3_CS1                            98   //!< ADMA.SPI3.CS1, ADMA.DMA0.REQ_IN0, LSIO.GPIO2.IO17
-#define SC_P_MCLK_IN0                            99   //!< ADMA.ACM.MCLK_IN0, ADMA.ESAI0.RX_HF_CLK, LSIO.GPIO2.IO18
-#define SC_P_MCLK_OUT0                           100  //!< ADMA.ACM.MCLK_OUT0, ADMA.ESAI0.TX_HF_CLK, LSIO.GPIO2.IO19
-#define SC_P_FTM0                                101  //!< ADMA.FTM.CH0, LSIO.GPIO2.IO20
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB       102  //!<
-#define SC_P_ADC_IN1                             103  //!< ADMA.ADC.IN1, M40.I2C0.SDA, M40.UART0.TX, LSIO.GPIO3.IO07
-#define SC_P_ADC_IN0                             104  //!< ADMA.ADC.IN0, M40.I2C0.SCL, M40.UART0.RX, LSIO.GPIO3.IO06
-#define SC_P_ADC_IN3                             105  //!< ADMA.ADC.IN3, M40.GPIO0.IO01, M40.TPM0.CH1, LSIO.GPIO3.IO09
-#define SC_P_ADC_IN2                             106  //!< ADMA.ADC.IN2, M40.GPIO0.IO00, M40.TPM0.CH0, LSIO.GPIO3.IO08
-#define SC_P_CSI_D00                             107  //!< CI_PI.D00, SNVS.TAMPER_OUT0
-#define SC_P_CSI_D01                             108  //!< CI_PI.D01, SNVS.TAMPER_OUT1
-#define SC_P_CSI_D02                             109  //!< CI_PI.D02, SNVS.TAMPER_OUT2
-#define SC_P_CSI_D03                             110  //!< CI_PI.D03, SNVS.TAMPER_OUT3
-#define SC_P_CSI_D04                             111  //!< CI_PI.D04, SNVS.TAMPER_OUT4
-#define SC_P_CSI_D05                             112  //!< CI_PI.D05, SNVS.TAMPER_IN0
-#define SC_P_CSI_D06                             113  //!< CI_PI.D06, SNVS.TAMPER_IN1
-#define SC_P_CSI_D07                             114  //!< CI_PI.D07, SNVS.TAMPER_IN2
-#define SC_P_CSI_HSYNC                           115  //!< CI_PI.HSYNC, CI_PI.D08, SNVS.TAMPER_IN3
-#define SC_P_CSI_VSYNC                           116  //!< CI_PI.VSYNC, CI_PI.D09, SNVS.TAMPER_IN4
-#define SC_P_CSI_PCLK                            117  //!< CI_PI.PCLK, LSIO.GPT1.CLK
-#define SC_P_CSI_MCLK                            118  //!< CI_PI.MCLK
-#define SC_P_CSI_EN                              119  //!< CI_PI.EN, LSIO.GPT1.CAPTURE, CI_PI.D08
-#define SC_P_CSI_RESET                           120  //!< CI_PI.RESET, LSIO.GPT1.COMPARE, CI_PI.D09
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHD       121  //!<
-#define SC_P_PMIC_I2C_SCL                        122  //!< SCU.PMIC_I2C.SCL
-#define SC_P_PMIC_I2C_SDA                        123  //!< SCU.PMIC_I2C.SDA
-#define SC_P_PMIC_INT_B                          124  //!< SCU.DSC.PMIC_INT_B
-#define SC_P_SCU_GPIO0_00                        125  //!< SCU.GPIO0.IO00, SCU.UART0.RX, M40.UART0.RX, ADMA.UART4.RX
-#define SC_P_SCU_GPIO0_01                        126  //!< SCU.GPIO0.IO01, SCU.UART0.TX, M40.UART0.TX, ADMA.UART4.TX
-#define SC_P_SCU_BOOT_MODE0                      127  //!< SCU.DSC.BOOT_MODE0
-#define SC_P_SCU_BOOT_MODE1                      128  //!< SCU.DSC.BOOT_MODE1
-#define SC_P_SCU_BOOT_MODE2                      129  //!< SCU.DSC.BOOT_MODE2
-#define SC_P_SCU_BOOT_MODE3                      130  //!< SCU.DSC.BOOT_MODE3
-#define SC_P_MIPI_DSI0_I2C0_SCL                  131  //!< MIPI_DSI0.I2C0.SCL, MIPI_DSI1.GPIO0.IO02, LSIO.GPIO4.IO00
-#define SC_P_MIPI_DSI0_I2C0_SDA                  132  //!< MIPI_DSI0.I2C0.SDA, MIPI_DSI1.GPIO0.IO03, LSIO.GPIO4.IO01
-#define SC_P_MIPI_DSI0_GPIO0_00                  133  //!< MIPI_DSI0.GPIO0.IO00, MIPI_DSI0.PWM0.OUT, LSIO.GPIO4.IO02
-#define SC_P_MIPI_DSI0_GPIO0_01                  134  //!< MIPI_DSI0.GPIO0.IO01, LSIO.GPIO4.IO03
-#define SC_P_MIPI_DSI1_I2C0_SCL                  135  //!< MIPI_DSI1.I2C0.SCL, MIPI_DSI0.GPIO0.IO02, LSIO.GPIO4.IO04
-#define SC_P_MIPI_DSI1_I2C0_SDA                  136  //!< MIPI_DSI1.I2C0.SDA, MIPI_DSI0.GPIO0.IO03, LSIO.GPIO4.IO05
-#define SC_P_MIPI_DSI1_GPIO0_00                  137  //!< MIPI_DSI1.GPIO0.IO00, MIPI_DSI1.PWM0.OUT, LSIO.GPIO4.IO06
-#define SC_P_MIPI_DSI1_GPIO0_01                  138  //!< MIPI_DSI1.GPIO0.IO01, LSIO.GPIO4.IO07
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_MIPIDSIGPIO   139  //!<
-#define SC_P_MIPI_CSI0_MCLK_OUT                  140  //!< MIPI_CSI0.ACM.MCLK_OUT, LSIO.GPIO4.IO08
-#define SC_P_MIPI_CSI0_I2C0_SCL                  141  //!< MIPI_CSI0.I2C0.SCL, MIPI_CSI0.GPIO0.IO02, LSIO.GPIO4.IO09
-#define SC_P_MIPI_CSI0_I2C0_SDA                  142  //!< MIPI_CSI0.I2C0.SDA, MIPI_CSI0.GPIO0.IO03, LSIO.GPIO4.IO10
-#define SC_P_MIPI_CSI0_GPIO0_00                  143  //!< MIPI_CSI0.GPIO0.IO00, ADMA.I2C0.SCL, LSIO.GPIO4.IO11
-#define SC_P_MIPI_CSI0_GPIO0_01                  144  //!< MIPI_CSI0.GPIO0.IO01, ADMA.I2C0.SDA, LSIO.GPIO4.IO12
-#define SC_P_QSPI0A_DATA0                        145  //!< LSIO.QSPI0A.DATA0, MIPI_DSI0.I2C0.SCL
-#define SC_P_QSPI0A_DATA1                        146  //!< LSIO.QSPI0A.DATA1, MIPI_DSI0.I2C0.SDA
-#define SC_P_QSPI0A_DATA2                        147  //!< LSIO.QSPI0A.DATA2, MIPI_DSI1.I2C0.SCL
-#define SC_P_QSPI0A_DATA3                        148  //!< LSIO.QSPI0A.DATA3, MIPI_DSI1.I2C0.SDA
-#define SC_P_QSPI0A_DQS                          149  //!< LSIO.QSPI0A.DQS
-#define SC_P_QSPI0A_SS0_B                        150  //!< LSIO.QSPI0A.SS0_B, MIPI_CSI0.I2C0.SCL
-#define SC_P_QSPI0A_SS1_B                        151  //!< LSIO.QSPI0A.SS1_B, MIPI_CSI0.I2C0.SDA
-#define SC_P_QSPI0A_SCLK                         152  //!< LSIO.QSPI0A.SCLK
-#define SC_P_QSPI0B_SCLK                         153  //!< LSIO.QSPI0B.SCLK, LSIO.QSPI1A.SCLK, LSIO.KPP0.COL0
-#define SC_P_QSPI0B_DATA0                        154  //!< LSIO.QSPI0B.DATA0, LSIO.QSPI1A.DATA0, LSIO.KPP0.COL1
-#define SC_P_QSPI0B_DATA1                        155  //!< LSIO.QSPI0B.DATA1, LSIO.QSPI1A.DATA1, LSIO.KPP0.COL2
-#define SC_P_QSPI0B_DATA2                        156  //!< LSIO.QSPI0B.DATA2, LSIO.QSPI1A.DATA2, LSIO.KPP0.COL3
-#define SC_P_QSPI0B_DATA3                        157  //!< LSIO.QSPI0B.DATA3, LSIO.QSPI1A.DATA3, LSIO.KPP0.ROW0
-#define SC_P_QSPI0B_DQS                          158  //!< LSIO.QSPI0B.DQS, LSIO.QSPI1A.DQS, LSIO.KPP0.ROW1
-#define SC_P_QSPI0B_SS0_B                        159  //!< LSIO.QSPI0B.SS0_B, LSIO.QSPI1A.SS0_B, LSIO.KPP0.ROW2
-#define SC_P_QSPI0B_SS1_B                        160  //!< LSIO.QSPI0B.SS1_B, LSIO.QSPI1A.SS1_B, LSIO.KPP0.ROW3
-#define SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI0         161  //!<
-#define SC_P_XTALI                               162  //!< SCU.DSC.XTALI
-#define SC_P_XTALO                               163  //!< SCU.DSC.XTALO
-#define SC_P_ANA_TEST_OUT_P                      164  //!< SCU.DSC.TEST_OUT_P
-#define SC_P_ANA_TEST_OUT_N                      165  //!< SCU.DSC.TEST_OUT_N
-#define SC_P_RTC_XTALI                           166  //!< SNVS.RTC_XTALI
-#define SC_P_RTC_XTALO                           167  //!< SNVS.RTC_XTALO
-#define SC_P_PMIC_ON_REQ                         168  //!< SNVS.PMIC_ON_REQ
-#define SC_P_ON_OFF_BUTTON                       169  //!< SNVS.ON_OFF_BUTTON
+#define SC_P_PCIE_CTRL0_PERST_B                  0     /* HSIO.PCIE0.PERST_B, LSIO.GPIO4.IO00 */
+#define SC_P_PCIE_CTRL0_CLKREQ_B                 1     /* HSIO.PCIE0.CLKREQ_B, LSIO.GPIO4.IO01 */
+#define SC_P_PCIE_CTRL0_WAKE_B                   2     /* HSIO.PCIE0.WAKE_B, LSIO.GPIO4.IO02 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_PCIESEP       3     /* */
+#define SC_P_USB_SS3_TC0                         4     /* ADMA.I2C1.SCL, CONN.USB_OTG1.PWR, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO03 */
+#define SC_P_USB_SS3_TC1                         5     /* ADMA.I2C1.SCL, CONN.USB_OTG2.PWR, LSIO.GPIO4.IO04 */
+#define SC_P_USB_SS3_TC2                         6     /* ADMA.I2C1.SDA, CONN.USB_OTG1.OC, CONN.USB_OTG2.OC, LSIO.GPIO4.IO05 */
+#define SC_P_USB_SS3_TC3                         7     /* ADMA.I2C1.SDA, CONN.USB_OTG2.OC, LSIO.GPIO4.IO06 */
+#define SC_P_COMP_CTL_GPIO_3V3_USB3IO            8     /* */
+#define SC_P_EMMC0_CLK                           9     /* CONN.EMMC0.CLK, CONN.NAND.READY_B, LSIO.GPIO4.IO07 */
+#define SC_P_EMMC0_CMD                           10    /* CONN.EMMC0.CMD, CONN.NAND.DQS, LSIO.GPIO4.IO08 */
+#define SC_P_EMMC0_DATA0                         11    /* CONN.EMMC0.DATA0, CONN.NAND.DATA00, LSIO.GPIO4.IO09 */
+#define SC_P_EMMC0_DATA1                         12    /* CONN.EMMC0.DATA1, CONN.NAND.DATA01, LSIO.GPIO4.IO10 */
+#define SC_P_EMMC0_DATA2                         13    /* CONN.EMMC0.DATA2, CONN.NAND.DATA02, LSIO.GPIO4.IO11 */
+#define SC_P_EMMC0_DATA3                         14    /* CONN.EMMC0.DATA3, CONN.NAND.DATA03, LSIO.GPIO4.IO12 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX0       15    /* */
+#define SC_P_EMMC0_DATA4                         16    /* CONN.EMMC0.DATA4, CONN.NAND.DATA04, CONN.EMMC0.WP, LSIO.GPIO4.IO13 */
+#define SC_P_EMMC0_DATA5                         17    /* CONN.EMMC0.DATA5, CONN.NAND.DATA05, CONN.EMMC0.VSELECT, LSIO.GPIO4.IO14 */
+#define SC_P_EMMC0_DATA6                         18    /* CONN.EMMC0.DATA6, CONN.NAND.DATA06, CONN.MLB.CLK, LSIO.GPIO4.IO15 */
+#define SC_P_EMMC0_DATA7                         19    /* CONN.EMMC0.DATA7, CONN.NAND.DATA07, CONN.MLB.SIG, LSIO.GPIO4.IO16 */
+#define SC_P_EMMC0_STROBE                        20    /* CONN.EMMC0.STROBE, CONN.NAND.CLE, CONN.MLB.DATA, LSIO.GPIO4.IO17 */
+#define SC_P_EMMC0_RESET_B                       21    /* CONN.EMMC0.RESET_B, CONN.NAND.WP_B, LSIO.GPIO4.IO18 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_SD1FIX1       22    /* */
+#define SC_P_USDHC1_RESET_B                      23    /* CONN.USDHC1.RESET_B, CONN.NAND.RE_N, ADMA.SPI2.SCK, LSIO.GPIO4.IO19 */
+#define SC_P_USDHC1_VSELECT                      24    /* CONN.USDHC1.VSELECT, CONN.NAND.RE_P, ADMA.SPI2.SDO, CONN.NAND.RE_B, LSIO.GPIO4.IO20 */
+#define SC_P_CTL_NAND_RE_P_N                     25    /* */
+#define SC_P_USDHC1_WP                           26    /* CONN.USDHC1.WP, CONN.NAND.DQS_N, ADMA.SPI2.SDI, LSIO.GPIO4.IO21 */
+#define SC_P_USDHC1_CD_B                         27    /* CONN.USDHC1.CD_B, CONN.NAND.DQS_P, ADMA.SPI2.CS0, CONN.NAND.DQS, LSIO.GPIO4.IO22 */
+#define SC_P_CTL_NAND_DQS_P_N                    28    /* */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSELSEP       29    /* */
+#define SC_P_USDHC1_CLK                          30    /* CONN.USDHC1.CLK, ADMA.UART3.RX, LSIO.GPIO4.IO23 */
+#define SC_P_USDHC1_CMD                          31    /* CONN.USDHC1.CMD, CONN.NAND.CE0_B, ADMA.MQS.R, LSIO.GPIO4.IO24 */
+#define SC_P_USDHC1_DATA0                        32    /* CONN.USDHC1.DATA0, CONN.NAND.CE1_B, ADMA.MQS.L, LSIO.GPIO4.IO25 */
+#define SC_P_USDHC1_DATA1                        33    /* CONN.USDHC1.DATA1, CONN.NAND.RE_B, ADMA.UART3.TX, LSIO.GPIO4.IO26 */
+#define SC_P_USDHC1_DATA2                        34    /* CONN.USDHC1.DATA2, CONN.NAND.WE_B, ADMA.UART3.CTS_B, LSIO.GPIO4.IO27 */
+#define SC_P_USDHC1_DATA3                        35    /* CONN.USDHC1.DATA3, CONN.NAND.ALE, ADMA.UART3.RTS_B, LSIO.GPIO4.IO28 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_VSEL3         36    /* */
+#define SC_P_ENET0_RGMII_TXC                     37    /* CONN.ENET0.RGMII_TXC, CONN.ENET0.RCLK50M_OUT, CONN.ENET0.RCLK50M_IN, CONN.NAND.CE1_B, LSIO.GPIO4.IO29 */
+#define SC_P_ENET0_RGMII_TX_CTL                  38    /* CONN.ENET0.RGMII_TX_CTL, CONN.USDHC1.RESET_B, LSIO.GPIO4.IO30 */
+#define SC_P_ENET0_RGMII_TXD0                    39    /* CONN.ENET0.RGMII_TXD0, CONN.USDHC1.VSELECT, LSIO.GPIO4.IO31 */
+#define SC_P_ENET0_RGMII_TXD1                    40    /* CONN.ENET0.RGMII_TXD1, CONN.USDHC1.WP, LSIO.GPIO5.IO00 */
+#define SC_P_ENET0_RGMII_TXD2                    41    /* CONN.ENET0.RGMII_TXD2, CONN.MLB.CLK, CONN.NAND.CE0_B, CONN.USDHC1.CD_B, LSIO.GPIO5.IO01 */
+#define SC_P_ENET0_RGMII_TXD3                    42    /* CONN.ENET0.RGMII_TXD3, CONN.MLB.SIG, CONN.NAND.RE_B, LSIO.GPIO5.IO02 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0   43    /* */
+#define SC_P_ENET0_RGMII_RXC                     44    /* CONN.ENET0.RGMII_RXC, CONN.MLB.DATA, CONN.NAND.WE_B, CONN.USDHC1.CLK, LSIO.GPIO5.IO03 */
+#define SC_P_ENET0_RGMII_RX_CTL                  45    /* CONN.ENET0.RGMII_RX_CTL, CONN.USDHC1.CMD, LSIO.GPIO5.IO04 */
+#define SC_P_ENET0_RGMII_RXD0                    46    /* CONN.ENET0.RGMII_RXD0, CONN.USDHC1.DATA0, LSIO.GPIO5.IO05 */
+#define SC_P_ENET0_RGMII_RXD1                    47    /* CONN.ENET0.RGMII_RXD1, CONN.USDHC1.DATA1, LSIO.GPIO5.IO06 */
+#define SC_P_ENET0_RGMII_RXD2                    48    /* CONN.ENET0.RGMII_RXD2, CONN.ENET0.RMII_RX_ER, CONN.USDHC1.DATA2, LSIO.GPIO5.IO07 */
+#define SC_P_ENET0_RGMII_RXD3                    49    /* CONN.ENET0.RGMII_RXD3, CONN.NAND.ALE, CONN.USDHC1.DATA3, LSIO.GPIO5.IO08 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1   50    /* */
+#define SC_P_ENET0_REFCLK_125M_25M               51    /* CONN.ENET0.REFCLK_125M_25M, CONN.ENET0.PPS, CONN.ENET1.PPS, LSIO.GPIO5.IO09 */
+#define SC_P_ENET0_MDIO                          52    /* CONN.ENET0.MDIO, ADMA.I2C3.SDA, CONN.ENET1.MDIO, LSIO.GPIO5.IO10 */
+#define SC_P_ENET0_MDC                           53    /* CONN.ENET0.MDC, ADMA.I2C3.SCL, CONN.ENET1.MDC, LSIO.GPIO5.IO11 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOCT        54    /* */
+#define SC_P_ESAI0_FSR                           55    /* ADMA.ESAI0.FSR, CONN.ENET1.RCLK50M_OUT, ADMA.LCDIF.D00, CONN.ENET1.RGMII_TXC, CONN.ENET1.RCLK50M_IN */
+#define SC_P_ESAI0_FST                           56    /* ADMA.ESAI0.FST, CONN.MLB.CLK, ADMA.LCDIF.D01, CONN.ENET1.RGMII_TXD2, LSIO.GPIO0.IO01 */
+#define SC_P_ESAI0_SCKR                          57    /* ADMA.ESAI0.SCKR, ADMA.LCDIF.D02, CONN.ENET1.RGMII_TX_CTL, LSIO.GPIO0.IO02 */
+#define SC_P_ESAI0_SCKT                          58    /* ADMA.ESAI0.SCKT, CONN.MLB.SIG, ADMA.LCDIF.D03, CONN.ENET1.RGMII_TXD3, LSIO.GPIO0.IO03 */
+#define SC_P_ESAI0_TX0                           59    /* ADMA.ESAI0.TX0, CONN.MLB.DATA, ADMA.LCDIF.D04, CONN.ENET1.RGMII_RXC, LSIO.GPIO0.IO04 */
+#define SC_P_ESAI0_TX1                           60    /* ADMA.ESAI0.TX1, ADMA.LCDIF.D05, CONN.ENET1.RGMII_RXD3, LSIO.GPIO0.IO05 */
+#define SC_P_ESAI0_TX2_RX3                       61    /* ADMA.ESAI0.TX2_RX3, CONN.ENET1.RMII_RX_ER, ADMA.LCDIF.D06, CONN.ENET1.RGMII_RXD2, LSIO.GPIO0.IO06 */
+#define SC_P_ESAI0_TX3_RX2                       62    /* ADMA.ESAI0.TX3_RX2, ADMA.LCDIF.D07, CONN.ENET1.RGMII_RXD1, LSIO.GPIO0.IO07 */
+#define SC_P_ESAI0_TX4_RX1                       63    /* ADMA.ESAI0.TX4_RX1, ADMA.LCDIF.D08, CONN.ENET1.RGMII_TXD0, LSIO.GPIO0.IO08 */
+#define SC_P_ESAI0_TX5_RX0                       64    /* ADMA.ESAI0.TX5_RX0, ADMA.LCDIF.D09, CONN.ENET1.RGMII_TXD1, LSIO.GPIO0.IO09 */
+#define SC_P_SPDIF0_RX                           65    /* ADMA.SPDIF0.RX, ADMA.MQS.R, ADMA.LCDIF.D10, CONN.ENET1.RGMII_RXD0, LSIO.GPIO0.IO10 */
+#define SC_P_SPDIF0_TX                           66    /* ADMA.SPDIF0.TX, ADMA.MQS.L, ADMA.LCDIF.D11, CONN.ENET1.RGMII_RX_CTL, LSIO.GPIO0.IO11 */
+#define SC_P_SPDIF0_EXT_CLK                      67    /* ADMA.SPDIF0.EXT_CLK, ADMA.LCDIF.D12, CONN.ENET1.REFCLK_125M_25M, LSIO.GPIO0.IO12 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB       68    /* */
+#define SC_P_SPI3_SCK                            69    /* ADMA.SPI3.SCK, ADMA.LCDIF.D13, LSIO.GPIO0.IO13 */
+#define SC_P_SPI3_SDO                            70    /* ADMA.SPI3.SDO, ADMA.LCDIF.D14, LSIO.GPIO0.IO14 */
+#define SC_P_SPI3_SDI                            71    /* ADMA.SPI3.SDI, ADMA.LCDIF.D15, LSIO.GPIO0.IO15 */
+#define SC_P_SPI3_CS0                            72    /* ADMA.SPI3.CS0, ADMA.ACM.MCLK_OUT1, ADMA.LCDIF.HSYNC, LSIO.GPIO0.IO16 */
+#define SC_P_SPI3_CS1                            73    /* ADMA.SPI3.CS1, ADMA.I2C3.SCL, ADMA.LCDIF.RESET, ADMA.SPI2.CS0, ADMA.LCDIF.D16 */
+#define SC_P_MCLK_IN1                            74    /* ADMA.ACM.MCLK_IN1, ADMA.I2C3.SDA, ADMA.LCDIF.EN, ADMA.SPI2.SCK, ADMA.LCDIF.D17 */
+#define SC_P_MCLK_IN0                            75    /* ADMA.ACM.MCLK_IN0, ADMA.ESAI0.RX_HF_CLK, ADMA.LCDIF.VSYNC, ADMA.SPI2.SDI, LSIO.GPIO0.IO19 */
+#define SC_P_MCLK_OUT0                           76    /* ADMA.ACM.MCLK_OUT0, ADMA.ESAI0.TX_HF_CLK, ADMA.LCDIF.CLK, ADMA.SPI2.SDO, LSIO.GPIO0.IO20 */
+#define SC_P_UART1_TX                            77    /* ADMA.UART1.TX, LSIO.PWM0.OUT, LSIO.GPT0.CAPTURE, LSIO.GPIO0.IO21 */
+#define SC_P_UART1_RX                            78    /* ADMA.UART1.RX, LSIO.PWM1.OUT, LSIO.GPT0.COMPARE, LSIO.GPT1.CLK, LSIO.GPIO0.IO22 */
+#define SC_P_UART1_RTS_B                         79    /* ADMA.UART1.RTS_B, LSIO.PWM2.OUT, ADMA.LCDIF.D16, LSIO.GPT1.CAPTURE, LSIO.GPT0.CLK */
+#define SC_P_UART1_CTS_B                         80    /* ADMA.UART1.CTS_B, LSIO.PWM3.OUT, ADMA.LCDIF.D17, LSIO.GPT1.COMPARE, LSIO.GPIO0.IO24 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHK       81    /* */
+#define SC_P_SAI0_TXD                            82    /* ADMA.SAI0.TXD, ADMA.SAI1.RXC, ADMA.SPI1.SDO, ADMA.LCDIF.D18, LSIO.GPIO0.IO25 */
+#define SC_P_SAI0_TXC                            83    /* ADMA.SAI0.TXC, ADMA.SAI1.TXD, ADMA.SPI1.SDI, ADMA.LCDIF.D19, LSIO.GPIO0.IO26 */
+#define SC_P_SAI0_RXD                            84    /* ADMA.SAI0.RXD, ADMA.SAI1.RXFS, ADMA.SPI1.CS0, ADMA.LCDIF.D20, LSIO.GPIO0.IO27 */
+#define SC_P_SAI0_TXFS                           85    /* ADMA.SAI0.TXFS, ADMA.SPI2.CS1, ADMA.SPI1.SCK, LSIO.GPIO0.IO28 */
+#define SC_P_SAI1_RXD                            86    /* ADMA.SAI1.RXD, ADMA.SAI0.RXFS, ADMA.SPI1.CS1, ADMA.LCDIF.D21, LSIO.GPIO0.IO29 */
+#define SC_P_SAI1_RXC                            87    /* ADMA.SAI1.RXC, ADMA.SAI1.TXC, ADMA.LCDIF.D22, LSIO.GPIO0.IO30 */
+#define SC_P_SAI1_RXFS                           88    /* ADMA.SAI1.RXFS, ADMA.SAI1.TXFS, ADMA.LCDIF.D23, LSIO.GPIO0.IO31 */
+#define SC_P_SPI2_CS0                            89    /* ADMA.SPI2.CS0, LSIO.GPIO1.IO00 */
+#define SC_P_SPI2_SDO                            90    /* ADMA.SPI2.SDO, LSIO.GPIO1.IO01 */
+#define SC_P_SPI2_SDI                            91    /* ADMA.SPI2.SDI, LSIO.GPIO1.IO02 */
+#define SC_P_SPI2_SCK                            92    /* ADMA.SPI2.SCK, LSIO.GPIO1.IO03 */
+#define SC_P_SPI0_SCK                            93    /* ADMA.SPI0.SCK, ADMA.SAI0.TXC, M40.I2C0.SCL, M40.GPIO0.IO00, LSIO.GPIO1.IO04 */
+#define SC_P_SPI0_SDI                            94    /* ADMA.SPI0.SDI, ADMA.SAI0.TXD, M40.TPM0.CH0, M40.GPIO0.IO02, LSIO.GPIO1.IO05 */
+#define SC_P_SPI0_SDO                            95    /* ADMA.SPI0.SDO, ADMA.SAI0.TXFS, M40.I2C0.SDA, M40.GPIO0.IO01, LSIO.GPIO1.IO06 */
+#define SC_P_SPI0_CS1                            96    /* ADMA.SPI0.CS1, ADMA.SAI0.RXC, ADMA.SAI1.TXD, ADMA.LCD_PWM0.OUT, LSIO.GPIO1.IO07 */
+#define SC_P_SPI0_CS0                            97    /* ADMA.SPI0.CS0, ADMA.SAI0.RXD, M40.TPM0.CH1, M40.GPIO0.IO03, LSIO.GPIO1.IO08 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHT       98    /* */
+#define SC_P_ADC_IN1                             99    /* ADMA.ADC.IN1, M40.I2C0.SDA, M40.GPIO0.IO01, LSIO.GPIO1.IO09 */
+#define SC_P_ADC_IN0                             100   /* ADMA.ADC.IN0, M40.I2C0.SCL, M40.GPIO0.IO00, LSIO.GPIO1.IO10 */
+#define SC_P_ADC_IN3                             101   /* ADMA.ADC.IN3, M40.UART0.TX, M40.GPIO0.IO03, ADMA.ACM.MCLK_OUT0, LSIO.GPIO1.IO11 */
+#define SC_P_ADC_IN2                             102   /* ADMA.ADC.IN2, M40.UART0.RX, M40.GPIO0.IO02, ADMA.ACM.MCLK_IN0, LSIO.GPIO1.IO12 */
+#define SC_P_ADC_IN5                             103   /* ADMA.ADC.IN5, M40.TPM0.CH1, M40.GPIO0.IO05, LSIO.GPIO1.IO13 */
+#define SC_P_ADC_IN4                             104   /* ADMA.ADC.IN4, M40.TPM0.CH0, M40.GPIO0.IO04, LSIO.GPIO1.IO14 */
+#define SC_P_FLEXCAN0_RX                         105   /* ADMA.FLEXCAN0.RX, ADMA.SAI2.RXC, ADMA.UART0.RTS_B, ADMA.SAI1.TXC, LSIO.GPIO1.IO15 */
+#define SC_P_FLEXCAN0_TX                         106   /* ADMA.FLEXCAN0.TX, ADMA.SAI2.RXD, ADMA.UART0.CTS_B, ADMA.SAI1.TXFS, LSIO.GPIO1.IO16 */
+#define SC_P_FLEXCAN1_RX                         107   /* ADMA.FLEXCAN1.RX, ADMA.SAI2.RXFS, ADMA.FTM.CH2, ADMA.SAI1.TXD, LSIO.GPIO1.IO17 */
+#define SC_P_FLEXCAN1_TX                         108   /* ADMA.FLEXCAN1.TX, ADMA.SAI3.RXC, ADMA.DMA0.REQ_IN0, ADMA.SAI1.RXD, LSIO.GPIO1.IO18 */
+#define SC_P_FLEXCAN2_RX                         109   /* ADMA.FLEXCAN2.RX, ADMA.SAI3.RXD, ADMA.UART3.RX, ADMA.SAI1.RXFS, LSIO.GPIO1.IO19 */
+#define SC_P_FLEXCAN2_TX                         110   /* ADMA.FLEXCAN2.TX, ADMA.SAI3.RXFS, ADMA.UART3.TX, ADMA.SAI1.RXC, LSIO.GPIO1.IO20 */
+#define SC_P_UART0_RX                            111   /* ADMA.UART0.RX, ADMA.MQS.R, ADMA.FLEXCAN0.RX, LSIO.GPIO1.IO21 */
+#define SC_P_UART0_TX                            112   /* ADMA.UART0.TX, ADMA.MQS.L, ADMA.FLEXCAN0.TX, LSIO.GPIO1.IO22 */
+#define SC_P_UART2_TX                            113   /* ADMA.UART2.TX, ADMA.FTM.CH1, ADMA.FLEXCAN1.TX, LSIO.GPIO1.IO23 */
+#define SC_P_UART2_RX                            114   /* ADMA.UART2.RX, ADMA.FTM.CH0, ADMA.FLEXCAN1.RX, LSIO.GPIO1.IO24 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIOLH        115   /* */
+#define SC_P_MIPI_DSI0_I2C0_SCL                  116   /* MIPI_DSI0.I2C0.SCL, MIPI_DSI1.GPIO0.IO02, LSIO.GPIO1.IO25 */
+#define SC_P_MIPI_DSI0_I2C0_SDA                  117   /* MIPI_DSI0.I2C0.SDA, MIPI_DSI1.GPIO0.IO03, LSIO.GPIO1.IO26 */
+#define SC_P_MIPI_DSI0_GPIO0_00                  118   /* MIPI_DSI0.GPIO0.IO00, ADMA.I2C1.SCL, MIPI_DSI0.PWM0.OUT, LSIO.GPIO1.IO27 */
+#define SC_P_MIPI_DSI0_GPIO0_01                  119   /* MIPI_DSI0.GPIO0.IO01, ADMA.I2C1.SDA, LSIO.GPIO1.IO28 */
+#define SC_P_MIPI_DSI1_I2C0_SCL                  120   /* MIPI_DSI1.I2C0.SCL, MIPI_DSI0.GPIO0.IO02, LSIO.GPIO1.IO29 */
+#define SC_P_MIPI_DSI1_I2C0_SDA                  121   /* MIPI_DSI1.I2C0.SDA, MIPI_DSI0.GPIO0.IO03, LSIO.GPIO1.IO30 */
+#define SC_P_MIPI_DSI1_GPIO0_00                  122   /* MIPI_DSI1.GPIO0.IO00, ADMA.I2C2.SCL, MIPI_DSI1.PWM0.OUT, LSIO.GPIO1.IO31 */
+#define SC_P_MIPI_DSI1_GPIO0_01                  123   /* MIPI_DSI1.GPIO0.IO01, ADMA.I2C2.SDA, LSIO.GPIO2.IO00 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_MIPIDSIGPIO   124   /* */
+#define SC_P_JTAG_TRST_B                         125   /* SCU.JTAG.TRST_B, SCU.WDOG0.WDOG_OUT */
+#define SC_P_PMIC_I2C_SCL                        126   /* SCU.PMIC_I2C.SCL, SCU.GPIO0.IOXX_PMIC_A35_ON, LSIO.GPIO2.IO01 */
+#define SC_P_PMIC_I2C_SDA                        127   /* SCU.PMIC_I2C.SDA, SCU.GPIO0.IOXX_PMIC_GPU_ON, LSIO.GPIO2.IO02 */
+#define SC_P_PMIC_INT_B                          128   /* SCU.DSC.PMIC_INT_B */
+#define SC_P_SCU_GPIO0_00                        129   /* SCU.GPIO0.IO00, SCU.UART0.RX, M40.UART0.RX, ADMA.UART3.RX, LSIO.GPIO2.IO03 */
+#define SC_P_SCU_GPIO0_01                        130   /* SCU.GPIO0.IO01, SCU.UART0.TX, M40.UART0.TX, ADMA.UART3.TX, SCU.WDOG0.WDOG_OUT */
+#define SC_P_SCU_PMIC_STANDBY                    131   /* SCU.DSC.PMIC_STANDBY */
+#define SC_P_SCU_BOOT_MODE0                      132   /* SCU.DSC.BOOT_MODE0 */
+#define SC_P_SCU_BOOT_MODE1                      133   /* SCU.DSC.BOOT_MODE1 */
+#define SC_P_SCU_BOOT_MODE2                      134   /* SCU.DSC.BOOT_MODE2, SCU.PMIC_I2C.SDA */
+#define SC_P_SCU_BOOT_MODE3                      135   /* SCU.DSC.BOOT_MODE3, SCU.PMIC_I2C.SCL, SCU.DSC.RTC_CLOCK_OUTPUT_32K */
+#define SC_P_CSI_D00                             136   /* CI_PI.D02, ADMA.SAI0.RXC */
+#define SC_P_CSI_D01                             137   /* CI_PI.D03, ADMA.SAI0.RXD */
+#define SC_P_CSI_D02                             138   /* CI_PI.D04, ADMA.SAI0.RXFS */
+#define SC_P_CSI_D03                             139   /* CI_PI.D05, ADMA.SAI2.RXC */
+#define SC_P_CSI_D04                             140   /* CI_PI.D06, ADMA.SAI2.RXD */
+#define SC_P_CSI_D05                             141   /* CI_PI.D07, ADMA.SAI2.RXFS */
+#define SC_P_CSI_D06                             142   /* CI_PI.D08, ADMA.SAI3.RXC */
+#define SC_P_CSI_D07                             143   /* CI_PI.D09, ADMA.SAI3.RXD */
+#define SC_P_CSI_HSYNC                           144   /* CI_PI.HSYNC, CI_PI.D00, ADMA.SAI3.RXFS */
+#define SC_P_CSI_VSYNC                           145   /* CI_PI.VSYNC, CI_PI.D01 */
+#define SC_P_CSI_PCLK                            146   /* CI_PI.PCLK, MIPI_CSI0.I2C0.SCL, ADMA.SPI1.SCK, LSIO.GPIO3.IO00 */
+#define SC_P_CSI_MCLK                            147   /* CI_PI.MCLK, MIPI_CSI0.I2C0.SDA, ADMA.SPI1.SDO, LSIO.GPIO3.IO01 */
+#define SC_P_CSI_EN                              148   /* CI_PI.EN, CI_PI.I2C.SCL, ADMA.I2C3.SCL, ADMA.SPI1.SDI, LSIO.GPIO3.IO02 */
+#define SC_P_CSI_RESET                           149   /* CI_PI.RESET, CI_PI.I2C.SDA, ADMA.I2C3.SDA, ADMA.SPI1.CS0, LSIO.GPIO3.IO03 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHD       150   /* */
+#define SC_P_MIPI_CSI0_MCLK_OUT                  151   /* MIPI_CSI0.ACM.MCLK_OUT, LSIO.GPIO3.IO04 */
+#define SC_P_MIPI_CSI0_I2C0_SCL                  152   /* MIPI_CSI0.I2C0.SCL, MIPI_CSI0.GPIO0.IO02, LSIO.GPIO3.IO05 */
+#define SC_P_MIPI_CSI0_I2C0_SDA                  153   /* MIPI_CSI0.I2C0.SDA, MIPI_CSI0.GPIO0.IO03, LSIO.GPIO3.IO06 */
+#define SC_P_MIPI_CSI0_GPIO0_01                  154   /* MIPI_CSI0.GPIO0.IO01, ADMA.I2C0.SDA, LSIO.GPIO3.IO07 */
+#define SC_P_MIPI_CSI0_GPIO0_00                  155   /* MIPI_CSI0.GPIO0.IO00, ADMA.I2C0.SCL, LSIO.GPIO3.IO08 */
+#define SC_P_QSPI0A_DATA0                        156   /* LSIO.QSPI0A.DATA0, LSIO.GPIO3.IO09 */
+#define SC_P_QSPI0A_DATA1                        157   /* LSIO.QSPI0A.DATA1, LSIO.GPIO3.IO10 */
+#define SC_P_QSPI0A_DATA2                        158   /* LSIO.QSPI0A.DATA2, LSIO.GPIO3.IO11 */
+#define SC_P_QSPI0A_DATA3                        159   /* LSIO.QSPI0A.DATA3, LSIO.GPIO3.IO12 */
+#define SC_P_QSPI0A_DQS                          160   /* LSIO.QSPI0A.DQS, LSIO.GPIO3.IO13 */
+#define SC_P_QSPI0A_SS0_B                        161   /* LSIO.QSPI0A.SS0_B, LSIO.GPIO3.IO14 */
+#define SC_P_QSPI0A_SS1_B                        162   /* LSIO.QSPI0A.SS1_B, LSIO.GPIO3.IO15 */
+#define SC_P_QSPI0A_SCLK                         163   /* LSIO.QSPI0A.SCLK, LSIO.GPIO3.IO16 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI0A        164   /* */
+#define SC_P_QSPI0B_SCLK                         165   /* LSIO.QSPI0B.SCLK, LSIO.QSPI1A.SCLK, LSIO.KPP0.COL0, LSIO.GPIO3.IO17 */
+#define SC_P_QSPI0B_DATA0                        166   /* LSIO.QSPI0B.DATA0, LSIO.QSPI1A.DATA0, LSIO.KPP0.COL1, LSIO.GPIO3.IO18 */
+#define SC_P_QSPI0B_DATA1                        167   /* LSIO.QSPI0B.DATA1, LSIO.QSPI1A.DATA1, LSIO.KPP0.COL2, LSIO.GPIO3.IO19 */
+#define SC_P_QSPI0B_DATA2                        168   /* LSIO.QSPI0B.DATA2, LSIO.QSPI1A.DATA2, LSIO.KPP0.COL3, LSIO.GPIO3.IO20 */
+#define SC_P_QSPI0B_DATA3                        169   /* LSIO.QSPI0B.DATA3, LSIO.QSPI1A.DATA3, LSIO.KPP0.ROW0, LSIO.GPIO3.IO21 */
+#define SC_P_QSPI0B_DQS                          170   /* LSIO.QSPI0B.DQS, LSIO.QSPI1A.DQS, LSIO.KPP0.ROW1, LSIO.GPIO3.IO22 */
+#define SC_P_QSPI0B_SS0_B                        171   /* LSIO.QSPI0B.SS0_B, LSIO.QSPI1A.SS0_B, LSIO.KPP0.ROW2, LSIO.GPIO3.IO23 */
+#define SC_P_QSPI0B_SS1_B                        172   /* LSIO.QSPI0B.SS1_B, LSIO.QSPI1A.SS1_B, LSIO.KPP0.ROW3, LSIO.GPIO3.IO24 */
+#define SC_P_COMP_CTL_GPIO_1V8_3V3_QSPI0B        173   /* */
 /*@}*/
 
-#endif /* _SC_PINS_H */
-
+#endif                         /* _SC_PINS_H */
index b5591fe..fe9fc7d 100644 (file)
 #define SC_R_CAAM_JR1_OUT               514
 #define SC_R_CAAM_JR2_OUT               515
 #define SC_R_CAAM_JR3_OUT               516
-#define SC_R_LAST                       517
+#define SC_R_VPU_DEC                    517
+#define SC_R_VPU_ENC                    518
+#define SC_R_CAAM_JR0                   519
+#define SC_R_CAAM_JR0_OUT               520
+#define SC_R_PMIC_2                     521
+#define SC_R_LAST                       522
 
 #endif                         /* __DT_BINDINGS_RSCRC_IMX_H */
index ca6965e..8adc4d4 100644 (file)
@@ -62,6 +62,8 @@ typedef enum sc_irq_temp_e {
        SC_IRQ_TEMP_VPU_LOW = (1 << 17),        /* DRC1 temp alarm interrupt */
        SC_IRQ_TEMP_PMIC0_LOW = (1 << 18),      /* PMIC0 temp alarm interrupt */
        SC_IRQ_TEMP_PMIC1_LOW = (1 << 19),      /* PMIC1 temp alarm interrupt */
+       SC_IRQ_TEMP_PMIC2_HIGH = (1 << 20),     /* PMIC2 temp alarm interrupt */
+       SC_IRQ_TEMP_PMIC2_LOW = (1 << 21)       /* PMIC2 temp alarm interrupt */
 } sc_irq_temp_t;
 
 /*!
index 0f58735..6c3cd74 100644 (file)
@@ -62,6 +62,11 @@ typedef enum sc_misc_seco_auth_cmd_e {
 
 /* Functions */
 
+/*!
+ * @name Control Functions
+ * @{
+ */
+
 /*!
  * This function sets a miscellaneous control value.
  *
@@ -102,28 +107,12 @@ sc_err_t sc_misc_set_control(sc_ipc_t ipc, sc_rsrc_t resource,
 sc_err_t sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource,
                             sc_ctrl_t ctrl, uint32_t *val);
 
+/* @} */
+
 /*!
- * This function configures the ARI match value for PCIe/SATA resources.
- *
- * @param[in]     ipc          IPC handle
- * @param[in]     resource     match resource
- * @param[in]     resource_mst PCIe/SATA master to match
- * @param[in]     ari          ARI to match
- * @param[in]     enable       enable match or not
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- *
- * Return errors:
- * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the owner or parent
- *   of the owner of the resource and translation
- *
- * For PCIe, the ARI is the 16-bit value that includes the bus number,
- * device number, and function number. For SATA, this value includes the
- * FISType and PM_Port.
+ * @name DMA Functions
+ * @{
  */
-sc_err_t sc_misc_set_ari(sc_ipc_t ipc, sc_rsrc_t resource,
-                        sc_rsrc_t resource_mst, uint16_t ari, bool enable);
 
 /*!
  * This function configures the max DMA channel priority group for a
@@ -167,29 +156,12 @@ sc_err_t sc_misc_set_max_dma_group(sc_ipc_t ipc, sc_rm_pt_t pt,
 sc_err_t sc_misc_set_dma_group(sc_ipc_t ipc, sc_rsrc_t resource,
                               sc_misc_dma_group_t group);
 
-/*!
- * This function starts/stops emulation waveform capture.
- *
- * @param[in]     ipc         IPC handle
- * @param[in]     enable      flag to enable/disable capture
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- *
- * Return errors:
- * - SC_ERR_UNAVAILABLE if not running on emulation
- */
-sc_err_t sc_misc_waveform_capture(sc_ipc_t ipc, bool enable);
+/* @} */
 
 /*!
- * This function reports boot status.
- *
- * @param[in]     ipc         IPC handle
- * @param[in]     status      boot status
- *
- * This is used by SW partitions to report status of boot. This is
- * normally used to report a boot failure.
+ * @name Security Functions
+ * @{
  */
-void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status);
 
 /*!
  * This function loads a SECO image.
@@ -221,6 +193,77 @@ sc_err_t sc_misc_seco_authenticate(sc_ipc_t ipc,
                                   sc_misc_seco_auth_cmd_t cmd,
                                   uint32_t addr_meta);
 
+/* @} */
+
+/*!
+ * @name Debug Functions
+ * @{
+ */
+
+/*!
+ * This function is used output a debug character from the SCU UART.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     ch          character to output
+ */
+void sc_misc_debug_out(sc_ipc_t ipc, uint8_t ch);
+
+/*!
+ * This function starts/stops waveform capture.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     enable      flag to enable/disable capture
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_ERR_UNAVAILABLE if not running
+ */
+sc_err_t sc_misc_waveform_capture(sc_ipc_t ipc, bool enable);
+
+/* @} */
+
+/*!
+ * @name Other Functions
+ * @{
+ */
+
+/*!
+ * This function configures the ARI match value for PCIe/SATA resources.
+ *
+ * @param[in]     ipc          IPC handle
+ * @param[in]     resource     match resource
+ * @param[in]     resource_mst PCIe/SATA master to match
+ * @param[in]     ari          ARI to match
+ * @param[in]     enable       enable match or not
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_PARM if arguments out of range or invalid,
+ * - SC_ERR_NOACCESS if caller's partition is not the owner or parent
+ *   of the owner of the resource and translation
+ *
+ * For PCIe, the ARI is the 16-bit value that includes the bus number,
+ * device number, and function number. For SATA, this value includes the
+ * FISType and PM_Port.
+ */
+sc_err_t sc_misc_set_ari(sc_ipc_t ipc, sc_rsrc_t resource,
+                        sc_rsrc_t resource_mst, uint16_t ari, bool enable);
+
+/*!
+ * This function reports boot status.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     status      boot status
+ *
+ * This is used by SW partitions to report status of boot. This is
+ * normally used to report a boot failure.
+ */
+void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status);
+
+/* @} */
+
 #endif                         /* _SC_MISC_API_H */
 
 /**@}*/
index d8b5d8b..6159f6b 100644 (file)
@@ -72,19 +72,19 @@ typedef enum sc_pad_28lpp_dse_e {
  */
 typedef enum sc_pad_28fdsio_dse_e {
        SC_PAD_28FDSOI_DSE_18V_1MA = 0, /* Drive strength of 1mA for 1.8v */
-       SC_PAD_28FDSOI_DSE_33V_2MA = 0, /* Drive strength of 2mA for 3.3v */
-       SC_PAD_28FDSOI_DSE_DV_HIGH = 0, /* Drive strength of 12mA for dual volt */
        SC_PAD_28FDSOI_DSE_18V_2MA = 1, /* Drive strength of 2mA for 1.8v */
-       SC_PAD_28FDSOI_DSE_33V_4MA = 1, /* Drive strength of 4mA for 3.3v */
-       SC_PAD_28FDSOI_DSE_DV_LOW = 1,  /* Drive strength of 12mA for dual volt */
        SC_PAD_28FDSOI_DSE_18V_4MA = 2, /* Drive strength of 4mA for 1.8v */
-       SC_PAD_28FDSOI_DSE_33V_8MA = 2, /* Drive strength of 8mA for 3.3v */
        SC_PAD_28FDSOI_DSE_18V_6MA = 3, /* Drive strength of 6mA for 1.8v */
-       SC_PAD_28FDSOI_DSE_33V_12MA = 3,        /* Drive strength of 12mA for 3.3v */
        SC_PAD_28FDSOI_DSE_18V_8MA = 4, /* Drive strength of 8mA for 1.8v */
        SC_PAD_28FDSOI_DSE_18V_10MA = 5,        /* Drive strength of 10mA for 1.8v */
        SC_PAD_28FDSOI_DSE_18V_12MA = 6,        /* Drive strength of 12mA for 1.8v */
-       SC_PAD_28FDSOI_DSE_33V_HS = 7   /* High-speed drive strength for 1.8v */
+       SC_PAD_28FDSOI_DSE_33V_2MA = 0, /* Drive strength of 2mA for 3.3v */
+       SC_PAD_28FDSOI_DSE_33V_4MA = 1, /* Drive strength of 4mA for 3.3v */
+       SC_PAD_28FDSOI_DSE_33V_8MA = 2, /* Drive strength of 8mA for 3.3v */
+       SC_PAD_28FDSOI_DSE_33V_12MA = 3,        /* Drive strength of 12mA for 3.3v */
+       SC_PAD_28FDSOI_DSE_33V_HS = 7,  /* High-speed drive strength for 1.8v */
+       SC_PAD_28FDSOI_DSE_DV_LOW = 0,  /* Low drive strength for dual volt */
+       SC_PAD_28FDSOI_DSE_DV_HIGH = 1  /* High drive strength for dual volt */
 } sc_pad_28fdsoi_dse_t;
 
 /*!
@@ -123,6 +123,11 @@ typedef enum sc_pad_wakeup_e {
 
 /* Functions */
 
+/*!
+ * @name Generic Functions
+ * @{
+ */
+
 /*!
  * This function configures the mux settings for a pin. This includes
  * the signal mux, pad config, and low-power isolation mode.
@@ -144,6 +149,28 @@ typedef enum sc_pad_wakeup_e {
 sc_err_t sc_pad_set_mux(sc_ipc_t ipc, sc_pin_t pin,
                        uint8_t mux, sc_pad_config_t config, sc_pad_iso_t iso);
 
+/*!
+ * This function gets the mux settings for a pin. This includes
+ * the signal mux, pad config, and low-power isolation mode.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     pin         pin to query
+ * @param[out]    mux         pointer to return mux setting
+ * @param[out]    config      pointer to return pad config
+ * @param[out]    iso         pointer to return low-power isolation mode
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_PARM if arguments out of range or invalid,
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner
+ *
+ * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
+ */
+sc_err_t sc_pad_get_mux(sc_ipc_t ipc, sc_pin_t pin,
+                       uint8_t *mux, sc_pad_config_t *config,
+                       sc_pad_iso_t *iso);
+
 /*!
  * This function configures the general purpose pad control. This
  * is technology dependent and includes things like drive strength,
@@ -165,28 +192,24 @@ sc_err_t sc_pad_set_mux(sc_ipc_t ipc, sc_pin_t pin,
 sc_err_t sc_pad_set_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t ctrl);
 
 /*!
- * This function configures the pad control specific to 28LPP.
+ * This function gets the general purpose pad control. This
+ * is technology dependent and includes things like drive strength,
+ * slew rate, pull up/down, etc. Refer to the SoC Reference Manual
+ * for bit field details.
  *
  * @param[in]     ipc         IPC handle
- * @param[in]     pin         pin to configure
- * @param[in]     dse         drive strength
- * @param[in]     sre         slew rate
- * @param[in]     hys         hysteresis
- * @param[in]     pe          pull enable
- * @param[in]     ps          pull select
+ * @param[in]     pin         pin to query
+ * @param[out]    ctrl        pointer to return control value
  *
  * @return Returns an error code (SC_ERR_NONE = success).
  *
  * Return errors:
  * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner,
- * - SC_ERR_UNAVAILABLE if process not applicable
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner
  *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_set_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
-                            sc_pad_28lpp_dse_t dse, bool sre, bool hys,
-                            bool pe, sc_pad_28lpp_ps_t ps);
+sc_err_t sc_pad_get_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t *ctrl);
 
 /*!
  * This function configures the wakeup mode of the pin.
@@ -205,6 +228,23 @@ sc_err_t sc_pad_set_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
  */
 sc_err_t sc_pad_set_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t wakeup);
 
+/*!
+ * This function gets the wakeup mode of a pin.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     pin         pin to query
+ * @param[out]    wakeup      pointer to return wakeup
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_PARM if arguments out of range or invalid,
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner
+ *
+ * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
+ */
+sc_err_t sc_pad_get_wakeup(sc_ipc_t ipc, sc_pin_t pin, sc_pad_wakeup_t *wakeup);
+
 /*!
  * This function configures a pad.
  *
@@ -232,36 +272,45 @@ sc_err_t sc_pad_set_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t mux,
                        sc_pad_wakeup_t wakeup);
 
 /*!
- * This function gets the mux settings for a pin. This includes
- * the signal mux, pad config, and low-power isolation mode.
+ * This function gets a pad's config.
  *
  * @param[in]     ipc         IPC handle
  * @param[in]     pin         pin to query
  * @param[out]    mux         pointer to return mux setting
  * @param[out]    config      pointer to return pad config
  * @param[out]    iso         pointer to return low-power isolation mode
+ * @param[out]    ctrl        pointer to return control value
+ * @param[out]    wakeup      pointer to return wakeup to set
  *
- * @return Returns an error code (SC_ERR_NONE = success).
+ * @see sc_pad_set_mux().
+ * @see sc_pad_set_gp().
  *
  * Return errors:
  * - SC_PARM if arguments out of range or invalid,
  * - SC_ERR_NOACCESS if caller's partition is not the pin owner
  *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_get_mux(sc_ipc_t ipc, sc_pin_t pin,
-                       uint8_t *mux, sc_pad_config_t *config,
-                       sc_pad_iso_t *iso);
+sc_err_t sc_pad_get_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t *mux,
+                       sc_pad_config_t *config, sc_pad_iso_t *iso,
+                       uint32_t *ctrl, sc_pad_wakeup_t *wakeup);
+
+/* @} */
 
 /*!
- * This function gets the general purpose pad control. This
- * is technology dependent and includes things like drive strength,
- * slew rate, pull up/down, etc. Refer to the SoC Reference Manual
- * for bit field details.
+ * @name SoC Specific Functions
+ * @{
+ */
+
+/*!
+ * This function configures the settings for a pin. This setting is SoC
+ * specific.
  *
  * @param[in]     ipc         IPC handle
- * @param[in]     pin         pin to query
- * @param[out]    ctrl        pointer to return control value
+ * @param[in]     pin         pin to configure
+ * @param[in]     val         value to set
  *
  * @return Returns an error code (SC_ERR_NONE = success).
  *
@@ -271,75 +320,80 @@ sc_err_t sc_pad_get_mux(sc_ipc_t ipc, sc_pin_t pin,
  *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_get_gp(sc_ipc_t ipc, sc_pin_t pin, uint32_t *ctrl);
+sc_err_t sc_pad_set(sc_ipc_t ipc, sc_pin_t pin, uint32_t val);
 
 /*!
- * This function gets the pad control specific to 28LPP.
+ * This function gets the settings for a pin. This setting is SoC
+ * specific.
  *
  * @param[in]     ipc         IPC handle
  * @param[in]     pin         pin to query
- * @param[out]    dse         pointer to return drive strength
- * @param[out]    sre         pointer to return slew rate
- * @param[out]    hys         pointer to return hysteresis
- * @param[out]    pe          pointer to return pull enable
- * @param[out]    ps          pointer to return pull select
+ * @param[out]    val         pointer to return setting
  *
  * @return Returns an error code (SC_ERR_NONE = success).
  *
  * Return errors:
  * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner,
- * - SC_ERR_UNAVAILABLE if process not applicable
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner
  *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_get_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
-                            sc_pad_28lpp_dse_t *dse, bool *sre, bool *hys,
-                            bool *pe, sc_pad_28lpp_ps_t *ps);
+sc_err_t sc_pad_get(sc_ipc_t ipc, sc_pin_t pin, uint32_t *val);
+
+/* @} */
 
 /*!
- * This function gets the wakeup mode of a pin.
+ * @name Technology Specific Functions
+ * @{
+ */
+
+/*!
+ * This function configures the pad control specific to 28LPP.
  *
  * @param[in]     ipc         IPC handle
- * @param[in]     pin         pin to query
- * @param[out]    wakeup      pointer to return wakeup
+ * @param[in]     pin         pin to configure
+ * @param[in]     dse         drive strength
+ * @param[in]     sre         slew rate
+ * @param[in]     hys         hysteresis
+ * @param[in]     pe          pull enable
+ * @param[in]     ps          pull select
  *
  * @return Returns an error code (SC_ERR_NONE = success).
  *
  * Return errors:
  * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner,
+ * - SC_ERR_UNAVAILABLE if process not applicable
  *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_get_wakeup(sc_ipc_t ipc, sc_pin_t pin,
-                          sc_pad_wakeup_t *wakeup);
+sc_err_t sc_pad_set_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
+                            sc_pad_28lpp_dse_t dse, bool sre, bool hys,
+                            bool pe, sc_pad_28lpp_ps_t ps);
 
 /*!
- * This function gets a pad's config.
+ * This function gets the pad control specific to 28LPP.
  *
  * @param[in]     ipc         IPC handle
  * @param[in]     pin         pin to query
- * @param[out]    mux         pointer to return mux setting
- * @param[out]    config      pointer to return pad config
- * @param[out]    iso         pointer to return low-power isolation mode
- * @param[out]    ctrl        pointer to return control value
- * @param[out]    wakeup      pointer to return wakeup to set
+ * @param[out]    dse         pointer to return drive strength
+ * @param[out]    sre         pointer to return slew rate
+ * @param[out]    hys         pointer to return hysteresis
+ * @param[out]    pe          pointer to return pull enable
+ * @param[out]    ps          pointer to return pull select
  *
- * @see sc_pad_set_mux().
- * @see sc_pad_set_gp().
+ * @return Returns an error code (SC_ERR_NONE = success).
  *
  * Return errors:
  * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner
- *
- * @return Returns an error code (SC_ERR_NONE = success).
+ * - SC_ERR_NOACCESS if caller's partition is not the pin owner,
+ * - SC_ERR_UNAVAILABLE if process not applicable
  *
  * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
  */
-sc_err_t sc_pad_get_all(sc_ipc_t ipc, sc_pin_t pin, uint8_t *mux,
-                       sc_pad_config_t *config, sc_pad_iso_t *iso,
-                       uint32_t *ctrl, sc_pad_wakeup_t *wakeup);
+sc_err_t sc_pad_get_gp_28lpp(sc_ipc_t ipc, sc_pin_t pin,
+                            sc_pad_28lpp_dse_t *dse, bool *sre, bool *hys,
+                            bool *pe, sc_pad_28lpp_ps_t *ps);
 
 /*!
  * This function configures the pad control specific to 28FDSOI.
@@ -436,41 +490,7 @@ sc_err_t sc_pad_get_gp_28fdsoi_comp(sc_ipc_t ipc, sc_pin_t pin,
                                    bool *nasrc_sel, bool *compok,
                                    uint8_t *nasrc);
 
-/*!
- * This function configures the settings for a pin. This setting is SoC
- * specific.
- *
- * @param[in]     ipc         IPC handle
- * @param[in]     pin         pin to configure
- * @param[in]     val         value to set
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- *
- * Return errors:
- * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner
- *
- * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
- */
-sc_err_t sc_pad_set(sc_ipc_t ipc, sc_pin_t pin, uint32_t val);
-
-/*!
- * This function gets the settings for a pin. This setting is SoC
- * specific.
- *
- * @param[in]     ipc         IPC handle
- * @param[in]     pin         pin to query
- * @param[out]    val         pointer to return setting
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- *
- * Return errors:
- * - SC_PARM if arguments out of range or invalid,
- * - SC_ERR_NOACCESS if caller's partition is not the pin owner
- *
- * Refer to the SoC [Pin List](@ref PINS) for valid pin values.
- */
-sc_err_t sc_pad_get(sc_ipc_t ipc, sc_pin_t pin, uint32_t *val);
+/* @} */
 
 #endif                         /* _SC_PAD_API_H */
 
index 6044be9..f02de62 100644 (file)
@@ -87,11 +87,12 @@ typedef enum sc_pm_clk_e {
  * This type is used to declare a clock mode.
  */
 typedef enum sc_pm_clk_mode_e {
-       SC_PM_CLK_MODE_OFF = 0, /* Clock is disabled */
-       SC_PM_CLK_MODE_ON = 1,  /* Clock is enabled. */
-       SC_PM_CLK_MODE_AUTOGATE_SW = 2, /* Clock is in SW autogate mode */
-       SC_PM_CLK_MODE_AUTOGATE_HW = 3, /* Clock is in HW autogate mode */
-       SC_PM_CLK_MODE_AUTOGATE_SW_HW = 4,      /* Clock is in SW-HW autogate mode */
+       SC_PM_CLK_MODE_ROM_INIT = 0,
+       SC_PM_CLK_MODE_OFF = 1, /* Clock is disabled */
+       SC_PM_CLK_MODE_ON = 2,  /* Clock is enabled. */
+       SC_PM_CLK_MODE_AUTOGATE_SW = 3, /* Clock is in SW autogate mode */
+       SC_PM_CLK_MODE_AUTOGATE_HW = 4, /* Clock is in HW autogate mode */
+       SC_PM_CLK_MODE_AUTOGATE_SW_HW = 5,      /* Clock is in SW-HW autogate mode */
 } sc_pm_clk_mode_t;
 
 /*!
@@ -282,6 +283,31 @@ sc_err_t sc_pm_clock_enable(sc_ipc_t ipc, sc_rsrc_t resource,
  * @{
  */
 
+/*!
+ * This function is used to reset the system. Only the owner of the
+ * SC_R_SYSTEM resource can do this.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[in]     type        reset type
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ *
+ * Return errors:
+ * - SC_ERR_PARM if invalid type
+ *
+ * If this function returns, then the reset did not occur due to an
+ * invalid parameter.
+ */
+sc_err_t sc_pm_reset(sc_ipc_t ipc, sc_pm_reset_type_t type);
+
+/*!
+ * This function gets a caller's reset reason.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[out]    reason      pointer to return reset reason
+ */
+sc_err_t sc_pm_reset_reason(sc_ipc_t ipc, sc_pm_reset_reason_t *reason);
+
 /*!
  * This function is used to boot a partition.
  *
@@ -324,32 +350,6 @@ sc_err_t sc_pm_boot(sc_ipc_t ipc, sc_rm_pt_t pt,
  */
 void sc_pm_reboot(sc_ipc_t ipc, sc_pm_reset_type_t type);
 
-/*!
- * This function gets a caller's reset reason.
- *
- * @param[in]     ipc         IPC handle
- * @param[out]    reason      pointer to return reset reason
- */
-sc_err_t sc_pm_reset_reason(sc_ipc_t ipc, sc_pm_reset_reason_t *reason);
-
-/*!
- * This function is used to start/stop a CPU.
- *
- * @param[in]     ipc         IPC handle
- * @param[in]     resource    ID of the CPU resource
- * @param[in]     enable      start if true; otherwise stop
- * @param[in]     address     64-bit boot address
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- *
- * Return errors:
- * - SC_ERR_PARM if invalid resource or address,
- * - SC_ERR_NOACCESS if caller's partition is not the parent of the
- *   resource (CPU) owner
- */
-sc_err_t sc_pm_cpu_start(sc_ipc_t ipc, sc_rsrc_t resource, bool enable,
-                        sc_faddr_t address);
-
 /*!
  * This function is used to reboot a partition.
  *
@@ -382,21 +382,22 @@ sc_err_t sc_pm_reboot_partition(sc_ipc_t ipc, sc_rm_pt_t pt,
                                sc_pm_reset_type_t type);
 
 /*!
- * This function is used to reset the system. Only the owner of the
- * SC_R_SYSTEM resource can do this.
+ * This function is used to start/stop a CPU.
  *
  * @param[in]     ipc         IPC handle
- * @param[in]     type        reset type
+ * @param[in]     resource    ID of the CPU resource
+ * @param[in]     enable      start if true; otherwise stop
+ * @param[in]     address     64-bit boot address
  *
  * @return Returns an error code (SC_ERR_NONE = success).
  *
  * Return errors:
- * - SC_ERR_PARM if invalid type
- *
- * If this function returns, then the reset did not occur due to an
- * invalid parameter.
+ * - SC_ERR_PARM if invalid resource or address,
+ * - SC_ERR_NOACCESS if caller's partition is not the parent of the
+ *   resource (CPU) owner
  */
-sc_err_t sc_pm_reset(sc_ipc_t ipc, sc_pm_reset_type_t type);
+sc_err_t sc_pm_cpu_start(sc_ipc_t ipc, sc_rsrc_t resource, bool enable,
+                        sc_faddr_t address);
 
 /* @} */
 
index 971fdc0..c9d8d71 100644 (file)
@@ -151,6 +151,16 @@ sc_err_t sc_timer_get_rtc_time(sc_ipc_t ipc, uint16_t *year, uint8_t *mon,
                               uint8_t *day, uint8_t *hour, uint8_t *min,
                               uint8_t *sec);
 
+/*!
+ * This function gets the RTC time in seconds since 1/1/1970.
+ *
+ * @param[in]     ipc         IPC handle
+ * @param[out]    sec         pointer to return second
+ *
+ * @return Returns an error code (SC_ERR_NONE = success).
+ */
+sc_err_t sc_timer_get_rtc_sec1970(sc_ipc_t ipc, uint32_t *sec);
+
 /*!
  * This function sets the RTC alarm. Only the owner of the SC_R_SYSTEM
  * resource can set the alarm.
@@ -173,16 +183,6 @@ sc_err_t sc_timer_set_rtc_alarm(sc_ipc_t ipc, uint16_t year, uint8_t mon,
                                uint8_t day, uint8_t hour, uint8_t min,
                                uint8_t sec);
 
-/*!
- * This function gets the RTC time in seconds since 1/1/1970.
- *
- * @param[in]     ipc         IPC handle
- * @param[out]    sec         pointer to return second
- *
- * @return Returns an error code (SC_ERR_NONE = success).
- */
-sc_err_t sc_timer_get_rtc_sec1970(sc_ipc_t ipc, uint32_t *sec);
-
 /* @} */
 
 #endif                         /* _SC_TIMER_API_H */
index 6ca7989..898f592 100644 (file)
@@ -659,6 +659,11 @@ typedef enum sc_rsrc_e {
        SC_R_CAAM_JR1_OUT = 514,
        SC_R_CAAM_JR2_OUT = 515,
        SC_R_CAAM_JR3_OUT = 516,
+       SC_R_VPU_DEC = 517,
+       SC_R_VPU_ENC = 518,
+       SC_R_CAAM_JR0 = 519,
+       SC_R_CAAM_JR0_OUT = 520,
+       SC_R_PMIC_2 = 521,
        SC_R_LAST
 } sc_rsrc_t;
 
@@ -703,6 +708,7 @@ typedef enum sc_ctrl_e {
        SC_C_SYNC_CTRL1 = 33,
        SC_C_DPI_RESET = 34,
        SC_C_MIPI_RESET = 35,
+       SC_C_DUAL_MODE = 36,
        SC_C_LAST
 } sc_ctrl_t;