hc
2023-12-06 d38611ca164021d018c1b23eee65bbebc09c63e0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Kernel driver ltc4245
=====================
 
Supported chips:
 
  * Linear Technology LTC4245
 
    Prefix: 'ltc4245'
 
    Addresses scanned: 0x20-0x3f
 
    Datasheet:
 
   http://www.linear.com/pc/downloadDocument.do?navId=H0,C1,C1003,C1006,C1140,P19392,D13517
 
Author: Ira W. Snyder <iws@ovro.caltech.edu>
 
 
Description
-----------
 
The LTC4245 controller allows a board to be safely inserted and removed
from a live backplane in multiple supply systems such as CompactPCI and
PCI Express.
 
 
Usage Notes
-----------
 
This driver does not probe for LTC4245 devices, due to the fact that some
of the possible addresses are unfriendly to probing. You will have to
instantiate the devices explicitly.
 
Example: the following will load the driver for an LTC4245 at address 0x23
on I2C bus #1::
 
   $ modprobe ltc4245
   $ echo ltc4245 0x23 > /sys/bus/i2c/devices/i2c-1/new_device
 
 
Sysfs entries
-------------
 
The LTC4245 has built-in limits for over and under current warnings. This
makes it very likely that the reference circuit will be used.
 
This driver uses the values in the datasheet to change the register values
into the values specified in the sysfs-interface document. The current readings
rely on the sense resistors listed in Table 2: "Sense Resistor Values".
 
======================= =======================================================
in1_input        12v input voltage (mV)
in2_input        5v  input voltage (mV)
in3_input        3v  input voltage (mV)
in4_input        Vee (-12v) input voltage (mV)
 
in1_min_alarm        12v input undervoltage alarm
in2_min_alarm        5v  input undervoltage alarm
in3_min_alarm        3v  input undervoltage alarm
in4_min_alarm        Vee (-12v) input undervoltage alarm
 
curr1_input        12v current (mA)
curr2_input        5v  current (mA)
curr3_input        3v  current (mA)
curr4_input        Vee (-12v) current (mA)
 
curr1_max_alarm        12v overcurrent alarm
curr2_max_alarm        5v  overcurrent alarm
curr3_max_alarm        3v  overcurrent alarm
curr4_max_alarm        Vee (-12v) overcurrent alarm
 
in5_input        12v output voltage (mV)
in6_input        5v  output voltage (mV)
in7_input        3v  output voltage (mV)
in8_input        Vee (-12v) output voltage (mV)
 
in5_min_alarm        12v output undervoltage alarm
in6_min_alarm        5v  output undervoltage alarm
in7_min_alarm        3v  output undervoltage alarm
in8_min_alarm        Vee (-12v) output undervoltage alarm
 
in9_input        GPIO voltage data (see note 1)
in10_input        GPIO voltage data (see note 1)
in11_input        GPIO voltage data (see note 1)
 
power1_input        12v power usage (mW)
power2_input        5v  power usage (mW)
power3_input        3v  power usage (mW)
power4_input        Vee (-12v) power usage (mW)
======================= =======================================================
 
 
Note 1
------
 
If you have NOT configured the driver to sample all GPIO pins as analog
voltages, then the in10_input and in11_input sysfs attributes will not be
created. The driver will sample the GPIO pin that is currently connected to the
ADC as an analog voltage, and report the value in in9_input.
 
If you have configured the driver to sample all GPIO pins as analog voltages,
then they will be sampled in round-robin fashion. If userspace reads too
slowly, -EAGAIN will be returned when you read the sysfs attribute containing
the sensor reading.
 
The LTC4245 chip can be configured to sample all GPIO pins with two methods:
 
1) platform data -- see include/linux/platform_data/ltc4245.h
2) OF device tree -- add the "ltc4245,use-extra-gpios" property to each chip
 
The default mode of operation is to sample a single GPIO pin.