Lines Matching +full:0 +full:- +full:inch
1 // SPDX-License-Identifier: GPL-2.0
22 #define REG_ID 0x80
23 #define REG_PORTA 0x81
26 #define REG_PORTB 0x82
27 #define REG_POWERON 0x85
28 #define REG_PWM 0x86
42 regmap_write(rdev->regmap, REG_POWERON, 1); in attiny_lcd_power_enable()
46 for (i = 0; i < 20; i++) { in attiny_lcd_power_enable()
47 ret = regmap_read(rdev->regmap, REG_PORTB, &data); in attiny_lcd_power_enable()
49 if (data & BIT(0)) in attiny_lcd_power_enable()
64 regmap_write(rdev->regmap, REG_PORTA, BIT(2)); in attiny_lcd_power_enable()
66 return 0; in attiny_lcd_power_enable()
71 regmap_write(rdev->regmap, REG_PWM, 0); in attiny_lcd_power_disable()
72 regmap_write(rdev->regmap, REG_POWERON, 0); in attiny_lcd_power_disable()
74 return 0; in attiny_lcd_power_disable()
82 for (i = 0; i < 10; i++) { in attiny_lcd_power_is_enabled()
83 ret = regmap_read(rdev->regmap, REG_POWERON, &data); in attiny_lcd_power_is_enabled()
88 if (ret < 0) in attiny_lcd_power_is_enabled()
91 if (!(data & BIT(0))) in attiny_lcd_power_is_enabled()
92 return 0; in attiny_lcd_power_is_enabled()
94 for (i = 0; i < 10; i++) { in attiny_lcd_power_is_enabled()
95 ret = regmap_read(rdev->regmap, REG_PORTB, &data); in attiny_lcd_power_is_enabled()
101 if (ret < 0) in attiny_lcd_power_is_enabled()
104 return data & BIT(0); in attiny_lcd_power_is_enabled()
120 .name = "tc358762-power",
129 int brightness = bl->props.brightness; in attiny_update_status()
132 if (bl->props.power != FB_BLANK_UNBLANK || in attiny_update_status()
133 bl->props.fb_blank != FB_BLANK_UNBLANK) in attiny_update_status()
134 brightness = 0; in attiny_update_status()
136 for (i = 0; i < 10; i++) { in attiny_update_status()
150 for (i = 0; i < 10; i++) { in attiny_get_brightness()
184 dev_err(&i2c->dev, "Failed to allocate register map: %d\n", in attiny_i2c_probe()
190 if (ret < 0) { in attiny_i2c_probe()
191 dev_err(&i2c->dev, "Failed to read REG_ID reg: %d\n", ret); in attiny_i2c_probe()
196 case 0xde: /* ver 1 */ in attiny_i2c_probe()
197 case 0xc3: /* ver 2 */ in attiny_i2c_probe()
200 dev_err(&i2c->dev, "Unknown Atmel firmware revision: 0x%02x\n", data); in attiny_i2c_probe()
201 return -ENODEV; in attiny_i2c_probe()
204 regmap_write(regmap, REG_POWERON, 0); in attiny_i2c_probe()
207 config.dev = &i2c->dev; in attiny_i2c_probe()
209 config.of_node = i2c->dev.of_node; in attiny_i2c_probe()
212 rdev = devm_regulator_register(&i2c->dev, &attiny_regulator, &config); in attiny_i2c_probe()
214 dev_err(&i2c->dev, "Failed to register ATTINY regulator\n"); in attiny_i2c_probe()
219 props.max_brightness = 0xff; in attiny_i2c_probe()
220 bl = devm_backlight_device_register(&i2c->dev, in attiny_i2c_probe()
221 "7inch-touchscreen-panel-bl", in attiny_i2c_probe()
222 &i2c->dev, regmap, &attiny_bl, in attiny_i2c_probe()
227 bl->props.brightness = 0xff; in attiny_i2c_probe()
229 return 0; in attiny_i2c_probe()
233 { .compatible = "raspberrypi,7inch-touchscreen-panel-regulator" },
249 MODULE_DESCRIPTION("Regulator device driver for Raspberry Pi 7-inch touchscreen");