Please find the current rules file and script attached.
#
# This udev rule connects the USB ID pin with the charging current setting
# of the twl4030 through a helper script.
#
# This allows to use default charging current 500 mA and switch to higher
# values if a more capable power supply indicates through the ID pin.
#
# Implementation is a little tricky since an udev rule can'd dynamically
# identify two different nodes. And ATTR{} can not reference arbitrary
# files relative to root (ATTR is relative to /sys/%p even if it starts
# with a /). And we can't create symlinks within /sysfs.
#
# Therefore connecting two device nodes in /sys is beyond udev rules
# and we need a helper script.
#
# 1. provide stable name to access the id pin of the USB connector and the
max_current setting for the usb charger
# /dev/usb_id ->
/sys/devices/platform/68000000.ocp/48070000.i2c/i2c-0/0-0048/48070000.i2c:twl@48:twl4030-usb/id
# /dev/usb_max_current ->
/sys/devices/platform/68000000.ocp/48070000.i2c/i2c-0/0-0048/48070000.i2c:twl@48:bci/power_supply/twl4030_usb/input_current_limit
# to find patters use e.g. udevadm info -a -p
/sys/devices/platform/68000000.ocp/48070000.i2c/i2c-0/0-0048/48070000.i2c:twl@48:bci/power_supply/twl4030_usb
ACTION=="add", SUBSYSTEM=="platform", KERNEL=="*twl4030-usb",
DRIVER=="twl4030_usb", RUN+="/bin/ln -s /sys%p/id /dev/usb_id"
ACTION=="add", SUBSYSTEM=="power_supply", KERNEL=="twl4030_usb",
ATTR{type}=="USB", RUN+="/bin/ln -s /sys%p/input_current_limit
/dev/usb_max_current"
# 2. default to 500 mA right after boot (independently what the ID pin says)
ACTION=="add", SUBSYSTEM=="power_supply", KERNEL=="twl4030_usb",
ATTR{type}=="USB", ATTR{input_current_limit}="500000"
# 3. this is preparation for the Pyra but neither tested nor complete nor
working
ACTION=="add", SUBSYSTEM=="power_supply", KERNEL=="bq24297", ATTR{type}=="USB",
RUN+="/bin/ln -s /sys%p/id /dev/usb_id"
ACTION=="add", SUBSYSTEM=="power_supply", KERNEL=="bq24297", ATTR{type}=="USB",
RUN+="/bin/ln -s /sys%p/input_current_limit /dev/usb_max_current"
# 4. charger has been plugged in (or removed): run external script
# this script reads the id pin value and make a decision for the current
setting of /dev/usb_max_current
ACTION=="change", SUBSYSTEM=="power_supply", KERNEL=="twl4030_usb",
ATTR{type}=="USB", RUN+="/etc/udev/rules.d/charging.sh"
charging.sh
Description: application/shellscript
_______________________________________________ Pkg-systemd-maintainers mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-systemd-maintainers
