Backlight control signal

The ConnectCore 93 Development Kit uses a PWM channel implemented through TPM6 as the LVDS backlight.

Kernel configuration

You can manage the backlight support through the following kernel configuration options:

  • Low-level backlight controls (CONFIG_BACKLIGHT_CLASS_DEVICE)

  • Generic PWM-based backlight driver (CONFIG_BACKLIGHT_PWM)

These options are enabled as built-in on the default ConnectCore 93 kernel configuration file.

Device tree bindings and customization

The PWM backlight interface bindings is documented at Documentation/devicetree/bindings/leds/backlight/pwm-backlight.yaml.

LVDS backlight

This device tree excerpt shows the two blocks that configure the backlight signal:

  • A backlight entry that uses the generic PWM backlight driver, defines a period for the signal and a table of predefined brightness levels.

  • The enabling of the TPM (PWM) interface.

ConnectCore 93 Development Kit device tree
lvds_backlight: lvds_backlight {
	compatible = "pwm-backlight";
	pwms = <&tpm6 1 50000 0>;
	brightness-levels = <0 20 25 30 35 40 100>;
	default-brightness-level = <6>;
	status = "disabled";
};

[...]

/* LVDS PWM backlight */
&tpm6 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_tpm6>;
};

[...]

&iomuxc {

[...]

	/* LVDS PWM backlight */
	pinctrl_tpm6: tpm6grp {
		fsl,pins = <
			MX93_PAD_GPIO_IO23__TPM6_CH1					0x19e
		>;
	};

Use the backlight

Backlight PWM control is managed through backlight sysfs entries.

To read the maximum allowed brightness level of the backlight:

# cat /sys/class/backlight/lvds_backlight/max_brightness
6

The returned value is the index to the predefined values array in the device tree (starting at zero). The device tree backlight table has exactly 7 entries, so index 6 corresponds to value 100 (backlight fully on).

In practice, having a hundred values is like setting the duty cycle in percentage.

To set a certain brightness value, use another index to the predefined values array in the device tree:

# echo 4 > /sys/class/backlight/lvds_backlight/brightness

In this example, the value 4 sets a 35% brightness (or 35% duty cycle of the PWM signal).

The polarity of the backlight signal may be different among displays. In some displays the backlight may be active at high level, while in others the backlight is active at low level. On the ConnectCore 93 Development Kit and for the supported displays, the backlight is active at high level.