€•¦TŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ$/translations/zh_CN/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/zh_TW/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/it_IT/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ja_JP/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ko_KR/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/sp_SP/leds/leds-lp5562”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒKernel driver for lp5562”h]”hŒKernel driver for lp5562”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒ>/var/lib/git/docbuild/linux/Documentation/leds/leds-lp5562.rst”h KubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒTI LP5562 LED Driver ”h]”hŒ paragraph”“”)”}”(hŒTI LP5562 LED Driver”h]”hŒTI LP5562 LED Driver”…””}”(hhÄhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khh¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1h¼hh¹hžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1h·hŸh¶h Khh£hžhubhÃ)”}”(hŒ+Author: Milo(Woogyom) Kim ”h]”(hŒAuthor: Milo(Woogyom) Kim <”…””}”(hhàhžhhŸNh NubhŒ reference”“”)”}”(hŒmilo.kim@ti.com”h]”hŒmilo.kim@ti.com”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œmailto:milo.kim@ti.com”uh1hèhhàubhŒ>”…””}”(hhàhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒ Description”h]”hŒ Description”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K ubhŒ block_quote”“”)”}”(hXTLP5562 can drive up to 4 channels. R/G/B and White. LEDs can be controlled directly via the led class control interface. All four channels can be also controlled using the engine micro programs. LP5562 has the internal program memory for running various LED patterns. For the details, please refer to 'firmware' section in leds-lp55xx.txt ”h]”(hÃ)”}”(hŒxLP5562 can drive up to 4 channels. R/G/B and White. LEDs can be controlled directly via the led class control interface.”h]”hŒxLP5562 can drive up to 4 channels. R/G/B and White. LEDs can be controlled directly via the led class control interface.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K hjubhÃ)”}”(hŒÙAll four channels can be also controlled using the engine micro programs. LP5562 has the internal program memory for running various LED patterns. For the details, please refer to 'firmware' section in leds-lp55xx.txt”h]”hŒÝAll four channels can be also controlled using the engine micro programs. LP5562 has the internal program memory for running various LED patterns. For the details, please refer to ‘firmware’ section in leds-lp55xx.txt”…””}”(hj)hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h Khjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhŸh¶h K hjhžhubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K ubh¢)”}”(hhh]”(h§)”}”(hŒDevice attribute”h]”hŒDevice attribute”…””}”(hjHhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjEhžhhŸh¶h KubhŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hX1engine_mux 3 Engines are allocated in LP5562, but the number of channel is 4. Therefore each channel should be mapped to the engine number. Value: RGB or W This attribute is used for programming LED data with the firmware interface. Unlike the LP5521/LP5523/55231, LP5562 has unique feature for the engine mux, so additional sysfs is required LED Map ===== === =============================== Red ... Engine 1 (fixed) Green ... Engine 2 (fixed) Blue ... Engine 3 (fixed) White ... Engine 1 or 2 or 3 (selective) ===== === =============================== ”h]”(hŒterm”“”)”}”(hŒ engine_mux”h]”hŒ engine_mux”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jahŸh¶h K'hj]ubhŒ definition”“”)”}”(hhh]”(hÃ)”}”(hŒ€3 Engines are allocated in LP5562, but the number of channel is 4. Therefore each channel should be mapped to the engine number.”h]”hŒ€3 Engines are allocated in LP5562, but the number of channel is 4. Therefore each channel should be mapped to the engine number.”…””}”(hjvhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h KhjsubhÃ)”}”(hŒValue: RGB or W”h]”hŒValue: RGB or W”…””}”(hj„hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h KhjsubhÃ)”}”(hŒºThis attribute is used for programming LED data with the firmware interface. Unlike the LP5521/LP5523/55231, LP5562 has unique feature for the engine mux, so additional sysfs is required”h]”hŒºThis attribute is used for programming LED data with the firmware interface. Unlike the LP5521/LP5523/55231, LP5562 has unique feature for the engine mux, so additional sysfs is required”…””}”(hj’hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h KhjsubhÃ)”}”(hŒLED Map”h]”hŒLED Map”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K hjsubhŒtable”“”)”}”(hhh]”hŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j¸hjµubj¹)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j¸hjµubj¹)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j¸hjµubhŒtbody”“”)”}”(hhh]”(hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hÃ)”}”(hŒRed”h]”hŒRed”…””}”(hjçhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K#hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjßubjã)”}”(hhh]”hÃ)”}”(hŒ...”h]”hŒ...”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K#hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjßubjã)”}”(hhh]”hÃ)”}”(hŒEngine 1 (fixed)”h]”hŒEngine 1 (fixed)”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÚubjÞ)”}”(hhh]”(jã)”}”(hhh]”hÃ)”}”(hŒGreen”h]”hŒGreen”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K$hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj/ubjã)”}”(hhh]”hÃ)”}”(hŒ...”h]”hŒ...”…””}”(hjLhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K$hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj/ubjã)”}”(hhh]”hÃ)”}”(hŒEngine 2 (fixed)”h]”hŒEngine 2 (fixed)”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K$hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÚubjÞ)”}”(hhh]”(jã)”}”(hhh]”hÃ)”}”(hŒBlue”h]”hŒBlue”…””}”(hjƒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K%hj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj}ubjã)”}”(hhh]”hÃ)”}”(hŒ...”h]”hŒ...”…””}”(hjšhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K%hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj}ubjã)”}”(hhh]”hÃ)”}”(hŒEngine 3 (fixed)”h]”hŒEngine 3 (fixed)”…””}”(hj±hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K%hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÚubjÞ)”}”(hhh]”(jã)”}”(hhh]”hÃ)”}”(hŒWhite”h]”hŒWhite”…””}”(hjÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K&hjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjËubjã)”}”(hhh]”hÃ)”}”(hŒ...”h]”hŒ...”…””}”(hjèhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K&hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjËubjã)”}”(hhh]”hÃ)”}”(hŒEngine 1 or 2 or 3 (selective)”h]”hŒEngine 1 or 2 or 3 (selective)”…””}”(hjÿhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K&hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jâhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÝhjÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1jØhjµubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j³hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j®hjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jqhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[hŸh¶h K'hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjEhžhhŸh¶h Nubeh}”(h]”Œdevice-attribute”ah ]”h"]”Œdevice attribute”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubh¢)”}”(hhh]”(h§)”}”(hŒ-How to load the program data using engine_mux”h]”hŒ-How to load the program data using engine_mux”…””}”(hjIhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjFhžhhŸh¶h K*ubj)”}”(hXåBefore loading the LP5562 program data, engine_mux should be written between the engine selection and loading the firmware. Engine mux has two different mode, RGB and W. RGB is used for loading RGB program data, W is used for W program data. For example, run blinking green channel pattern:: echo 2 > /sys/bus/i2c/devices/xxxx/select_engine # 2 is for green channel echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux # engine mux for RGB echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine To run a blinking white pattern:: echo 1 or 2 or 3 > /sys/bus/i2c/devices/xxxx/select_engine echo "W" > /sys/bus/i2c/devices/xxxx/engine_mux echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine ”h]”(hÃ)”}”(hŒñBefore loading the LP5562 program data, engine_mux should be written between the engine selection and loading the firmware. Engine mux has two different mode, RGB and W. RGB is used for loading RGB program data, W is used for W program data.”h]”hŒñBefore loading the LP5562 program data, engine_mux should be written between the engine selection and loading the firmware. Engine mux has two different mode, RGB and W. RGB is used for loading RGB program data, W is used for W program data.”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K,hjWubhÃ)”}”(hŒ1For example, run blinking green channel pattern::”h]”hŒ0For example, run blinking green channel pattern:”…””}”(hjihžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K1hjWubhŒ literal_block”“”)”}”(hXWecho 2 > /sys/bus/i2c/devices/xxxx/select_engine # 2 is for green channel echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux # engine mux for RGB echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine”h]”hXWecho 2 > /sys/bus/i2c/devices/xxxx/select_engine # 2 is for green channel echo "RGB" > /sys/bus/i2c/devices/xxxx/engine_mux # engine mux for RGB echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine”…””}”hjysbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jwhŸh¶h K3hjWubhÃ)”}”(hŒ!To run a blinking white pattern::”h]”hŒ To run a blinking white pattern:”…””}”(hj‰hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÂhŸh¶h K:hjWubjx)”}”(hX*echo 1 or 2 or 3 > /sys/bus/i2c/devices/xxxx/select_engine echo "W" > /sys/bus/i2c/devices/xxxx/engine_mux echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine”h]”hX*echo 1 or 2 or 3 > /sys/bus/i2c/devices/xxxx/select_engine echo "W" > /sys/bus/i2c/devices/xxxx/engine_mux echo 1 > /sys/class/firmware/lp5562/loading echo "4000600040FF6000" > /sys/class/firmware/lp5562/data echo 0 > /sys/class/firmware/lp5562/loading echo 1 > /sys/bus/i2c/devices/xxxx/run_engine”…””}”hj—sbah}”(h]”h ]”h"]”h$]”h&]”j‡jˆuh1jwhŸh¶h K