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

TOMOYO Linux Cross Reference
Linux/include/linux/dtpm.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * Copyright (C) 2020 Linaro Ltd
  4  *
  5  * Author: Daniel Lezcano <daniel.lezcano@linaro.org>
  6  */
  7 #ifndef ___DTPM_H__
  8 #define ___DTPM_H__
  9 
 10 #include <linux/powercap.h>
 11 
 12 #define MAX_DTPM_DESCR 8
 13 #define MAX_DTPM_CONSTRAINTS 1
 14 
 15 struct dtpm {
 16         struct powercap_zone zone;
 17         struct dtpm *parent;
 18         struct list_head sibling;
 19         struct list_head children;
 20         struct dtpm_ops *ops;
 21         unsigned long flags;
 22         u64 power_limit;
 23         u64 power_max;
 24         u64 power_min;
 25         int weight;
 26 };
 27 
 28 struct dtpm_ops {
 29         u64 (*set_power_uw)(struct dtpm *, u64);
 30         u64 (*get_power_uw)(struct dtpm *);
 31         int (*update_power_uw)(struct dtpm *);
 32         void (*release)(struct dtpm *);
 33 };
 34 
 35 struct device_node;
 36 
 37 struct dtpm_subsys_ops {
 38         const char *name;
 39         int (*init)(void);
 40         void (*exit)(void);
 41         int (*setup)(struct dtpm *, struct device_node *);
 42 };
 43 
 44 enum DTPM_NODE_TYPE {
 45         DTPM_NODE_VIRTUAL = 0,
 46         DTPM_NODE_DT,
 47 };
 48 
 49 struct dtpm_node {
 50         enum DTPM_NODE_TYPE type;
 51         const char *name;
 52         struct dtpm_node *parent;
 53 };
 54 
 55 static inline struct dtpm *to_dtpm(struct powercap_zone *zone)
 56 {
 57         return container_of(zone, struct dtpm, zone);
 58 }
 59 
 60 int dtpm_update_power(struct dtpm *dtpm);
 61 
 62 int dtpm_release_zone(struct powercap_zone *pcz);
 63 
 64 void dtpm_init(struct dtpm *dtpm, struct dtpm_ops *ops);
 65 
 66 void dtpm_unregister(struct dtpm *dtpm);
 67 
 68 int dtpm_register(const char *name, struct dtpm *dtpm, struct dtpm *parent);
 69 
 70 int dtpm_create_hierarchy(struct of_device_id *dtpm_match_table);
 71 
 72 void dtpm_destroy_hierarchy(void);
 73 #endif
 74 

~ [ 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