Skip to content

Commit

Permalink
Merge tag 'exynos-dt-2' of git://git.kernel.org/pub/scm/linux/kernel/…
Browse files Browse the repository at this point in the history
…git/kgene/linux-samsung into next/dt

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>
  • Loading branch information
Arnd Bergmann committed Jun 20, 2013
2 parents 15f4b11 + 5f13269 commit 6f9543f
Show file tree
Hide file tree
Showing 9 changed files with 248 additions and 35 deletions.
44 changes: 42 additions & 2 deletions Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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");
/* ... */
}
22 changes: 22 additions & 0 deletions arch/arm/boot/dts/exynos4210-origen.dts
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
};
Expand Down Expand Up @@ -290,4 +291,25 @@
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>;
};
};
};
89 changes: 89 additions & 0 deletions arch/arm/boot/dts/exynos4210-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -330,6 +330,95 @@
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 {
Expand Down
3 changes: 3 additions & 0 deletions arch/arm/boot/dts/exynos5250-arndale.dts
Original file line number Diff line number Diff line change
Expand Up @@ -477,4 +477,7 @@
};
};

rtc {
status = "okay";
};
};
37 changes: 35 additions & 2 deletions arch/arm/boot/dts/exynos5250-smdk5250.dts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,30 @@
};
};

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>;
Expand All @@ -47,8 +71,17 @@
};

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>;
};
};

Expand Down
4 changes: 4 additions & 0 deletions arch/arm/boot/dts/exynos5250-snow.dts
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@
};
};

rtc {
status = "okay";
};

/*
* On Snow we've got SIP WiFi and so can keep drive strengths low to
* reduce EMI.
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/exynos5440-sd5v1.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
41 changes: 38 additions & 3 deletions arch/arm/boot/dts/exynos5440-ssdk5440.dts
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,46 @@
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 {
Expand Down
41 changes: 14 additions & 27 deletions arch/arm/boot/dts/exynos5440.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@

interrupt-parent = <&gic>;

aliases {
spi0 = &spi_0;
};

clock: clock-controller@0x160000 {
compatible = "samsung,exynos5440-clock";
reg = <0x160000 0x1000>;
Expand Down Expand Up @@ -83,8 +87,13 @@
interrupts = <0 57 0>;
operating-points = <
/* KHz uV */
1500000 1100000
1400000 1075000
1300000 1050000
1200000 1025000
1100000 1000000
1000000 975000
900000 950000
800000 925000
>;
};
Expand All @@ -105,14 +114,14 @@
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";
};
Expand Down Expand Up @@ -188,28 +197,6 @@
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 {
Expand Down

0 comments on commit 6f9543f

Please sign in to comment.