diff options
| author | Jacek Anaszewski <j.anaszewski@samsung.com> | 2014-08-22 05:06:18 -0400 |
|---|---|---|
| committer | Lee Jones <lee.jones@linaro.org> | 2014-09-26 03:15:43 -0400 |
| commit | a0bc607208e295f70d0355fa4e632a0c8c27533b (patch) | |
| tree | c81be289f8d82eecfa41b6faa75f94812a7e36da /include/linux/mfd | |
| parent | 4b5c1f1e080f79c3c226596047a20ccd1c8a9486 (diff) | |
mfd: max77693: Improve support for the flash cell
This patch improves support for the flash cell of
max77693 mfd by adding relevant of_compatible field
and a structure for caching related platform data.
Added are also FLASH registers related macro definitions.
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/max77693-private.h | 59 | ||||
| -rw-r--r-- | include/linux/mfd/max77693.h | 40 |
2 files changed, 99 insertions, 0 deletions
diff --git a/include/linux/mfd/max77693-private.h b/include/linux/mfd/max77693-private.h index 615f12141854..de063773f3b1 100644 --- a/include/linux/mfd/max77693-private.h +++ b/include/linux/mfd/max77693-private.h | |||
| @@ -85,6 +85,65 @@ enum max77693_pmic_reg { | |||
| 85 | MAX77693_PMIC_REG_END, | 85 | MAX77693_PMIC_REG_END, |
| 86 | }; | 86 | }; |
| 87 | 87 | ||
| 88 | /* MAX77693 ITORCH register */ | ||
| 89 | #define TORCH_IOUT1_SHIFT 0 | ||
| 90 | #define TORCH_IOUT2_SHIFT 4 | ||
| 91 | #define TORCH_IOUT_MIN 15625 | ||
| 92 | #define TORCH_IOUT_MAX 250000 | ||
| 93 | #define TORCH_IOUT_STEP 15625 | ||
| 94 | |||
| 95 | /* MAX77693 IFLASH1 and IFLASH2 registers */ | ||
| 96 | #define FLASH_IOUT_MIN 15625 | ||
| 97 | #define FLASH_IOUT_MAX_1LED 1000000 | ||
| 98 | #define FLASH_IOUT_MAX_2LEDS 625000 | ||
| 99 | #define FLASH_IOUT_STEP 15625 | ||
| 100 | |||
| 101 | /* MAX77693 TORCH_TIMER register */ | ||
| 102 | #define TORCH_TMR_NO_TIMER 0x40 | ||
| 103 | #define TORCH_TIMEOUT_MIN 262000 | ||
| 104 | #define TORCH_TIMEOUT_MAX 15728000 | ||
| 105 | |||
| 106 | /* MAX77693 FLASH_TIMER register */ | ||
| 107 | #define FLASH_TMR_LEVEL 0x80 | ||
| 108 | #define FLASH_TIMEOUT_MIN 62500 | ||
| 109 | #define FLASH_TIMEOUT_MAX 1000000 | ||
| 110 | #define FLASH_TIMEOUT_STEP 62500 | ||
| 111 | |||
| 112 | /* MAX77693 FLASH_EN register */ | ||
| 113 | #define FLASH_EN_OFF 0x0 | ||
| 114 | #define FLASH_EN_FLASH 0x1 | ||
| 115 | #define FLASH_EN_TORCH 0x2 | ||
| 116 | #define FLASH_EN_ON 0x3 | ||
| 117 | #define FLASH_EN_SHIFT(x) (6 - ((x) - 1) * 2) | ||
| 118 | #define TORCH_EN_SHIFT(x) (2 - ((x) - 1) * 2) | ||
| 119 | |||
| 120 | /* MAX77693 MAX_FLASH1 register */ | ||
| 121 | #define MAX_FLASH1_MAX_FL_EN 0x80 | ||
| 122 | #define MAX_FLASH1_VSYS_MIN 2400 | ||
| 123 | #define MAX_FLASH1_VSYS_MAX 3400 | ||
| 124 | #define MAX_FLASH1_VSYS_STEP 33 | ||
| 125 | |||
| 126 | /* MAX77693 VOUT_CNTL register */ | ||
| 127 | #define FLASH_BOOST_FIXED 0x04 | ||
| 128 | #define FLASH_BOOST_LEDNUM_2 0x80 | ||
| 129 | |||
| 130 | /* MAX77693 VOUT_FLASH1 register */ | ||
| 131 | #define FLASH_VOUT_MIN 3300 | ||
| 132 | #define FLASH_VOUT_MAX 5500 | ||
| 133 | #define FLASH_VOUT_STEP 25 | ||
| 134 | #define FLASH_VOUT_RMIN 0x0c | ||
| 135 | |||
| 136 | /* MAX77693 FLASH_STATUS register */ | ||
| 137 | #define FLASH_STATUS_FLASH_ON BIT(3) | ||
| 138 | #define FLASH_STATUS_TORCH_ON BIT(2) | ||
| 139 | |||
| 140 | /* MAX77693 FLASH_INT register */ | ||
| 141 | #define FLASH_INT_FLED2_OPEN BIT(0) | ||
| 142 | #define FLASH_INT_FLED2_SHORT BIT(1) | ||
| 143 | #define FLASH_INT_FLED1_OPEN BIT(2) | ||
| 144 | #define FLASH_INT_FLED1_SHORT BIT(3) | ||
| 145 | #define FLASH_INT_OVER_CURRENT BIT(4) | ||
| 146 | |||
| 88 | /* MAX77693 CHG_CNFG_00 register */ | 147 | /* MAX77693 CHG_CNFG_00 register */ |
| 89 | #define CHG_CNFG_00_CHG_MASK 0x1 | 148 | #define CHG_CNFG_00_CHG_MASK 0x1 |
| 90 | #define CHG_CNFG_00_BUCK_MASK 0x4 | 149 | #define CHG_CNFG_00_BUCK_MASK 0x4 |
diff --git a/include/linux/mfd/max77693.h b/include/linux/mfd/max77693.h index 3f3dc45f93ee..f0b6585cd874 100644 --- a/include/linux/mfd/max77693.h +++ b/include/linux/mfd/max77693.h | |||
| @@ -63,6 +63,45 @@ struct max77693_muic_platform_data { | |||
| 63 | int path_uart; | 63 | int path_uart; |
| 64 | }; | 64 | }; |
| 65 | 65 | ||
| 66 | /* MAX77693 led flash */ | ||
| 67 | |||
| 68 | /* triggers */ | ||
| 69 | enum max77693_led_trigger { | ||
| 70 | MAX77693_LED_TRIG_OFF, | ||
| 71 | MAX77693_LED_TRIG_FLASH, | ||
| 72 | MAX77693_LED_TRIG_TORCH, | ||
| 73 | MAX77693_LED_TRIG_EXT, | ||
| 74 | MAX77693_LED_TRIG_SOFT, | ||
| 75 | }; | ||
| 76 | |||
| 77 | /* trigger types */ | ||
| 78 | enum max77693_led_trigger_type { | ||
| 79 | MAX77693_LED_TRIG_TYPE_EDGE, | ||
| 80 | MAX77693_LED_TRIG_TYPE_LEVEL, | ||
| 81 | }; | ||
| 82 | |||
| 83 | /* boost modes */ | ||
| 84 | enum max77693_led_boost_mode { | ||
| 85 | MAX77693_LED_BOOST_NONE, | ||
| 86 | MAX77693_LED_BOOST_ADAPTIVE, | ||
| 87 | MAX77693_LED_BOOST_FIXED, | ||
| 88 | }; | ||
| 89 | |||
| 90 | struct max77693_led_platform_data { | ||
| 91 | u32 fleds[2]; | ||
| 92 | u32 iout_torch[2]; | ||
| 93 | u32 iout_flash[2]; | ||
| 94 | u32 trigger[2]; | ||
| 95 | u32 trigger_type[2]; | ||
| 96 | u32 num_leds; | ||
| 97 | u32 boost_mode; | ||
| 98 | u32 flash_timeout; | ||
| 99 | u32 boost_vout; | ||
| 100 | u32 low_vsys; | ||
| 101 | }; | ||
| 102 | |||
| 103 | /* MAX77693 */ | ||
| 104 | |||
| 66 | struct max77693_platform_data { | 105 | struct max77693_platform_data { |
| 67 | /* regulator data */ | 106 | /* regulator data */ |
| 68 | struct max77693_regulator_data *regulators; | 107 | struct max77693_regulator_data *regulators; |
| @@ -70,5 +109,6 @@ struct max77693_platform_data { | |||
| 70 | 109 | ||
| 71 | /* muic data */ | 110 | /* muic data */ |
| 72 | struct max77693_muic_platform_data *muic_data; | 111 | struct max77693_muic_platform_data *muic_data; |
| 112 | struct max77693_led_platform_data *led_data; | ||
| 73 | }; | 113 | }; |
| 74 | #endif /* __LINUX_MFD_MAX77693_H */ | 114 | #endif /* __LINUX_MFD_MAX77693_H */ |
