Lines Matching full:pmbus
1 PMBus core driver and internal API
7 [from pmbus.org] The Power Management Bus (PMBus) is an open standard
17 promoted by the PMBus Implementers Forum (PMBus-IF), comprising 30+ adopters
20 Unfortunately, while PMBus commands are standardized, there are no mandatory
22 Also, different PMBUs devices act differently if non-supported commands are
26 Despite all those difficulties, a generic PMBus device driver is still useful
28 device specific extensions in addition to the core PMBus driver, since it is
29 simply unknown what new device specific functionality PMBus device developers
33 to modify the core PMBus driver repeatedly for new devices, the PMBus driver was
35 pmbus_core.c) provides generic functionality. The generic code (in pmbus.c)
36 provides support for generic PMBus devices. Device specific code is responsible
42 PMBus device capabilities auto-detection
45 For generic PMBus devices, code in pmbus.c attempts to auto-detect all supported
46 PMBus commands. Auto-detection is somewhat limited, since there are simply too
48 which PMBus commands are paged and which commands are replicated across all
49 pages (see the PMBus specification for details on multi-page PMBus devices).
61 PMBus internal API
64 The API between core and device specific PMBus code is defined in
65 drivers/hwmon/pmbus/pmbus.h. In addition to the internal API, pmbus.h defines
66 standard PMBus commands and virtual PMBus commands.
68 Standard PMBus commands
71 Standard PMBus commands (commands values 0x00 to 0xff) are defined in the PMBUs
74 Virtual PMBus commands
77 Virtual PMBus commands are provided to enable support for non-standard
81 Virtual PMBus commands start with command value 0x100 and can thus easily be
82 distinguished from standard PMBus commands (which can not have values larger
83 than 0xff). Support for virtual PMBus commands is device specific and thus has
100 handled more efficiently and thus preferred. Either case, the calling PMBus
102 or writing virtual registers (in other words, the PMBus core code will never
105 PMBus driver information
108 PMBus driver information, defined in struct pmbus_driver_info, is the main means
109 for device specific drivers to pass information to the core PMBus driver.
120 non-standard PMBus commands to standard commands, or to augment standard
131 specific command, but that a standard PMBus command may exist. Any other
137 which _must_ be handled in driver specific code. See "Virtual PMBus Commands"
140 Command execution in the core PMBus driver code is as follows.
175 Determine supported PMBus functionality. This function is only necessary
177 pre-determined. It is currently only used by the generic pmbus driver
178 (pmbus.c).
184 PMBus registers. Chip drivers may also use direct I2C commands. If direct I2C
192 Set PMBus page register to <page> for subsequent commands.
217 Execute PMBus "Clear Fault" command on all chip pages.
253 PMBus driver platform data
256 PMBus platform data is defined in include/linux/pmbus.h. Platform data
274 Some PMBus chips respond with valid data when trying to read an unsupported
277 Other PMBus chips don't support the STATUS_CML register, or report