Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: exynos: Use 'hpd-gpios' instead of 'hpd-gpio'

This patch enables getting a HPD GPIO descriptor quicker.
The exynos-hdmi driver uses "hpd" for HDMI hot plug detection.

static int hdmi_resources_init(struct hdmi_context *hdata)
{
...
hdata->hpd_gpio = devm_gpiod_get(dev, "hpd", GPIOD_IN);
...
}

This calls 'of_find_gpio()' and it generates the GPIO consumer ID by referring
GPIO suffix. So 'hpd-gpios' is preferred on getting a GPIO descriptor.

However, if the device tree uses 'hpd-gpio', then the exynos-hdmi driver
always retries to get a GPIO descriptor because the first GPIO suffix is not
'gpio' but 'gpios'. So you always see the debug message below.

of_get_named_gpiod_flags: can't parse 'hpd-gpios' property of node '/soc/hdmi@14530000[0]'

Use the preferred property, 'hpd-gpios' instead of 'hpd-gpio'.

Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

authored by

Milo Kim and committed by
Krzysztof Kozlowski
05b01dd9 5a5232d1

+12 -12
+2 -2
Documentation/devicetree/bindings/display/exynos/exynos_hdmi.txt
··· 9 9 - reg: physical base address of the hdmi and length of memory mapped 10 10 region. 11 11 - interrupts: interrupt number to the cpu. 12 - - hpd-gpio: following information about the hotplug gpio pin. 12 + - hpd-gpios: following information about the hotplug gpio pin. 13 13 a) phandle of the gpio controller node. 14 14 b) pin number within the gpio controller. 15 15 c) optional flags and pull up/down. ··· 56 56 compatible = "samsung,exynos4212-hdmi"; 57 57 reg = <0x14530000 0x100000>; 58 58 interrupts = <0 95 0>; 59 - hpd-gpio = <&gpx3 7 1>; 59 + hpd-gpios = <&gpx3 7 1>; 60 60 ddc = <&hdmi_ddc_node>; 61 61 phy = <&hdmi_phy_node>; 62 62 samsung,syscon-phandle = <&pmu_system_controller>;
+1 -1
arch/arm/boot/dts/exynos4210-universal_c210.dts
··· 269 269 }; 270 270 271 271 &hdmi { 272 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 272 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 273 273 pinctrl-names = "default"; 274 274 pinctrl-0 = <&hdmi_hpd>; 275 275 hdmi-en-supply = <&hdmi_en>;
+1 -1
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
··· 227 227 }; 228 228 229 229 &hdmi { 230 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 230 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 231 231 pinctrl-names = "default"; 232 232 pinctrl-0 = <&hdmi_hpd>; 233 233 vdd-supply = <&ldo8_reg>;
+1 -1
arch/arm/boot/dts/exynos5250-arndale.dts
··· 152 152 }; 153 153 154 154 &hdmi { 155 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_LOW>; 155 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>; 156 156 vdd_osc-supply = <&ldo10_reg>; 157 157 vdd_pll-supply = <&ldo8_reg>; 158 158 vdd-supply = <&ldo8_reg>;
+1 -1
arch/arm/boot/dts/exynos5250-smdk5250.dts
··· 116 116 }; 117 117 118 118 &hdmi { 119 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 119 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 120 120 }; 121 121 122 122 &i2c_0 {
+1 -1
arch/arm/boot/dts/exynos5250-snow-common.dtsi
··· 260 260 }; 261 261 262 262 &hdmi { 263 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 263 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 264 264 pinctrl-names = "default"; 265 265 pinctrl-0 = <&hdmi_hpd_irq>; 266 266 phy = <&hdmiphy>;
+1 -1
arch/arm/boot/dts/exynos5250-spring.dts
··· 91 91 }; 92 92 93 93 &hdmi { 94 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 94 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 95 95 pinctrl-names = "default"; 96 96 pinctrl-0 = <&hdmi_hpd_irq>; 97 97 phy = <&hdmiphy>;
+1 -1
arch/arm/boot/dts/exynos5420-peach-pit.dts
··· 179 179 180 180 &hdmi { 181 181 status = "okay"; 182 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 182 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 183 183 pinctrl-names = "default"; 184 184 pinctrl-0 = <&hdmi_hpd_irq>; 185 185 ddc = <&i2c_2>;
+1 -1
arch/arm/boot/dts/exynos5420-smdk5420.dts
··· 130 130 131 131 &hdmi { 132 132 status = "okay"; 133 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 133 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 134 134 pinctrl-names = "default"; 135 135 pinctrl-0 = <&hdmi_hpd_irq>; 136 136 };
+1 -1
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
··· 250 250 251 251 &hdmi { 252 252 status = "okay"; 253 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 253 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 254 254 pinctrl-names = "default"; 255 255 pinctrl-0 = <&hdmi_hpd_irq>; 256 256
+1 -1
arch/arm/boot/dts/exynos5800-peach-pi.dts
··· 179 179 180 180 &hdmi { 181 181 status = "okay"; 182 - hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>; 182 + hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 183 183 pinctrl-names = "default"; 184 184 pinctrl-0 = <&hdmi_hpd_irq>; 185 185 ddc = <&i2c_2>;