Blame view

kernel/linux-imx6_3.14.28/include/linux/pmic_status.h 2.5 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  /*
   * Copyright 2004-2014 Freescale Semiconductor, Inc. All Rights Reserved.
   */
  
  /*
   * The code contained herein is licensed under the GNU Lesser General
   * Public License.  You may obtain a copy of the GNU Lesser General
   * Public License Version 2.1 or later at the following locations:
   *
   * http://www.opensource.org/licenses/lgpl-license.html
   * http://www.gnu.org/copyleft/lgpl.html
   */
  #ifndef __ASM_ARCH_MXC_PMIC_STATUS_H__
  #define __ASM_ARCH_MXC_PMIC_STATUS_H__
  #include <asm-generic/errno-base.h>
  #ifdef __KERNEL__
  #include <asm/uaccess.h>	/* copy_{from,to}_user() */
  #endif
  /*!
   * @file arch-mxc/pmic_status.h
   * @brief PMIC APIs return code definition.
   *
   * @ingroup PMIC_CORE
   */
  
  /*!
   * @enum PMIC_STATUS
   * @brief Define return values for all PMIC APIs.
   *
   * These return values are used by all of the PMIC APIs.
   *
   * @ingroup PMIC
   */
  typedef enum {
  	PMIC_SUCCESS = 0,	/*!< The requested operation was successfully
  				   completed.                                     */
  	PMIC_ERROR = -1,	/*!< The requested operation could not be completed
  				   due to an error.                               */
  	PMIC_PARAMETER_ERROR = -2,	/*!< The requested operation failed because
  					   one or more of the parameters was
  					   invalid.                             */
  	PMIC_NOT_SUPPORTED = -3,	/*!< The requested operation could not be
  					   completed because the PMIC hardware
  					   does not support it. */
  	PMIC_SYSTEM_ERROR_EINTR = -EINTR,
  
  	PMIC_MALLOC_ERROR = -5,	/*!< Error in malloc function             */
  	PMIC_UNSUBSCRIBE_ERROR = -6,	/*!< Error in un-subscribe event          */
  	PMIC_EVENT_NOT_SUBSCRIBED = -7,	/*!< Event occur and not subscribed       */
  	PMIC_EVENT_CALL_BACK = -8,	/*!< Error - bad call back                */
  	PMIC_CLIENT_NBOVERFLOW = -9,	/*!< The requested operation could not be
  					   completed because there are too many
  					   PMIC client requests */
  } PMIC_STATUS;
  
  /*
   * Bitfield macros that use rely on bitfield width/shift information.
   */
  #define BITFMASK(field) (((1U << (field ## _WID)) - 1) << (field ## _LSH))
  #define BITFVAL(field, val) ((val) << (field ## _LSH))
  #define BITFEXT(var, bit) ((var & BITFMASK(bit)) >> (bit ## _LSH))
  
  /*
   * Macros implementing error handling
   */
  #define CHECK_ERROR(a)			\
  do {					\
  		int ret = (a); 			\
  		if (ret != PMIC_SUCCESS)	\
  	return ret; 			\
  } while (0)
  
  #define CHECK_ERROR_KFREE(func, freeptrs) \
  do { \
  	int ret = (func); \
  	if (ret != PMIC_SUCCESS) { \
  		freeptrs;	\
  		return ret;	\
  	}	\
  } while (0);
  
  #endif				/* __ASM_ARCH_MXC_PMIC_STATUS_H__ */