Merge tag 'exynos-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux...
authorArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 20:17:38 +0000 (22:17 +0200)
committerArnd Bergmann <arnd@arndb.de>
Thu, 20 Jun 2013 20:17:38 +0000 (22:17 +0200)
From Kukjin Kim:

2nd exynos dt update based on tags/exynos-dt-1
- enable RTC on exynos5250 snow and Arndale boards
- add support LCD and PWM for exynos4210 Origen board
- update bootargs to support 8GiB for exynos5440 SSDK5440 and SD5v1 boards
- enable spi and add opp level for exynos5440
- add example doc for samsung-pinctrl dt bindings

* tag 'exynos-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: Set BUCK7 as always on for Origen board
  ARM: dts: Add FIMD node to Origen4210 board
  ARM: dts: Add LCD related pinctrl entries for exynos4210
  ARM: dts: Add PWM related pinctrl entries for exynos4210
  Documentation: Add examples to samsung-pinctrl device tree bindings documentation
  ARM: dts: Enable RTC node for exynos5250-snow
  ARM: dts: Enable RTC node for Arndale
  ARM: dts: Removing pdma for exynos5440
  ARM: dts: update bootargs to support 8GiB for SSDK5440 and SD5v1
  ARM: dts: Add more opp levels in exynos5440
  ARM: dts: Add wm8994 regulator support on smdk5250
  ARM: dts: enable spi for EXYNOS5440 SOC

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
arch/arm/boot/dts/exynos4210-origen.dts
arch/arm/boot/dts/exynos4210-pinctrl.dtsi
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250-snow.dts
arch/arm/boot/dts/exynos5440-sd5v1.dts
arch/arm/boot/dts/exynos5440-ssdk5440.dts
arch/arm/boot/dts/exynos5440.dtsi

index c70fca146e91d087a81fb05ebaafd0e0fa20d227..e15cfc4bb39ea64c8ecd0edd1cc42a614bc61e4e 100644 (file)
@@ -21,8 +21,18 @@ Required Properties:
 
   - gpio-controller: identifies the node as a gpio controller and pin bank.
   - #gpio-cells: number of cells in GPIO specifier. Since the generic GPIO
-    binding is used, the amount of cells must be specified as 2. See generic
-    GPIO binding documentation for description of particular cells.
+    binding is used, the amount of cells must be specified as 2. See the below
+    mentioned gpio binding representation for description of particular cells.
+
+       Eg: <&gpx2 6 0>
+       <[phandle of the gpio controller node]
+       [pin number within the gpio controller]
+       [flags]>
+
+       Values for gpio specifier:
+       - Pin number: is a value between 0 to 7.
+       - Flags: 0 - Active High
+                1 - Active Low
 
 - Pin mux/config groups as child nodes: The pin mux (selecting pin function
   mode) and pin config (pull up/down, driver strength) settings are represented
@@ -266,3 +276,33 @@ Example 4: Set up the default pin state for uart controller.
 
                pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
        }
+
+Example 5: A display port client node that supports 'default' pinctrl state
+          and gpio binding.
+
+       display-port-controller {
+               /* ... */
+
+               samsung,hpd-gpio = <&gpx2 6 0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&dp_hpd>;
+       };
+
+Example 6: Request the gpio for display port controller
+
+       static int exynos_dp_probe(struct platform_device *pdev)
+       {
+               int hpd_gpio, ret;
+               struct device *dev = &pdev->dev;
+               struct device_node *dp_node = dev->of_node;
+
+               /* ... */
+
+               hpd_gpio = of_get_named_gpio(dp_node, "samsung,hpd-gpio", 0);
+
+               /* ... */
+
+               ret = devm_gpio_request_one(&pdev->dev, hpd_gpio, GPIOF_IN,
+                                           "hpd_gpio");
+               /* ... */
+       }
index bcf80794caab950e1ca653e0bc08e5d781c864ba..08609b8bdaf1e069d4344f1f9fe43318bc3bfb6d 100644 (file)
                                        regulator-min-microvolt = <3300000>;
                                        regulator-max-microvolt = <3300000>;
                                        regulator-boot-on;
+                                       regulator-always-on;
                                };
                        };
                };
                        clock-frequency = <24000000>;
                };
        };
+
+       fimd@11c00000 {
+               pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+
+       display-timings {
+               native-mode = <&timing0>;
+               timing0: timing {
+                       clock-frequency = <50000>;
+                       hactive = <1024>;
+                       vactive = <600>;
+                       hfront-porch = <64>;
+                       hback-porch = <16>;
+                       hsync-len = <48>;
+                       vback-porch = <64>;
+                       vfront-porch = <16>;
+                       vsync-len = <3>;
+               };
+       };
 };
index 55a2efb763d1c014fb5d06804abea8bc67fa382d..553bceae8967cd8bcb211693b1656f6ebbc5f3ca 100644 (file)
                        samsung,pin-pud = <3>;
                        samsung,pin-drv = <0>;
                };
+
+               pwm0_out: pwm0-out {
+                       samsung,pins = "gpd0-0";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm1_out: pwm1-out {
+                       samsung,pins = "gpd0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm2_out: pwm2-out {
+                       samsung,pins = "gpd0-2";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               pwm3_out: pwm3-out {
+                       samsung,pins = "gpd0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_ctrl: lcd-ctrl {
+                       samsung,pins = "gpd0-0", "gpd0-1";
+                       samsung,pin-function = <3>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_sync: lcd-sync {
+                       samsung,pins = "gpf0-0", "gpf0-1";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_en: lcd-en {
+                       samsung,pins = "gpe3-4";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_clk: lcd-clk {
+                       samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data16: lcd-data-width16 {
+                       samsung,pins = "gpf0-7", "gpf1-0", "gpf1-1", "gpf1-2",
+                                       "gpf1-3", "gpf1-6", "gpf1-7", "gpf2-0",
+                                       "gpf2-1", "gpf2-2", "gpf2-3", "gpf2-7",
+                                       "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data18: lcd-data-width18 {
+                       samsung,pins = "gpf0-6", "gpf0-7", "gpf1-0", "gpf1-1",
+                                       "gpf1-2", "gpf1-3", "gpf1-6", "gpf1-7",
+                                       "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
+                                       "gpf2-6", "gpf2-7", "gpf3-0", "gpf3-1",
+                                       "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
+
+               lcd_data24: lcd-data-width24 {
+                       samsung,pins = "gpf0-4", "gpf0-5", "gpf0-6", "gpf0-7",
+                                       "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3",
+                                       "gpf1-4", "gpf1-5", "gpf1-6", "gpf1-7",
+                                       "gpf2-0", "gpf2-1", "gpf2-2", "gpf2-3",
+                                       "gpf2-4", "gpf2-5", "gpf2-6", "gpf2-7",
+                                       "gpf3-0", "gpf3-1", "gpf3-2", "gpf3-3";
+                       samsung,pin-function = <2>;
+                       samsung,pin-pud = <0>;
+                       samsung,pin-drv = <0>;
+               };
        };
 
        pinctrl@11000000 {
index c371f7c1e912dd31187d04e555e05b683c97bc2d..c6db281a34307cbba22237fa658599c8c53af7dd 100644 (file)
                };
        };
 
+       rtc {
+               status = "okay";
+       };
 };
index d53ea34c4fa15fe3c3221062ee8af2407c482ed7..1e21200b6d85aaf020720e9ca22b78cab1fe7b29 100644 (file)
                };
        };
 
+       vdd:fixed-regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-supply";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+       };
+
+       dbvdd:fixed-regulator@1 {
+               compatible = "regulator-fixed";
+               regulator-name = "dbvdd-supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       spkvdd:fixed-regulator@2 {
+               compatible = "regulator-fixed";
+               regulator-name = "spkvdd-supply";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
        i2c@12C70000 {
                samsung,i2c-sda-delay = <100>;
                samsung,i2c-max-bus-freq = <20000>;
                };
 
                wm8994: wm8994@1a {
-                        compatible = "wlf,wm8994";
-                        reg = <0x1a>;
+                       compatible = "wlf,wm8994";
+                       reg = <0x1a>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       AVDD2-supply = <&vdd>;
+                       CPVDD-supply = <&vdd>;
+                       DBVDD-supply = <&dbvdd>;
+                       SPKVDD1-supply = <&spkvdd>;
+                       SPKVDD2-supply = <&spkvdd>;
                };
        };
 
index d449feb7e1438256499c192fb687fdc110e930e0..05244f150dd94ed1d97604196d201eaecea96561 100644 (file)
                };
        };
 
+       rtc {
+               status = "okay";
+       };
+
        /*
         * On Snow we've got SIP WiFi and so can keep drive strengths low to
         * reduce EMI.
index ef747b52b67411ecc23c613148fac985be6a2df6..f722a0263ac8b41ae4a8e1ba35312328a1f78e8a 100644 (file)
@@ -17,7 +17,7 @@
        compatible = "samsung,sd5v1", "samsung,exynos5440";
 
        chosen {
-               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200";
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
        fixed-rate-clocks {
index d55042beb5c55f29739a5b8082a6bbed53e89d80..3aa65bb280206810cae2a1d661d10d1d0e1b100b 100644 (file)
        compatible = "samsung,ssdk5440", "samsung,exynos5440";
 
        chosen {
-               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200";
+               bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 mem=6144M@0x100000000 console=ttySAC0,115200";
        };
 
-       spi {
-               status = "disabled";
+       spi_0: spi@D0000 {
+
+               flash: w25q128@0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "winbond,w25q128";
+                       spi-max-frequency = <15625000>;
+                       reg = <0>;
+                       controller-data {
+                               samsung,spi-feedback-delay = <0>;
+                       };
+
+                       partition@00000 {
+                               label = "BootLoader";
+                               reg = <0x60000 0x80000>;
+                               read-only;
+                       };
+
+                       partition@e0000 {
+                               label = "Recovery-Kernel";
+                               reg = <0xe0000 0x300000>;
+                               read-only;
+                       };
+
+                       partition@3e0000 {
+                               label = "CRAM-FS";
+                               reg = <0x3e0000 0x700000>;
+                               read-only;
+                       };
+
+                       partition@ae0000 {
+                               label = "User-Data";
+                               reg = <0xae0000 0x520000>;
+                       };
+
+               };
+
        };
 
        fixed-rate-clocks {
index a8be7e10b458fa97e723ea38ff1c38f5ba989f51..9589ed9282f14cd07dff2173d3f79092a3b00645 100644 (file)
 
        interrupt-parent = <&gic>;
 
+       aliases {
+               spi0 = &spi_0;
+       };
+
        clock: clock-controller@0x160000 {
                compatible = "samsung,exynos5440-clock";
                reg = <0x160000 0x1000>;
                interrupts = <0 57 0>;
                operating-points = <
                                /* KHz    uV */
+                               1500000 1100000
+                               1400000 1075000
+                               1300000 1050000
                                1200000 1025000
+                               1100000 1000000
                                1000000 975000
+                               900000  950000
                                800000  925000
                >;
        };
                clock-names = "uart", "clk_uart_baud0";
        };
 
-       spi {
-               compatible = "samsung,exynos4210-spi";
-               reg = <0xD0000 0x1000>;
+       spi_0: spi@D0000 {
+               compatible = "samsung,exynos5440-spi";
+               reg = <0xD0000 0x100>;
                interrupts = <0 4 0>;
-               tx-dma-channel = <&pdma0 5>; /* preliminary */
-               rx-dma-channel = <&pdma0 4>; /* preliminary */
                #address-cells = <1>;
                #size-cells = <0>;
+               samsung,spi-src-clk = <0>;
+               num-cs = <1>;
                clocks = <&clock 21>, <&clock 16>;
                clock-names = "spi", "spi_busclk0";
        };
                compatible = "arm,amba-bus";
                interrupt-parent = <&gic>;
                ranges;
-
-               pdma0: pdma@00121000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x121000 0x1000>;
-                       interrupts = <0 46 0>;
-                       clocks = <&clock 8>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
-               };
-
-               pdma1: pdma@00120000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x120000 0x1000>;
-                       interrupts = <0 47 0>;
-                       clocks = <&clock 8>;
-                       clock-names = "apb_pclk";
-                       #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
-               };
        };
 
        rtc {