mirror of
https://github.com/brain-hackers/linux-brain.git
synced 2024-06-09 23:36:23 +09:00
1bfcafbb4d
commit 8807d356bfea92b0a8f04ce421800ed83400cd22 upstream. GPIO lines for the CM36651 sensor I2C bus use the normal not the inverted polarity. This bug has been there since adding the CM36651 sensor by commit85cb4e0bd2
("ARM: dts: add cm36651 light/proximity sensor node for exynos4412-trats2"), but went unnoticed because the "i2c-gpio" driver ignored the GPIO polarity specified in the device-tree. The recent conversion of "i2c-gpio" driver to the new, descriptor based GPIO API, automatically made it the DT-specified polarity aware, what broke the CM36651 sensor operation. Fixes:85cb4e0bd2
("ARM: dts: add cm36651 light/proximity sensor node for exynos4412-trats2") CC: stable@vger.kernel.org # 4.16+ Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
171 lines
3.5 KiB
Plaintext
171 lines
3.5 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Samsung's Exynos4412 based Galaxy S3 board device tree source
|
|
*
|
|
* Copyright (c) 2013 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "exynos4412-midas.dtsi"
|
|
|
|
/ {
|
|
aliases {
|
|
i2c9 = &i2c_ak8975;
|
|
i2c10 = &i2c_cm36651;
|
|
};
|
|
|
|
aat1290 {
|
|
compatible = "skyworks,aat1290";
|
|
flen-gpios = <&gpj1 1 GPIO_ACTIVE_HIGH>;
|
|
enset-gpios = <&gpj1 2 GPIO_ACTIVE_HIGH>;
|
|
|
|
pinctrl-names = "default", "host", "isp";
|
|
pinctrl-0 = <&camera_flash_host>;
|
|
pinctrl-1 = <&camera_flash_host>;
|
|
pinctrl-2 = <&camera_flash_isp>;
|
|
|
|
flash-led {
|
|
label = "flash";
|
|
led-max-microamp = <520833>;
|
|
flash-max-microamp = <1012500>;
|
|
flash-max-timeout-us = <1940000>;
|
|
};
|
|
};
|
|
|
|
lcd_vdd3_reg: voltage-regulator-6 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "LCD_VDD_2.2V";
|
|
regulator-min-microvolt = <2200000>;
|
|
regulator-max-microvolt = <2200000>;
|
|
gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
ps_als_reg: voltage-regulator-7 {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "LED_A_3.0V";
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
gpio = <&gpj0 5 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
};
|
|
|
|
i2c_ak8975: i2c-gpio-0 {
|
|
compatible = "i2c-gpio";
|
|
gpios = <&gpy2 4 GPIO_ACTIVE_HIGH>, <&gpy2 5 GPIO_ACTIVE_HIGH>;
|
|
i2c-gpio,delay-us = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
ak8975@c {
|
|
compatible = "asahi-kasei,ak8975";
|
|
reg = <0x0c>;
|
|
gpios = <&gpj0 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
|
|
i2c_cm36651: i2c-gpio-2 {
|
|
compatible = "i2c-gpio";
|
|
gpios = <&gpf0 0 GPIO_ACTIVE_HIGH>, <&gpf0 1 GPIO_ACTIVE_HIGH>;
|
|
i2c-gpio,delay-us = <2>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cm36651@18 {
|
|
compatible = "capella,cm36651";
|
|
reg = <0x18>;
|
|
interrupt-parent = <&gpx0>;
|
|
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
|
|
vled-supply = <&ps_als_reg>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&buck9_reg {
|
|
maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
&cam_af_reg {
|
|
gpio = <&gpm0 4 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
|
|
&cam_io_reg {
|
|
gpio = <&gpm0 2 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
|
|
&dsi_0 {
|
|
status = "okay";
|
|
|
|
panel@0 {
|
|
compatible = "samsung,s6e8aa0";
|
|
reg = <0>;
|
|
vdd3-supply = <&lcd_vdd3_reg>;
|
|
vci-supply = <&ldo25_reg>;
|
|
reset-gpios = <&gpf2 1 GPIO_ACTIVE_HIGH>;
|
|
power-on-delay= <50>;
|
|
reset-delay = <100>;
|
|
init-delay = <100>;
|
|
flip-horizontal;
|
|
flip-vertical;
|
|
panel-width-mm = <58>;
|
|
panel-height-mm = <103>;
|
|
|
|
display-timings {
|
|
timing-0 {
|
|
clock-frequency = <57153600>;
|
|
hactive = <720>;
|
|
vactive = <1280>;
|
|
hfront-porch = <5>;
|
|
hback-porch = <5>;
|
|
hsync-len = <5>;
|
|
vfront-porch = <13>;
|
|
vback-porch = <1>;
|
|
vsync-len = <2>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c_3 {
|
|
mms114-touchscreen@48 {
|
|
compatible = "melfas,mms114";
|
|
reg = <0x48>;
|
|
interrupt-parent = <&gpm2>;
|
|
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
|
|
touchscreen-size-x = <720>;
|
|
touchscreen-size-y = <1280>;
|
|
avdd-supply = <&ldo23_reg>;
|
|
vdd-supply = <&ldo24_reg>;
|
|
};
|
|
};
|
|
|
|
&ldo25_reg {
|
|
regulator-name = "LCD_VCC_3.3V";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
};
|
|
|
|
&pinctrl_0 {
|
|
camera_flash_host: camera-flash-host {
|
|
samsung,pins = "gpj1-0";
|
|
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
|
|
samsung,pin-val = <0>;
|
|
};
|
|
|
|
camera_flash_isp: camera-flash-isp {
|
|
samsung,pins = "gpj1-0";
|
|
samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
|
|
samsung,pin-val = <1>;
|
|
};
|
|
};
|
|
|
|
&s5c73m3 {
|
|
standby-gpios = <&gpm0 1 GPIO_ACTIVE_LOW>; /* ISP_STANDBY */
|
|
vdda-supply = <&ldo17_reg>;
|
|
status = "okay";
|
|
};
|