1f797dbf9SChiYuan Huang.. SPDX-License-Identifier: GPL-2.0 2f797dbf9SChiYuan Huang 3f797dbf9SChiYuan Huang========================================= 4f797dbf9SChiYuan HuangThe device for Mediatek MT6370 RGB LED 5f797dbf9SChiYuan Huang========================================= 6f797dbf9SChiYuan Huang 7f797dbf9SChiYuan HuangDescription 8f797dbf9SChiYuan Huang----------- 9f797dbf9SChiYuan Huang 10f797dbf9SChiYuan HuangThe MT6370 integrates a four-channel RGB LED driver, designed to provide a 11f797dbf9SChiYuan Huangvariety of lighting effect for mobile device applications. The RGB LED devices 12f797dbf9SChiYuan Huangincludes a smart LED string controller and it can drive 3 channels of LEDs with 13f797dbf9SChiYuan Huanga sink current up to 24mA and a CHG_VIN power good indicator LED with sink 14f797dbf9SChiYuan Huangcurrent up to 6mA. It provides three operation modes for RGB LEDs: 15f797dbf9SChiYuan HuangPWM Dimming mode, breath pattern mode, and constant current mode. The device 16f797dbf9SChiYuan Huangcan increase or decrease the brightness of the RGB LED via an I2C interface. 17f797dbf9SChiYuan Huang 18f797dbf9SChiYuan HuangThe breath pattern for a channel can be programmed using the "pattern" trigger, 19f797dbf9SChiYuan Huangusing the hw_pattern attribute. 20f797dbf9SChiYuan Huang 21f797dbf9SChiYuan Huang/sys/class/leds/<led>/hw_pattern 22f797dbf9SChiYuan Huang-------------------------------- 23f797dbf9SChiYuan Huang 24f797dbf9SChiYuan HuangSpecify a hardware breath pattern for a MT6370 RGB LED. 25f797dbf9SChiYuan Huang 26f797dbf9SChiYuan HuangThe breath pattern is a series of timing pairs, with the hold-time expressed in 27f797dbf9SChiYuan Huangmilliseconds. And the brightness is controlled by 28f797dbf9SChiYuan Huang'/sys/class/leds/<led>/brightness'. The pattern doesn't include the brightness 29f797dbf9SChiYuan Huangsetting. Hardware pattern only controls the timing for each pattern stage 30f797dbf9SChiYuan Huangdepending on the current brightness setting. 31f797dbf9SChiYuan Huang 32f797dbf9SChiYuan HuangPattern diagram:: 33f797dbf9SChiYuan Huang 34f797dbf9SChiYuan Huang "0 Tr1 0 Tr2 0 Tf1 0 Tf2 0 Ton 0 Toff" --> '0' for dummy brightness code 35f797dbf9SChiYuan Huang 36f797dbf9SChiYuan Huang ^ 37f797dbf9SChiYuan Huang | ============ 38f797dbf9SChiYuan Huang | / \ / 39f797dbf9SChiYuan Huang Icurr | / \ / 40f797dbf9SChiYuan Huang | / \ / 41f797dbf9SChiYuan Huang | / \ / .....repeat 42f797dbf9SChiYuan Huang | / \ / 43f797dbf9SChiYuan Huang | --- --- --- 44f797dbf9SChiYuan Huang |--- --- --- 45f797dbf9SChiYuan Huang +----------------------------------============------------> Time 46f797dbf9SChiYuan Huang < Tr1><Tr2>< Ton ><Tf1><Tf2 >< Toff >< Tr1><Tr2> 47f797dbf9SChiYuan Huang 48*a8fd44cbSBagas SanjayaTiming description: 49f797dbf9SChiYuan Huang 50*a8fd44cbSBagas Sanjaya * Tr1: First rising time for 0% - 30% load. 51*a8fd44cbSBagas Sanjaya * Tr2: Second rising time for 31% - 100% load. 52*a8fd44cbSBagas Sanjaya * Ton: On time for 100% load. 53*a8fd44cbSBagas Sanjaya * Tf1: First falling time for 100% - 31% load. 54*a8fd44cbSBagas Sanjaya * Tf2: Second falling time for 30% to 0% load. 55*a8fd44cbSBagas Sanjaya * Toff: Off time for 0% load. 56f797dbf9SChiYuan Huang 57*a8fd44cbSBagas Sanjaya * Tr1/Tr2/Tf1/Tf2/Ton: 125ms to 3125ms, 200ms per step. 58*a8fd44cbSBagas Sanjaya * Toff: 250ms to 6250ms, 400ms per step. 59f797dbf9SChiYuan Huang 60f797dbf9SChiYuan HuangPattern example:: 61f797dbf9SChiYuan Huang 62f797dbf9SChiYuan Huang "0 125 0 125 0 125 0 125 0 625 0 1050" 63f797dbf9SChiYuan Huang 64f797dbf9SChiYuan HuangThis Will configure Tr1/Tr2/Tf1/Tf2 to 125m, Ton to 625ms, and Toff to 1050ms. 65