mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 22:07:26 +07:00
6fd6d6f6a2
The LCD power sequencer is very finicky. The backlight cannot be driven until after the sequencer is done. Until now, the regulators were marked with 'regulator-always-on' to make sure it came up before the backlight. This patch allows the LCD regulators to power down and prevent the backlight from being used again until the sequencer is ready. This reduces standby power consumption by ~100mW. Signed-off-by: Adam Ford <aford173@gmail.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
121 lines
2.5 KiB
Plaintext
121 lines
2.5 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
//
|
|
// Copyright (C) 2019 Logic PD, Inc.
|
|
|
|
/dts-v1/;
|
|
#include "imx6q.dtsi"
|
|
#include "imx6-logicpd-som.dtsi"
|
|
#include "imx6-logicpd-baseboard.dtsi"
|
|
|
|
/ {
|
|
model = "Logic PD i.MX6QD SOM-M3";
|
|
compatible = "fsl,imx6q";
|
|
|
|
backlight: backlight-lvds {
|
|
compatible = "pwm-backlight";
|
|
pwms = <&pwm3 0 20000>;
|
|
brightness-levels = <0 4 8 16 32 64 128 255>;
|
|
default-brightness-level = <6>;
|
|
power-supply = <®_lcd>;
|
|
};
|
|
|
|
panel-lvds0 {
|
|
compatible = "okaya,rs800480t-7x0gp";
|
|
power-supply = <®_lcd_reset>;
|
|
backlight = <&backlight>;
|
|
|
|
port {
|
|
panel_in_lvds0: endpoint {
|
|
remote-endpoint = <&lvds0_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
reg_lcd: regulator-lcd {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_lcd_reg>;
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "lcd_panel_pwr";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio4 17 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
vin-supply = <®_3v3>;
|
|
startup-delay-us = <500000>;
|
|
};
|
|
|
|
reg_lcd_reset: regulator-lcd-reset {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_lcd_reset>;
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "nLCD_RESET";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
vin-supply = <®_lcd>;
|
|
};
|
|
};
|
|
|
|
&clks {
|
|
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
|
<&clks IMX6QDL_CLK_LDB_DI1_SEL>,
|
|
<&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
|
|
<&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
|
|
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
|
<&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
|
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
|
|
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
|
|
};
|
|
|
|
&hdmi {
|
|
ddc-i2c-bus = <&i2c3>;
|
|
status = "okay";
|
|
};
|
|
|
|
&ldb {
|
|
status = "okay";
|
|
|
|
lvds-channel@0 {
|
|
fsl,data-mapping = "spwg";
|
|
fsl,data-width = <24>;
|
|
status = "okay";
|
|
|
|
port@4 {
|
|
reg = <4>;
|
|
lvds0_out: endpoint {
|
|
remote-endpoint = <&panel_in_lvds0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
};
|
|
|
|
&pwm3 {
|
|
status = "okay";
|
|
};
|
|
|
|
®_hdmi {
|
|
regulator-always-on; /* Without this, the level shifter on HDMI doesn't turn on */
|
|
};
|
|
|
|
&iomuxc {
|
|
pinctrl_lcd_reg: lcdreg {
|
|
fsl,pins = <
|
|
MX6QDL_PAD_DI0_PIN15__GPIO4_IO17 0x100b0 /* R_LCD_PANEL_PWR */
|
|
>;
|
|
};
|
|
|
|
pinctrl_lcd_reset: lcdreset {
|
|
fsl,pins = <
|
|
MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x100b0 /* LCD_nRESET */
|
|
>;
|
|
};
|
|
|
|
pinctrl_touchscreen: touchscreengrp {
|
|
fsl,pins = <
|
|
MX6QDL_PAD_GPIO_6__GPIO1_IO06 0x1b0b0 /* TOUCH_nPINTDAV */
|
|
>;
|
|
};
|
|
};
|