~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/media/i2c/adp1653.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/media/i2c/adp1653.h (Version linux-6.12-rc7) and /include/media/i2c/adp1653.h (Version linux-4.20.17)


  1 /* SPDX-License-Identifier: GPL-2.0-only */    << 
  2 /*                                                  1 /*
  3  * include/media/i2c/adp1653.h                      2  * include/media/i2c/adp1653.h
  4  *                                                  3  *
  5  * Copyright (C) 2008--2011 Nokia Corporation       4  * Copyright (C) 2008--2011 Nokia Corporation
  6  *                                                  5  *
  7  * Contact: Sakari Ailus <sakari.ailus@iki.fi>      6  * Contact: Sakari Ailus <sakari.ailus@iki.fi>
  8  *                                                  7  *
  9  * Contributors:                                    8  * Contributors:
 10  *      Sakari Ailus <sakari.ailus@iki.fi>          9  *      Sakari Ailus <sakari.ailus@iki.fi>
 11  *      Tuukka Toivonen <tuukkat76@gmail.com>      10  *      Tuukka Toivonen <tuukkat76@gmail.com>
                                                   >>  11  *
                                                   >>  12  * This program is free software; you can redistribute it and/or
                                                   >>  13  * modify it under the terms of the GNU General Public License
                                                   >>  14  * version 2 as published by the Free Software Foundation.
                                                   >>  15  *
                                                   >>  16  * This program is distributed in the hope that it will be useful, but
                                                   >>  17  * WITHOUT ANY WARRANTY; without even the implied warranty of
                                                   >>  18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
                                                   >>  19  * General Public License for more details.
                                                   >>  20  *
 12  */                                                21  */
 13                                                    22 
 14 #ifndef ADP1653_H                                  23 #ifndef ADP1653_H
 15 #define ADP1653_H                                  24 #define ADP1653_H
 16                                                    25 
 17 #include <linux/i2c.h>                             26 #include <linux/i2c.h>
 18 #include <linux/mutex.h>                           27 #include <linux/mutex.h>
 19 #include <linux/videodev2.h>                       28 #include <linux/videodev2.h>
 20 #include <media/v4l2-ctrls.h>                      29 #include <media/v4l2-ctrls.h>
 21 #include <media/v4l2-subdev.h>                     30 #include <media/v4l2-subdev.h>
 22                                                    31 
 23 #define ADP1653_NAME                               32 #define ADP1653_NAME                            "adp1653"
 24 #define ADP1653_I2C_ADDR                           33 #define ADP1653_I2C_ADDR                        (0x60 >> 1)
 25                                                    34 
 26 /* Register definitions */                         35 /* Register definitions */
 27 #define ADP1653_REG_OUT_SEL                        36 #define ADP1653_REG_OUT_SEL                     0x00
 28 #define ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN        37 #define ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN     0x01
 29 #define ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX        38 #define ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX     0x0b
 30 #define ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN        39 #define ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN     0x0c
 31 #define ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX        40 #define ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX     0x1f
 32 #define ADP1653_REG_OUT_SEL_HPLED_SHIFT            41 #define ADP1653_REG_OUT_SEL_HPLED_SHIFT         3
 33 #define ADP1653_REG_OUT_SEL_ILED_MAX               42 #define ADP1653_REG_OUT_SEL_ILED_MAX            0x07
 34 #define ADP1653_REG_OUT_SEL_ILED_SHIFT             43 #define ADP1653_REG_OUT_SEL_ILED_SHIFT          0
 35                                                    44 
 36 #define ADP1653_REG_CONFIG                         45 #define ADP1653_REG_CONFIG                      0x01
 37 #define ADP1653_REG_CONFIG_TMR_CFG                 46 #define ADP1653_REG_CONFIG_TMR_CFG              (1 << 4)
 38 #define ADP1653_REG_CONFIG_TMR_SET_MAX             47 #define ADP1653_REG_CONFIG_TMR_SET_MAX          0x0f
 39 #define ADP1653_REG_CONFIG_TMR_SET_SHIFT           48 #define ADP1653_REG_CONFIG_TMR_SET_SHIFT        0
 40                                                    49 
 41 #define ADP1653_REG_SW_STROBE                      50 #define ADP1653_REG_SW_STROBE                   0x02
 42 #define ADP1653_REG_SW_STROBE_SW_STROBE            51 #define ADP1653_REG_SW_STROBE_SW_STROBE         (1 << 0)
 43                                                    52 
 44 #define ADP1653_REG_FAULT                          53 #define ADP1653_REG_FAULT                       0x03
 45 #define ADP1653_REG_FAULT_FLT_SCP                  54 #define ADP1653_REG_FAULT_FLT_SCP               (1 << 3)
 46 #define ADP1653_REG_FAULT_FLT_OT                   55 #define ADP1653_REG_FAULT_FLT_OT                (1 << 2)
 47 #define ADP1653_REG_FAULT_FLT_TMR                  56 #define ADP1653_REG_FAULT_FLT_TMR               (1 << 1)
 48 #define ADP1653_REG_FAULT_FLT_OV                   57 #define ADP1653_REG_FAULT_FLT_OV                (1 << 0)
 49                                                    58 
 50 #define ADP1653_INDICATOR_INTENSITY_MIN            59 #define ADP1653_INDICATOR_INTENSITY_MIN         0
 51 #define ADP1653_INDICATOR_INTENSITY_STEP           60 #define ADP1653_INDICATOR_INTENSITY_STEP        2500
 52 #define ADP1653_INDICATOR_INTENSITY_MAX            61 #define ADP1653_INDICATOR_INTENSITY_MAX         \
 53         (ADP1653_REG_OUT_SEL_ILED_MAX * ADP165     62         (ADP1653_REG_OUT_SEL_ILED_MAX * ADP1653_INDICATOR_INTENSITY_STEP)
 54 #define ADP1653_INDICATOR_INTENSITY_uA_TO_REG(     63 #define ADP1653_INDICATOR_INTENSITY_uA_TO_REG(a) \
 55         ((a) / ADP1653_INDICATOR_INTENSITY_STE     64         ((a) / ADP1653_INDICATOR_INTENSITY_STEP)
 56 #define ADP1653_INDICATOR_INTENSITY_REG_TO_uA(     65 #define ADP1653_INDICATOR_INTENSITY_REG_TO_uA(a) \
 57         ((a) * ADP1653_INDICATOR_INTENSITY_STE     66         ((a) * ADP1653_INDICATOR_INTENSITY_STEP)
 58                                                    67 
 59 #define ADP1653_FLASH_INTENSITY_BASE               68 #define ADP1653_FLASH_INTENSITY_BASE            35
 60 #define ADP1653_FLASH_INTENSITY_STEP               69 #define ADP1653_FLASH_INTENSITY_STEP            15
 61 #define ADP1653_FLASH_INTENSITY_MIN                70 #define ADP1653_FLASH_INTENSITY_MIN                                     \
 62         (ADP1653_FLASH_INTENSITY_BASE              71         (ADP1653_FLASH_INTENSITY_BASE                                   \
 63          + ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN     72          + ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN * ADP1653_FLASH_INTENSITY_STEP)
 64 #define ADP1653_FLASH_INTENSITY_MAX                73 #define ADP1653_FLASH_INTENSITY_MAX                     \
 65         (ADP1653_FLASH_INTENSITY_MIN +             74         (ADP1653_FLASH_INTENSITY_MIN +                  \
 66          (ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX      75          (ADP1653_REG_OUT_SEL_HPLED_FLASH_MAX -         \
 67           ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN      76           ADP1653_REG_OUT_SEL_HPLED_FLASH_MIN + 1) *    \
 68          ADP1653_FLASH_INTENSITY_STEP)             77          ADP1653_FLASH_INTENSITY_STEP)
 69                                                    78 
 70 #define ADP1653_FLASH_INTENSITY_mA_TO_REG(a)       79 #define ADP1653_FLASH_INTENSITY_mA_TO_REG(a)                            \
 71         ((a) < ADP1653_FLASH_INTENSITY_BASE ?      80         ((a) < ADP1653_FLASH_INTENSITY_BASE ? 0 :                       \
 72          (((a) - ADP1653_FLASH_INTENSITY_BASE)     81          (((a) - ADP1653_FLASH_INTENSITY_BASE) / ADP1653_FLASH_INTENSITY_STEP))
 73 #define ADP1653_FLASH_INTENSITY_REG_TO_mA(a)       82 #define ADP1653_FLASH_INTENSITY_REG_TO_mA(a)            \
 74         ((a) * ADP1653_FLASH_INTENSITY_STEP +      83         ((a) * ADP1653_FLASH_INTENSITY_STEP + ADP1653_FLASH_INTENSITY_BASE)
 75                                                    84 
 76 #define ADP1653_TORCH_INTENSITY_MIN                85 #define ADP1653_TORCH_INTENSITY_MIN                                     \
 77         (ADP1653_FLASH_INTENSITY_BASE              86         (ADP1653_FLASH_INTENSITY_BASE                                   \
 78          + ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN     87          + ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN * ADP1653_FLASH_INTENSITY_STEP)
 79 #define ADP1653_TORCH_INTENSITY_MAX                88 #define ADP1653_TORCH_INTENSITY_MAX                     \
 80         (ADP1653_TORCH_INTENSITY_MIN +             89         (ADP1653_TORCH_INTENSITY_MIN +                  \
 81          (ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX      90          (ADP1653_REG_OUT_SEL_HPLED_TORCH_MAX -         \
 82           ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN      91           ADP1653_REG_OUT_SEL_HPLED_TORCH_MIN + 1) *    \
 83          ADP1653_FLASH_INTENSITY_STEP)             92          ADP1653_FLASH_INTENSITY_STEP)
 84                                                    93 
 85 struct adp1653_platform_data {                     94 struct adp1653_platform_data {
 86         int (*power)(struct v4l2_subdev *sd, i     95         int (*power)(struct v4l2_subdev *sd, int on);
 87                                                    96 
 88         u32 max_flash_timeout;          /* fla     97         u32 max_flash_timeout;          /* flash light timeout in us */
 89         u32 max_flash_intensity;        /* led     98         u32 max_flash_intensity;        /* led intensity, flash mode, mA */
 90         u32 max_torch_intensity;        /* led     99         u32 max_torch_intensity;        /* led intensity, torch mode, mA */
 91         u32 max_indicator_intensity;    /* ind    100         u32 max_indicator_intensity;    /* indicator led intensity, uA */
 92                                                   101 
 93         struct gpio_desc *enable_gpio;  /* for    102         struct gpio_desc *enable_gpio;  /* for device-tree based boot */
 94 };                                                103 };
 95                                                   104 
 96 #define to_adp1653_flash(sd)    container_of(s    105 #define to_adp1653_flash(sd)    container_of(sd, struct adp1653_flash, subdev)
 97                                                   106 
 98 struct adp1653_flash {                            107 struct adp1653_flash {
 99         struct v4l2_subdev subdev;                108         struct v4l2_subdev subdev;
100         struct adp1653_platform_data *platform    109         struct adp1653_platform_data *platform_data;
101                                                   110 
102         struct v4l2_ctrl_handler ctrls;           111         struct v4l2_ctrl_handler ctrls;
103         struct v4l2_ctrl *led_mode;               112         struct v4l2_ctrl *led_mode;
104         struct v4l2_ctrl *flash_timeout;          113         struct v4l2_ctrl *flash_timeout;
105         struct v4l2_ctrl *flash_intensity;        114         struct v4l2_ctrl *flash_intensity;
106         struct v4l2_ctrl *torch_intensity;        115         struct v4l2_ctrl *torch_intensity;
107         struct v4l2_ctrl *indicator_intensity;    116         struct v4l2_ctrl *indicator_intensity;
108                                                   117 
109         struct mutex power_lock;                  118         struct mutex power_lock;
110         int power_count;                          119         int power_count;
111         int fault;                                120         int fault;
112 };                                                121 };
113                                                   122 
114 #endif /* ADP1653_H */                            123 #endif /* ADP1653_H */
115                                                   124 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php