From 722035cfcd7e238000eafa5803e26072433371c8 Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Thu, 28 Sep 2017 13:19:32 +0200 Subject: apalis-tk1: move display configuration to device-tree Signed-off-by: Dominik Sliwa Acked-by: Marcel Ziswiler --- .../tegra124-apalis-displays.dtsi | 200 +++++++++++++++++++- .../tegra124-platforms/tegra124-apalis-pinmux.dtsi | 4 +- .../tegra124-apalis-v1.2-displays.dtsi | 201 ++++++++++++++++++++- arch/arm/boot/dts/tegra124-soc.dtsi | 6 + 4 files changed, 407 insertions(+), 4 deletions(-) (limited to 'arch') diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-displays.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-displays.dtsi index d9eeadc9b8da..03b686e7c719 100644 --- a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-displays.dtsi +++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-displays.dtsi @@ -1,9 +1,207 @@ +#include + / { host1x { - hdmi { + + sor { + status = "okay"; + }; + + lvds:lvds { + status = "okay"; + display { + status = "okay"; + disp-default-out { + status = "okay"; + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d_out0"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <1280>; + nvidia,out-yres = <800>; + }; + display-timings { + timing_1280_800: 1280x800 { + clock-frequency = <71100000>; + nvidia,h-ref-to-sync = <1>; + nvidia,v-ref-to-sync = <1>; + hsync-len = <40>; + vsync-len = <9>; + hback-porch = <60>; + vback-porch = <7>; + hactive = <1280>; + vactive = <800>; + hfront-porch = <60>; + vfront-porch = <7>; + }; + }; + out-pins { + hsync { + pin-name = ; + pol = ; + }; + vsync { + pin-name = ; + pol = ; + }; + pix-clk { + pin-name = ; + pol = ; + }; + data-enable { + pin-name = ; + pol = ; + }; + }; + }; + }; + + edp:edp { + status = "disabled"; + nvidia,hpd-gpio = <&gpio TEGRA_GPIO(FF, 0) 1>; + display { + status = "okay"; + disp-default-out { + status = "okay"; + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <1920>; + nvidia,out-yres = <1080>; + }; + dp-lt-config { + dp-config@0 { + drive-current = <0 0 0 0>; + lane-preemphasis = <0 0 0 0>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x03>; + }; + dp-config@1 { + drive-current = <0 0 0 0>; + lane-preemphasis = <0 0 0 0>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x04>; + }; + dp-config@2 { + drive-current = <0 0 0 0>; + lane-preemphasis = <1 1 1 1>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x06>; + }; + }; + }; + }; + + hdmi:hdmi { status = "okay"; nvidia,ddc-i2c-bus = <&hdmi_ddc>; + nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) 1>; + display { + status = "okay"; + disp-default-out { + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d2"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <640>; + nvidia,out-yres = <480>; + }; + display-timings { + timing_vga: 640x480 { + clock-frequency = <25200000>; + nvidia,h-ref-to-sync = <1>; + nvidia,v-ref-to-sync = <1>; + hsync-len = <96>; + vsync-len = <2>; + hback-porch = <48>; + vback-porch = <33>; + hactive = <640>; + vactive = <480>; + hfront-porch = <16>; + vfront-porch = <10>; + }; + }; + tmds-config { + tmds-cfg@0 { + version = <1 0>; + pclk = <27000000>; + pll0 = <0x01003010>; + pll1 = <0x00301b00>; + pe-current = <0x00000000>; + drive-current = <0x1f1f1f1f>; + peak-current = <0x03030303>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@1 { + version = <1 0>; + pclk = <74250000>; + pll0 = <0x01003110>; + pll1 = <0x00301500>; + pe-current = <0x00000000>; + drive-current = <0x2c2c2c2c>; + peak-current = <0x07070707>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@2 { + version = <1 0>; + pclk = <148500000>; + pll0 = <0x01003310>; + pll1 = <0x00301500>; + pe-current = <0x00000000>; + drive-current = <0x33333333>; + peak-current = <0x0c0c0c0c>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@3 { + version = <1 0>; + pclk = <0x7fffffff>; + pll0 = <0x01003f10>; + pll1 = <0x00300f00>; + pe-current = <0x00000000>; + drive-current = <0x37373737>; + peak-current = <0x17171717>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000600>; + }; + }; + }; }; + + dc@54200000 { + status = "okay"; + nvidia,dc-connection = <&lvds>; + nvidia,dc-flags = ; + nvidia,emc-clk-rate = <300000000>; + nvidia,fb-bpp = <32>; /* bits per pixel */ + nvidia,fb-flags = ; + avdd-supply = <&as3722_ldo4>; + }; + + dc@54240000 { + status = "okay"; + nvidia,dc-connection = <&hdmi>; + nvidia,dc-flags = ; + nvidia,emc-clk-rate = <300000000>; + nvidia,fb-bpp = <32>; /* bits per pixel */ + nvidia,fb-flags = ; + avdd_hdmi-supply = <&as3722_sd4>; + }; }; hdmi_ddc: i2c@7000c400 { diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pinmux.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pinmux.dtsi index 3c45320bf024..52e35caa2745 100644 --- a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pinmux.dtsi +++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pinmux.dtsi @@ -119,14 +119,14 @@ /* Apalis GPIO */ ddc_scl_pv4 { nvidia,pins = "ddc_scl_pv4"; - nvidia,function = "rsvd2"; + nvidia,function = "i2c4"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; }; ddc_sda_pv5 { nvidia,pins = "ddc_sda_pv5"; - nvidia,function = "rsvd2"; + nvidia,function = "i2c4"; nvidia,pull = ; nvidia,tristate = ; nvidia,enable-input = ; diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-v1.2-displays.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-v1.2-displays.dtsi index e7141b33e9a3..b1f21a83f0bc 100644 --- a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-v1.2-displays.dtsi +++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-v1.2-displays.dtsi @@ -1,12 +1,211 @@ +#include + / { host1x { - hdmi { + + sor { + status = "okay"; + }; + + lvds:lvds { + status = "okay"; + display { + status = "okay"; + disp-default-out { + status = "okay"; + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d_out0"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <1280>; + nvidia,out-yres = <800>; + }; + display-timings { + timing_1280_800: 1280x800 { + clock-frequency = <71100000>; + nvidia,h-ref-to-sync = <1>; + nvidia,v-ref-to-sync = <1>; + hsync-len = <40>; + vsync-len = <9>; + hback-porch = <60>; + vback-porch = <7>; + hactive = <1280>; + vactive = <800>; + hfront-porch = <60>; + vfront-porch = <7>; + }; + }; + out-pins { + hsync { + pin-name = ; + pol = ; + }; + vsync { + pin-name = ; + pol = ; + }; + pix-clk { + pin-name = ; + pol = ; + }; + data-enable { + pin-name = ; + pol = ; + }; + }; + }; + }; + + edp:edp { + status = "disabled"; + nvidia,hpd-gpio = <&gpio TEGRA_GPIO(FF, 0) 1>; + display { + status = "okay"; + disp-default-out { + status = "okay"; + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <1920>; + nvidia,out-yres = <1080>; + }; + dp-lt-config { + dp-config@0 { + drive-current = <0 0 0 0>; + lane-preemphasis = <0 0 0 0>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x03>; + }; + dp-config@1 { + drive-current = <0 0 0 0>; + lane-preemphasis = <0 0 0 0>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x04>; + }; + dp-config@2 { + drive-current = <0 0 0 0>; + lane-preemphasis = <1 1 1 1>; + post-cursor = <0 0 0 0>; + tx-pu = <0>; + load-adj = <0x06>; + }; + }; + }; + }; + + hdmi:hdmi { status = "okay"; nvidia,ddc-i2c-bus = <&hdmi_ddc>; + nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) 1>; + display { + status = "okay"; + disp-default-out { + nvidia,out-type = ; + nvidia,out-flags = ; + nvidia,out-parent-clk = "pll_d2"; + nvidia,out-max-pixclk = <3367>; /* KHZ2PICOS(297000) */ + nvidia,out-align = ; + nvidia,out-order = ; + nvidia,out-depth = <24>; + nvidia,out-xres = <640>; + nvidia,out-yres = <480>; + }; + display-timings { + timing_vga: 640x480 { + clock-frequency = <25200000>; + nvidia,h-ref-to-sync = <1>; + nvidia,v-ref-to-sync = <1>; + hsync-len = <96>; + vsync-len = <2>; + hback-porch = <48>; + vback-porch = <33>; + hactive = <640>; + vactive = <480>; + hfront-porch = <16>; + vfront-porch = <10>; + }; + }; + tmds-config { + tmds-cfg@0 { + version = <1 0>; + pclk = <27000000>; + pll0 = <0x01003010>; + pll1 = <0x00301b00>; + pe-current = <0x00000000>; + drive-current = <0x1f1f1f1f>; + peak-current = <0x03030303>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@1 { + version = <1 0>; + pclk = <74250000>; + pll0 = <0x01003110>; + pll1 = <0x00301500>; + pe-current = <0x00000000>; + drive-current = <0x2c2c2c2c>; + peak-current = <0x07070707>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@2 { + version = <1 0>; + pclk = <148500000>; + pll0 = <0x01003310>; + pll1 = <0x00301500>; + pe-current = <0x00000000>; + drive-current = <0x33333333>; + peak-current = <0x0c0c0c0c>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000400>; + }; + tmds-cfg@3 { + version = <1 0>; + pclk = <0x7fffffff>; + pll0 = <0x01003f10>; + pll1 = <0x00300f00>; + pe-current = <0x00000000>; + drive-current = <0x37373737>; + peak-current = <0x17171717>; + pad-ctls0-mask = <0xfffff0ff>; + pad-ctls0-setting = <0x00000600>; + }; + }; + }; }; + + dc@54200000 { + status = "okay"; + nvidia,dc-connection = <&lvds>; + nvidia,dc-flags = ; + nvidia,emc-clk-rate = <300000000>; + nvidia,fb-bpp = <32>; /* bits per pixel */ + nvidia,fb-flags = ; + avdd-supply = <&as3722_ldo4>; + }; + + dc@54240000 { + status = "okay"; + nvidia,dc-connection = <&hdmi>; + nvidia,dc-flags = ; + nvidia,emc-clk-rate = <300000000>; + nvidia,fb-bpp = <32>; /* bits per pixel */ + nvidia,fb-flags = ; + avdd_hdmi-supply = <&as3722_sd4>; + }; }; hdmi_ddc: i2c@7000c700 { clock-frequency = <10000>; }; + }; diff --git a/arch/arm/boot/dts/tegra124-soc.dtsi b/arch/arm/boot/dts/tegra124-soc.dtsi index 5c8402329aec..ed90ecf7725e 100644 --- a/arch/arm/boot/dts/tegra124-soc.dtsi +++ b/arch/arm/boot/dts/tegra124-soc.dtsi @@ -582,6 +582,12 @@ status = "disabled"; }; + sor { + compatible = "nvidia,tegra124-lvds"; + reg = <0x54540000 0x00040000>; + status = "disabled"; + }; + vic { compatible = "nvidia,tegra124-vic"; reg = <0x54340000 0x00040000>; -- cgit v1.2.3