瀏覽代碼

Merge most of tag 'tags/exynos-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git into next/dt

From Kukjin Kim, these are device-tree updates for Exynos. Among the changes:
- add MIPI PHY node for exynos4
- update regulator for origen and exynos5250-arndale
- add support HDMI for exynos5250, exynos5420

* commit '93457b9cb980ffeeef020c3bcd99065c3807619b':
  ARM: dts: Add HDMI related I2C nodes for Arndale board
  ARM: dts: enable hdmi subsystem for exynos5420 smdk board
  ARM: dts: add dt nodes for hdmi subsystem for exynos5420
  ARM: dts: add i2c device nodes for Exynos5420
  ARM: dts: add clocks to hdmi dt node for exynos5250
  ARM: dts: add mixer clocks to mixer node for Exynos5250
  of/documentation: update with clock information for exynos hdmi subsystem
  ARM: dts: Disable Exynos5250 I2S controllers by default
  ARM: dts: Add reg property to regulator nodes in exynos5250-arndale
  ARM: dts: Add fixed voltage regulator to simple bus for origen
  ARM: dts: Add MIPI PHY node to exynos4.dtsi
Olof Johansson 11 年之前
父節點
當前提交
2de1a7a855

+ 13 - 1
Documentation/devicetree/bindings/video/exynos_hdmi.txt

@@ -12,7 +12,19 @@ Required properties:
 	a) phandle of the gpio controller node.
 	a) phandle of the gpio controller node.
 	b) pin number within the gpio controller.
 	b) pin number within the gpio controller.
 	c) optional flags and pull up/down.
 	c) optional flags and pull up/down.
-
+- clocks: list of clock IDs from SoC clock driver.
+	a) hdmi: Gate of HDMI IP bus clock.
+	b) sclk_hdmi: Gate of HDMI special clock.
+	c) sclk_pixel: Pixel special clock, one of the two possible inputs of
+		HDMI clock mux.
+	d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of
+		HDMI clock mux.
+	e) mout_hdmi: It is required by the driver to switch between the 2
+		parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable
+		after configuration, parent is set to sclk_hdmiphy else
+		sclk_pixel.
+- clock-names: aliases as per driver requirements for above clock IDs:
+	"hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy" and "mout_hdmi".
 Example:
 Example:
 
 
 	hdmi {
 	hdmi {

+ 4 - 0
Documentation/devicetree/bindings/video/exynos_mixer.txt

@@ -10,6 +10,10 @@ Required properties:
 - reg: physical base address of the mixer and length of memory mapped
 - reg: physical base address of the mixer and length of memory mapped
 	region.
 	region.
 - interrupts: interrupt number to the cpu.
 - interrupts: interrupt number to the cpu.
+- clocks: list of clock IDs from SoC clock driver.
+	a) mixer: Gate of Mixer IP bus clock.
+	b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of
+               mixer mux.
 
 
 Example:
 Example:
 
 

+ 10 - 0
arch/arm/boot/dts/exynos4.dtsi

@@ -49,6 +49,12 @@
 		reg = <0x10000000 0x100>;
 		reg = <0x10000000 0x100>;
 	};
 	};
 
 
+	mipi_phy: video-phy@10020710 {
+		compatible = "samsung,s5pv210-mipi-video-phy";
+		reg = <0x10020710 8>;
+		#phy-cells = <1>;
+	};
+
 	pd_mfc: mfc-power-domain@10023C40 {
 	pd_mfc: mfc-power-domain@10023C40 {
 		compatible = "samsung,exynos4210-pd";
 		compatible = "samsung,exynos4210-pd";
 		reg = <0x10023C40 0x20>;
 		reg = <0x10023C40 0x20>;
@@ -161,6 +167,8 @@
 			clock-names = "csis", "sclk_csis";
 			clock-names = "csis", "sclk_csis";
 			bus-width = <4>;
 			bus-width = <4>;
 			samsung,power-domain = <&pd_cam>;
 			samsung,power-domain = <&pd_cam>;
+			phys = <&mipi_phy 0>;
+			phy-names = "csis";
 			status = "disabled";
 			status = "disabled";
 			#address-cells = <1>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 			#size-cells = <0>;
@@ -174,6 +182,8 @@
 			clock-names = "csis", "sclk_csis";
 			clock-names = "csis", "sclk_csis";
 			bus-width = <2>;
 			bus-width = <2>;
 			samsung,power-domain = <&pd_cam>;
 			samsung,power-domain = <&pd_cam>;
+			phys = <&mipi_phy 2>;
+			phy-names = "csis";
 			status = "disabled";
 			status = "disabled";
 			#address-cells = <1>;
 			#address-cells = <1>;
 			#size-cells = <0>;
 			#size-cells = <0>;

+ 14 - 7
arch/arm/boot/dts/exynos4210-origen.dts

@@ -32,13 +32,20 @@
 		bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
 		bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
 	};
 	};
 
 
-	mmc_reg: voltage-regulator {
-	        compatible = "regulator-fixed";
-		regulator-name = "VMEM_VDD_2.8V";
-		regulator-min-microvolt = <2800000>;
-		regulator-max-microvolt = <2800000>;
-		gpio = <&gpx1 1 0>;
-		enable-active-high;
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mmc_reg: regulator@0 {
+			compatible = "regulator-fixed";
+			reg = <0>;
+			regulator-name = "VMEM_VDD_2.8V";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
+			gpio = <&gpx1 1 0>;
+			enable-active-high;
+		};
 	};
 	};
 
 
 	tmu@100C0000 {
 	tmu@100C0000 {

+ 14 - 7
arch/arm/boot/dts/exynos4412-origen.dts

@@ -32,13 +32,20 @@
 		reg = <0x0203F000 0x1000>;
 		reg = <0x0203F000 0x1000>;
 	};
 	};
 
 
-	mmc_reg: voltage-regulator {
-		compatible = "regulator-fixed";
-		regulator-name = "VMEM_VDD_2.8V";
-		regulator-min-microvolt = <2800000>;
-		regulator-max-microvolt = <2800000>;
-		gpio = <&gpx1 1 0>;
-		enable-active-high;
+	regulators {
+		compatible = "simple-bus";
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		mmc_reg: regulator@0 {
+			compatible = "regulator-fixed";
+			reg = <0>;
+			regulator-name = "VMEM_VDD_2.8V";
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
+			gpio = <&gpx1 1 0>;
+			enable-active-high;
+		};
 	};
 	};
 
 
 	pinctrl@11000000 {
 	pinctrl@11000000 {

+ 29 - 4
arch/arm/boot/dts/exynos5250-arndale.dts

@@ -324,7 +324,14 @@
 	};
 	};
 
 
 	i2c@12C80000 {
 	i2c@12C80000 {
-		status = "disabled";
+		samsung,i2c-sda-delay = <100>;
+		samsung,i2c-max-bus-freq = <66000>;
+		samsung,i2c-slave-addr = <0x50>;
+
+		hdmiddc@50 {
+			compatible = "samsung,exynos4210-hdmiddc";
+			reg = <0x50>;
+		};
 	};
 	};
 
 
 	i2c@12C90000 {
 	i2c@12C90000 {
@@ -362,6 +369,17 @@
 		status = "disabled";
 		status = "disabled";
 	};
 	};
 
 
+	i2c@12CE0000 {
+		samsung,i2c-sda-delay = <100>;
+		samsung,i2c-max-bus-freq = <66000>;
+		samsung,i2c-slave-addr = <0x38>;
+
+		hdmiphy@38 {
+			compatible = "samsung,exynos4212-hdmiphy";
+			reg = <0x38>;
+		};
+	};
+
 	i2c@121D0000 {
 	i2c@121D0000 {
 		status = "disabled";
 		status = "disabled";
 	};
 	};
@@ -412,6 +430,10 @@
 		status = "disabled";
 		status = "disabled";
 	};
 	};
 
 
+	i2s0: i2s@03830000 {
+		status = "okay";
+	};
+
 	spi_0: spi@12d20000 {
 	spi_0: spi@12d20000 {
 		status = "disabled";
 		status = "disabled";
 	};
 	};
@@ -482,13 +504,15 @@
 		#address-cells = <1>;
 		#address-cells = <1>;
 		#size-cells = <0>;
 		#size-cells = <0>;
 
 
-		main_dc_reg: fixedregulator@1 {
+		main_dc_reg: regulator@0 {
 			compatible = "regulator-fixed";
 			compatible = "regulator-fixed";
+			reg = <0>;
 			regulator-name = "MAIN_DC";
 			regulator-name = "MAIN_DC";
 		};
 		};
 
 
-		mmc_reg: voltage-regulator {
+		mmc_reg: regulator@1 {
 			compatible = "regulator-fixed";
 			compatible = "regulator-fixed";
+			reg = <1>;
 			regulator-name = "VDD_33ON_2.8V";
 			regulator-name = "VDD_33ON_2.8V";
 			regulator-min-microvolt = <2800000>;
 			regulator-min-microvolt = <2800000>;
 			regulator-max-microvolt = <2800000>;
 			regulator-max-microvolt = <2800000>;
@@ -496,8 +520,9 @@
 			enable-active-high;
 			enable-active-high;
 		};
 		};
 
 
-		reg_hdmi_en: fixedregulator@0 {
+		reg_hdmi_en: regulator@2 {
 			compatible = "regulator-fixed";
 			compatible = "regulator-fixed";
+			reg = <2>;
 			regulator-name = "hdmi-en";
 			regulator-name = "hdmi-en";
 		};
 		};
 	};
 	};

+ 0 - 8
arch/arm/boot/dts/exynos5250-smdk5250.dts

@@ -231,14 +231,6 @@
 		status = "okay";
 		status = "okay";
 	};
 	};
 
 
-	i2s1: i2s@12D60000 {
-		status = "disabled";
-	};
-
-	i2s2: i2s@12D70000 {
-		status = "disabled";
-	};
-
 	sound {
 	sound {
 		compatible = "samsung,smdk-wm8994";
 		compatible = "samsung,smdk-wm8994";
 
 

+ 8 - 3
arch/arm/boot/dts/exynos5250.dtsi

@@ -422,6 +422,7 @@
 
 
 	i2s0: i2s@03830000 {
 	i2s0: i2s@03830000 {
 		compatible = "samsung,s5pv210-i2s";
 		compatible = "samsung,s5pv210-i2s";
+		status = "disabled";
 		reg = <0x03830000 0x100>;
 		reg = <0x03830000 0x100>;
 		dmas = <&pdma0 10
 		dmas = <&pdma0 10
 			&pdma0 9
 			&pdma0 9
@@ -438,6 +439,7 @@
 
 
 	i2s1: i2s@12D60000 {
 	i2s1: i2s@12D60000 {
 		compatible = "samsung,s3c6410-i2s";
 		compatible = "samsung,s3c6410-i2s";
+		status = "disabled";
 		reg = <0x12D60000 0x100>;
 		reg = <0x12D60000 0x100>;
 		dmas = <&pdma1 12
 		dmas = <&pdma1 12
 			&pdma1 11>;
 			&pdma1 11>;
@@ -450,6 +452,7 @@
 
 
 	i2s2: i2s@12D70000 {
 	i2s2: i2s@12D70000 {
 		compatible = "samsung,s3c6410-i2s";
 		compatible = "samsung,s3c6410-i2s";
+		status = "disabled";
 		reg = <0x12D70000 0x100>;
 		reg = <0x12D70000 0x100>;
 		dmas = <&pdma0 12
 		dmas = <&pdma0 12
 			&pdma0 11>;
 			&pdma0 11>;
@@ -615,16 +618,18 @@
 		compatible = "samsung,exynos4212-hdmi";
 		compatible = "samsung,exynos4212-hdmi";
 		reg = <0x14530000 0x70000>;
 		reg = <0x14530000 0x70000>;
 		interrupts = <0 95 0>;
 		interrupts = <0 95 0>;
-		clocks = <&clock 333>, <&clock 136>, <&clock 137>,
-				<&clock 333>, <&clock 333>;
+		clocks = <&clock 344>, <&clock 136>, <&clock 137>,
+				<&clock 159>, <&clock 1024>;
 		clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
 		clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
-				"sclk_hdmiphy", "hdmiphy";
+				"sclk_hdmiphy", "mout_hdmi";
 	};
 	};
 
 
 	mixer {
 	mixer {
 		compatible = "samsung,exynos5250-mixer";
 		compatible = "samsung,exynos5250-mixer";
 		reg = <0x14450000 0x10000>;
 		reg = <0x14450000 0x10000>;
 		interrupts = <0 94 0>;
 		interrupts = <0 94 0>;
+		clocks = <&clock 343>, <&clock 136>;
+		clock-names = "mixer", "sclk_hdmi";
 	};
 	};
 
 
 	dp_phy: video-phy@10040720 {
 	dp_phy: video-phy@10040720 {

+ 26 - 0
arch/arm/boot/dts/exynos5420-smdk5420.dts

@@ -61,4 +61,30 @@
 		};
 		};
 	};
 	};
 
 
+	pinctrl@13400000 {
+		hdmi_hpd_irq: hdmi-hpd-irq {
+			samsung,pins = "gpx3-7";
+			samsung,pin-function = <0>;
+			samsung,pin-pud = <1>;
+			samsung,pin-drv = <0>;
+		};
+	};
+
+	hdmi@14530000 {
+		status = "okay";
+		hpd-gpio = <&gpx3 7 0>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&hdmi_hpd_irq>;
+	};
+
+	i2c_2: i2c@12C80000 {
+		samsung,i2c-sda-delay = <100>;
+		samsung,i2c-max-bus-freq = <66000>;
+		status = "okay";
+
+		hdmiddc@50 {
+			compatible = "samsung,exynos4210-hdmiddc";
+			reg = <0x50>;
+		};
+	};
 };
 };

+ 75 - 0
arch/arm/boot/dts/exynos5420.dtsi

@@ -27,6 +27,10 @@
 		pinctrl2 = &pinctrl_2;
 		pinctrl2 = &pinctrl_2;
 		pinctrl3 = &pinctrl_3;
 		pinctrl3 = &pinctrl_3;
 		pinctrl4 = &pinctrl_4;
 		pinctrl4 = &pinctrl_4;
+		i2c0 = &i2c_0;
+		i2c1 = &i2c_1;
+		i2c2 = &i2c_2;
+		i2c3 = &i2c_3;
 	};
 	};
 
 
 	cpus {
 	cpus {
@@ -235,4 +239,75 @@
 		io-channel-ranges;
 		io-channel-ranges;
 		status = "disabled";
 		status = "disabled";
 	};
 	};
+
+	i2c_0: i2c@12C60000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C60000 0x100>;
+		interrupts = <0 56 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		clocks = <&clock 261>;
+		clock-names = "i2c";
+		pinctrl-names = "default";
+		pinctrl-0 = <&i2c0_bus>;
+		status = "disabled";
+	};
+
+	i2c_1: i2c@12C70000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C70000 0x100>;
+		interrupts = <0 57 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		clocks = <&clock 262>;
+		clock-names = "i2c";
+		pinctrl-names = "default";
+		pinctrl-0 = <&i2c1_bus>;
+		status = "disabled";
+	};
+
+	i2c_2: i2c@12C80000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C80000 0x100>;
+		interrupts = <0 58 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		clocks = <&clock 263>;
+		clock-names = "i2c";
+		pinctrl-names = "default";
+		pinctrl-0 = <&i2c2_bus>;
+		status = "disabled";
+	};
+
+	i2c_3: i2c@12C90000 {
+		compatible = "samsung,s3c2440-i2c";
+		reg = <0x12C90000 0x100>;
+		interrupts = <0 59 0>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+		clocks = <&clock 264>;
+		clock-names = "i2c";
+		pinctrl-names = "default";
+		pinctrl-0 = <&i2c3_bus>;
+		status = "disabled";
+	};
+
+	hdmi@14530000 {
+		compatible = "samsung,exynos4212-hdmi";
+		reg = <0x14530000 0x70000>;
+		interrupts = <0 95 0>;
+		clocks = <&clock 413>, <&clock 143>, <&clock 768>,
+			<&clock 158>, <&clock 640>;
+		clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
+			"sclk_hdmiphy", "mout_hdmi";
+		status = "disabled";
+	};
+
+	mixer@14450000 {
+		compatible = "samsung,exynos5420-mixer";
+		reg = <0x14450000 0x10000>;
+		interrupts = <0 94 0>;
+		clocks = <&clock 431>, <&clock 143>;
+		clock-names = "mixer", "sclk_hdmi";
+	};
 };
 };