LCOV - code coverage report
Current view: top level - include/linux - nvmem-consumer.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 0 2 0.0 %
Date: 2021-04-22 12:43:58 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : /*
       3             :  * nvmem framework consumer.
       4             :  *
       5             :  * Copyright (C) 2015 Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
       6             :  * Copyright (C) 2013 Maxime Ripard <maxime.ripard@free-electrons.com>
       7             :  */
       8             : 
       9             : #ifndef _LINUX_NVMEM_CONSUMER_H
      10             : #define _LINUX_NVMEM_CONSUMER_H
      11             : 
      12             : #include <linux/err.h>
      13             : #include <linux/errno.h>
      14             : #include <linux/notifier.h>
      15             : 
      16             : struct device;
      17             : struct device_node;
      18             : /* consumer cookie */
      19             : struct nvmem_cell;
      20             : struct nvmem_device;
      21             : 
      22             : struct nvmem_cell_info {
      23             :         const char              *name;
      24             :         unsigned int            offset;
      25             :         unsigned int            bytes;
      26             :         unsigned int            bit_offset;
      27             :         unsigned int            nbits;
      28             : };
      29             : 
      30             : /**
      31             :  * struct nvmem_cell_lookup - cell lookup entry
      32             :  *
      33             :  * @nvmem_name: Name of the provider.
      34             :  * @cell_name:  Name of the nvmem cell as defined in the name field of
      35             :  *              struct nvmem_cell_info.
      36             :  * @dev_id:     Name of the consumer device that will be associated with
      37             :  *              this cell.
      38             :  * @con_id:     Connector id for this cell lookup.
      39             :  */
      40             : struct nvmem_cell_lookup {
      41             :         const char              *nvmem_name;
      42             :         const char              *cell_name;
      43             :         const char              *dev_id;
      44             :         const char              *con_id;
      45             :         struct list_head        node;
      46             : };
      47             : 
      48             : enum {
      49             :         NVMEM_ADD = 1,
      50             :         NVMEM_REMOVE,
      51             :         NVMEM_CELL_ADD,
      52             :         NVMEM_CELL_REMOVE,
      53             : };
      54             : 
      55             : #if IS_ENABLED(CONFIG_NVMEM)
      56             : 
      57             : /* Cell based interface */
      58             : struct nvmem_cell *nvmem_cell_get(struct device *dev, const char *id);
      59             : struct nvmem_cell *devm_nvmem_cell_get(struct device *dev, const char *id);
      60             : void nvmem_cell_put(struct nvmem_cell *cell);
      61             : void devm_nvmem_cell_put(struct device *dev, struct nvmem_cell *cell);
      62             : void *nvmem_cell_read(struct nvmem_cell *cell, size_t *len);
      63             : int nvmem_cell_write(struct nvmem_cell *cell, void *buf, size_t len);
      64             : int nvmem_cell_read_u8(struct device *dev, const char *cell_id, u8 *val);
      65             : int nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val);
      66             : int nvmem_cell_read_u32(struct device *dev, const char *cell_id, u32 *val);
      67             : int nvmem_cell_read_u64(struct device *dev, const char *cell_id, u64 *val);
      68             : 
      69             : /* direct nvmem device read/write interface */
      70             : struct nvmem_device *nvmem_device_get(struct device *dev, const char *name);
      71             : struct nvmem_device *devm_nvmem_device_get(struct device *dev,
      72             :                                            const char *name);
      73             : void nvmem_device_put(struct nvmem_device *nvmem);
      74             : void devm_nvmem_device_put(struct device *dev, struct nvmem_device *nvmem);
      75             : int nvmem_device_read(struct nvmem_device *nvmem, unsigned int offset,
      76             :                       size_t bytes, void *buf);
      77             : int nvmem_device_write(struct nvmem_device *nvmem, unsigned int offset,
      78             :                        size_t bytes, void *buf);
      79             : ssize_t nvmem_device_cell_read(struct nvmem_device *nvmem,
      80             :                            struct nvmem_cell_info *info, void *buf);
      81             : int nvmem_device_cell_write(struct nvmem_device *nvmem,
      82             :                             struct nvmem_cell_info *info, void *buf);
      83             : 
      84             : const char *nvmem_dev_name(struct nvmem_device *nvmem);
      85             : 
      86             : void nvmem_add_cell_lookups(struct nvmem_cell_lookup *entries,
      87             :                             size_t nentries);
      88             : void nvmem_del_cell_lookups(struct nvmem_cell_lookup *entries,
      89             :                             size_t nentries);
      90             : 
      91             : int nvmem_register_notifier(struct notifier_block *nb);
      92             : int nvmem_unregister_notifier(struct notifier_block *nb);
      93             : 
      94             : struct nvmem_device *nvmem_device_find(void *data,
      95             :                         int (*match)(struct device *dev, const void *data));
      96             : 
      97             : #else
      98             : 
      99           0 : static inline struct nvmem_cell *nvmem_cell_get(struct device *dev,
     100             :                                                 const char *id)
     101             : {
     102           0 :         return ERR_PTR(-EOPNOTSUPP);
     103             : }
     104             : 
     105             : static inline struct nvmem_cell *devm_nvmem_cell_get(struct device *dev,
     106             :                                                      const char *id)
     107             : {
     108             :         return ERR_PTR(-EOPNOTSUPP);
     109             : }
     110             : 
     111             : static inline void devm_nvmem_cell_put(struct device *dev,
     112             :                                        struct nvmem_cell *cell)
     113             : {
     114             : 
     115             : }
     116             : static inline void nvmem_cell_put(struct nvmem_cell *cell)
     117             : {
     118             : }
     119             : 
     120             : static inline void *nvmem_cell_read(struct nvmem_cell *cell, size_t *len)
     121             : {
     122             :         return ERR_PTR(-EOPNOTSUPP);
     123             : }
     124             : 
     125             : static inline int nvmem_cell_write(struct nvmem_cell *cell,
     126             :                                    void *buf, size_t len)
     127             : {
     128             :         return -EOPNOTSUPP;
     129             : }
     130             : 
     131             : static inline int nvmem_cell_read_u16(struct device *dev,
     132             :                                       const char *cell_id, u16 *val)
     133             : {
     134             :         return -EOPNOTSUPP;
     135             : }
     136             : 
     137             : static inline int nvmem_cell_read_u32(struct device *dev,
     138             :                                       const char *cell_id, u32 *val)
     139             : {
     140             :         return -EOPNOTSUPP;
     141             : }
     142             : 
     143             : static inline int nvmem_cell_read_u64(struct device *dev,
     144             :                                       const char *cell_id, u64 *val)
     145             : {
     146             :         return -EOPNOTSUPP;
     147             : }
     148             : 
     149             : static inline struct nvmem_device *nvmem_device_get(struct device *dev,
     150             :                                                     const char *name)
     151             : {
     152             :         return ERR_PTR(-EOPNOTSUPP);
     153             : }
     154             : 
     155             : static inline struct nvmem_device *devm_nvmem_device_get(struct device *dev,
     156             :                                                          const char *name)
     157             : {
     158             :         return ERR_PTR(-EOPNOTSUPP);
     159             : }
     160             : 
     161             : static inline void nvmem_device_put(struct nvmem_device *nvmem)
     162             : {
     163             : }
     164             : 
     165             : static inline void devm_nvmem_device_put(struct device *dev,
     166             :                                          struct nvmem_device *nvmem)
     167             : {
     168             : }
     169             : 
     170             : static inline ssize_t nvmem_device_cell_read(struct nvmem_device *nvmem,
     171             :                                          struct nvmem_cell_info *info,
     172             :                                          void *buf)
     173             : {
     174             :         return -EOPNOTSUPP;
     175             : }
     176             : 
     177             : static inline int nvmem_device_cell_write(struct nvmem_device *nvmem,
     178             :                                           struct nvmem_cell_info *info,
     179             :                                           void *buf)
     180             : {
     181             :         return -EOPNOTSUPP;
     182             : }
     183             : 
     184             : static inline int nvmem_device_read(struct nvmem_device *nvmem,
     185             :                                     unsigned int offset, size_t bytes,
     186             :                                     void *buf)
     187             : {
     188             :         return -EOPNOTSUPP;
     189             : }
     190             : 
     191             : static inline int nvmem_device_write(struct nvmem_device *nvmem,
     192             :                                      unsigned int offset, size_t bytes,
     193             :                                      void *buf)
     194             : {
     195             :         return -EOPNOTSUPP;
     196             : }
     197             : 
     198             : static inline const char *nvmem_dev_name(struct nvmem_device *nvmem)
     199             : {
     200             :         return NULL;
     201             : }
     202             : 
     203             : static inline void
     204             : nvmem_add_cell_lookups(struct nvmem_cell_lookup *entries, size_t nentries) {}
     205             : static inline void
     206             : nvmem_del_cell_lookups(struct nvmem_cell_lookup *entries, size_t nentries) {}
     207             : 
     208             : static inline int nvmem_register_notifier(struct notifier_block *nb)
     209             : {
     210             :         return -EOPNOTSUPP;
     211             : }
     212             : 
     213             : static inline int nvmem_unregister_notifier(struct notifier_block *nb)
     214             : {
     215             :         return -EOPNOTSUPP;
     216             : }
     217             : 
     218             : static inline struct nvmem_device *nvmem_device_find(void *data,
     219             :                         int (*match)(struct device *dev, const void *data))
     220             : {
     221             :         return NULL;
     222             : }
     223             : 
     224             : #endif /* CONFIG_NVMEM */
     225             : 
     226             : #if IS_ENABLED(CONFIG_NVMEM) && IS_ENABLED(CONFIG_OF)
     227             : struct nvmem_cell *of_nvmem_cell_get(struct device_node *np,
     228             :                                      const char *id);
     229             : struct nvmem_device *of_nvmem_device_get(struct device_node *np,
     230             :                                          const char *name);
     231             : #else
     232             : static inline struct nvmem_cell *of_nvmem_cell_get(struct device_node *np,
     233             :                                                    const char *id)
     234             : {
     235             :         return ERR_PTR(-EOPNOTSUPP);
     236             : }
     237             : 
     238             : static inline struct nvmem_device *of_nvmem_device_get(struct device_node *np,
     239             :                                                        const char *name)
     240             : {
     241             :         return ERR_PTR(-EOPNOTSUPP);
     242             : }
     243             : #endif /* CONFIG_NVMEM && CONFIG_OF */
     244             : 
     245             : #endif  /* ifndef _LINUX_NVMEM_CONSUMER_H */

Generated by: LCOV version 1.14