blob: 337f7321b69988aa28fb83d3586b84c6839ddd2a [file] [log] [blame]
Rajan Vaja5529a012018-01-17 02:39:23 -08001/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/*
8 * ZynqMP system level PM-API functions for pin control.
9 */
10
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000011#ifndef PM_API_IOCTL_H
12#define PM_API_IOCTL_H
Rajan Vaja5529a012018-01-17 02:39:23 -080013
14#include "pm_common.h"
15
Jolly Shah69fb5bf2018-02-07 16:25:41 -080016//ioctl id
17enum {
Rajan Vaja5529a012018-01-17 02:39:23 -080018 IOCTL_GET_RPU_OPER_MODE,
19 IOCTL_SET_RPU_OPER_MODE,
20 IOCTL_RPU_BOOT_ADDR_CONFIG,
21 IOCTL_TCM_COMB_CONFIG,
Rajan Vajaaea41bb2018-01-17 02:39:24 -080022 IOCTL_SET_TAPDELAY_BYPASS,
23 IOCTL_SET_SGMII_MODE,
24 IOCTL_SD_DLL_RESET,
25 IOCTL_SET_SD_TAPDELAY,
Rajan Vaja35116132018-01-17 02:39:25 -080026 /* Ioctl for clock driver */
27 IOCTL_SET_PLL_FRAC_MODE,
28 IOCTL_GET_PLL_FRAC_MODE,
29 IOCTL_SET_PLL_FRAC_DATA,
30 IOCTL_GET_PLL_FRAC_DATA,
Rajan Vaja393c0a22018-01-17 02:39:27 -080031 IOCTL_WRITE_GGS,
32 IOCTL_READ_GGS,
33 IOCTL_WRITE_PGGS,
34 IOCTL_READ_PGGS,
Siva Durga Prasad Paladugued1d5cb2018-09-04 17:03:25 +053035 /* IOCTL for ULPI reset */
36 IOCTL_ULPI_RESET,
Siva Durga Prasad Paladuguac8526f2018-09-04 17:12:51 +053037 /* Set healthy bit value */
38 IOCTL_SET_BOOT_HEALTH_STATUS,
Siva Durga Prasad Paladugua22b8852018-09-04 17:27:12 +053039 IOCTL_AFI,
Rajan Vaja5529a012018-01-17 02:39:23 -080040};
41
Jolly Shah69fb5bf2018-02-07 16:25:41 -080042//RPU operation mode
43#define PM_RPU_MODE_LOCKSTEP 0U
44#define PM_RPU_MODE_SPLIT 1U
Rajan Vaja5529a012018-01-17 02:39:23 -080045
Jolly Shah69fb5bf2018-02-07 16:25:41 -080046//RPU boot mem
47#define PM_RPU_BOOTMEM_LOVEC 0U
48#define PM_RPU_BOOTMEM_HIVEC 1U
Rajan Vaja5529a012018-01-17 02:39:23 -080049
Jolly Shah69fb5bf2018-02-07 16:25:41 -080050//RPU tcm mpde
51#define PM_RPU_TCM_SPLIT 0U
52#define PM_RPU_TCM_COMB 1U
Rajan Vaja5529a012018-01-17 02:39:23 -080053
Jolly Shah69fb5bf2018-02-07 16:25:41 -080054//tap delay signal type
55#define PM_TAPDELAY_NAND_DQS_IN 0U
56#define PM_TAPDELAY_NAND_DQS_OUT 1U
57#define PM_TAPDELAY_QSPI 2U
58#define PM_TAPDELAY_MAX 3U
Rajan Vajaaea41bb2018-01-17 02:39:24 -080059
Jolly Shah69fb5bf2018-02-07 16:25:41 -080060//tap delay bypass
61#define PM_TAPDELAY_BYPASS_DISABLE 0U
62#define PM_TAPDELAY_BYPASS_ENABLE 1U
Rajan Vajaaea41bb2018-01-17 02:39:24 -080063
Jolly Shah69fb5bf2018-02-07 16:25:41 -080064//sgmii mode
65#define PM_SGMII_DISABLE 0U
66#define PM_SGMII_ENABLE 1U
Rajan Vajaaea41bb2018-01-17 02:39:24 -080067
68enum tap_delay_type {
69 PM_TAPDELAY_INPUT,
70 PM_TAPDELAY_OUTPUT,
71};
72
Jolly Shah69fb5bf2018-02-07 16:25:41 -080073//dll reset type
74#define PM_DLL_RESET_ASSERT 0U
75#define PM_DLL_RESET_RELEASE 1U
76#define PM_DLL_RESET_PULSE 2U
Rajan Vajaaea41bb2018-01-17 02:39:24 -080077
Rajan Vaja5529a012018-01-17 02:39:23 -080078enum pm_ret_status pm_api_ioctl(enum pm_node_id nid,
79 unsigned int ioctl_id,
80 unsigned int arg1,
81 unsigned int arg2,
82 unsigned int *value);
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000083#endif /* PM_API_IOCTL_H */