| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| #ifndef _PANEL_JDI_LPM102A188A_H_ |
| #define _PANEL_JDI_LPM102A188A_H_ |
| |
| #define LP8557_MAX_BRIGHTNESS 0xFFF; |
| |
| #define LP8557_COMMAND 0x00 |
| #define LP8557_COMMAND_ON (1 << 0) |
| |
| #define LP8557_BRIGHTNESS_LOW 0x03 |
| #define LP8557_BRIGHTNESS_LOW_MASK(x) (((x) & 0xF) << 4) |
| |
| #define LP8557_BRIGHTNESS_HIGH 0x04 |
| #define LP8557_BRIGHTNESS_HIGH_MASK(x) (((x) & 0xFF0) >> 4) |
| |
| enum lp8557_config_brightness_mode { |
| LP8557_CONFIG_BRTMODE_PWM = 0x0, |
| LP8557_CONFIG_BRTMODE_REG, |
| LP8557_CONFIG_BRTMODE_PWM_REG_SHAPE_PWM, |
| LP8557_CONFIG_BRTMODE_PWM_REG_SHAPE_BRIGHTNESS, |
| LP8557_CONFIG_BRTMODE_MAX, |
| }; |
| #define LP8557_CONFIG 0x10 |
| #define LP8557_CONFIG_BRTMODE(x) (((x) & 0x3) << 0) |
| #define LP8557_CONFIG_AUTO_DETECT_LED (1 << 2) |
| #define LP8557_CONFIG_PWM_STANDBY (1 << 7) |
| |
| enum lp8557_current { |
| LP8557_CURRENT_5_MA = 0x0, |
| LP8557_CURRENT_10_MA, |
| LP8557_CURRENT_13_MA, |
| LP8557_CURRENT_15_MA, |
| LP8557_CURRENT_18_MA, |
| LP8557_CURRENT_20_MA, |
| LP8557_CURRENT_23_MA, |
| LP8557_CURRENT_25_MA, |
| LP8557_CURRENT_MAX, |
| }; |
| #define LP8557_CURRENT 0x11 |
| #define LP8557_CURRENT_MAXCURR(x) (((x) & 0x7) << 0) |
| #define LP8557_CURRENT_ISET (1 << 7) |
| |
| enum lp8557_pgen_frequency { |
| LP8557_PGEN_FREQ_4_9_KHZ = 0x0, |
| LP8557_PGEN_FREQ_9_8_KHZ, |
| LP8557_PGEN_FREQ_14_6_KHZ, |
| LP8557_PGEN_FREQ_19_5_KHZ, |
| LP8557_PGEN_FREQ_24_4_KHZ, |
| LP8557_PGEN_FREQ_29_3_KHZ, |
| LP8557_PGEN_FREQ_34_2_KHZ, |
| LP8557_PGEN_FREQ_39_1_KHZ, |
| LP8557_PGEN_FREQ_MAX, |
| }; |
| #define LP8557_PGEN 0x12 |
| #define LP8557_PGEN_FREQ(x) (((x) & 0x7) << 0) |
| #define LP8557_PGEN_MAGIC (5 << 3) |
| #define LP8557_PGEN_FSET (1 << 7) |
| |
| enum lp8557_boost_freq { |
| LP8557_BOOST_FREQ_500_KHZ = 0x0, |
| LP8557_BOOST_FREQ_1_MHZ, |
| LP8557_BOOST_FREQ_MAX, |
| }; |
| enum lp8557_boost_bcomp { |
| LP8557_BOOST_BCOMP_OPTION_0 = 0x0, |
| LP8557_BOOST_BCOMP_OPTION_1, |
| LP8557_BOOST_BCOMP_MAX, |
| }; |
| #define LP8557_BOOST 0x13 |
| #define LP8557_BOOST_FREQ(x) (((x) & 0x1) << 0) |
| #define LP8557_BOOST_BCOMP(x) (((x) & 0x1) << 1) |
| #define LP8557_BOOST_BCSET (1 << 6) |
| #define LP8557_BOOST_BFSET (1 << 7) |
| |
| #define LP8557_LED_ENABLE 0x14 |
| #define LP8557_LED_ENABLE_SINKS(x) (((x) & 0x3F) << 0) |
| #define LP8557_LED_ENABLE_MAGIC (2 << 6) |
| |
| enum lp8557_step_ramp { |
| LP8557_STEP_RAMP_0_MS = 0x0, |
| LP8557_STEP_RAMP_50_MS, |
| LP8557_STEP_RAMP_100_MS, |
| LP8557_STEP_RAMP_200_MS, |
| LP8557_STEP_RAMP_MAX, |
| }; |
| enum lp8557_step_smoothing { |
| LP8557_STEP_SMOOTHING_NONE = 0x0, |
| LP8557_STEP_SMOOTHING_LIGHT, |
| LP8557_STEP_SMOOTHING_MEDIUM, |
| LP8557_STEP_SMOOTHING_HEAVY, |
| LP8557_STEP_SMOOTHING_MAX, |
| }; |
| #define LP8557_STEP 0x15 |
| #define LP8557_STEP_RAMP(x) (((x) & 0x3) << 0) |
| #define LP8557_STEP_SMOOTHING(x) (((x) & 0x3) << 6) |
| |
| struct mipi_dsi_device; |
| struct soc_nvidia_tegra210_config; |
| |
| struct panel_jdi { |
| struct mipi_dsi_device *dsi; |
| const struct soc_nvidia_tegra210_config *mode; |
| |
| /* Physical size */ |
| unsigned int width_mm; |
| unsigned int height_mm; |
| |
| int enabled; |
| }; |
| |
| struct panel_jdi *panel_jdi_dsi_probe(struct mipi_dsi_device *dsi); |
| int panel_jdi_prepare(struct panel_jdi *jdi); |
| |
| #endif |