€•vUŒ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ŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/pt_BR/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.”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K hj+ubh×)”}”(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´Khj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j)h³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”…””}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjYh²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”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1juh³hÊh´K'hjqubhŒ 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.”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´Khj‡ubh×)”}”(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´Khj‡ubh×)”}”(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´Khj‡ubh×)”}”(hŒLED Map”h]”hŒLED Map”…””}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K hj‡ubhŒ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Œ...”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K#hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jöhjóubj÷)”}”(hhh]”h×)”}”(hŒEngine 1 (fixed)”h]”hŒEngine 1 (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ŒGreen”h]”hŒGreen”…””}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K$hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jöhjCubj÷)”}”(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öhjCubj÷)”}”(hhh]”h×)”}”(hŒEngine 2 (fixed)”h]”hŒEngine 2 (fixed)”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K$hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jöhjCubeh}”(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)”…””}”(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îubeh}”(h]”h ]”h"]”h$]”h&]”uh1jìhjÉubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÇhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jÂhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j…hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1joh³hÊh´K'hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjYh²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”…””}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjZh²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.”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K,hjkubh×)”}”(hŒ1For example, run blinking green channel pattern::”h]”hŒ0For example, run blinking green channel pattern:”…””}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K1hjkubhŒ 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”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1j‹h³hÊh´K3hjkubh×)”}”(hŒ!To run a blinking white pattern::”h]”hŒ To run a blinking white pattern:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÖh³hÊh´K:hjkubjŒ)”}”(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œuh1j‹h³hÊh´K