projects/linux·commit bef4a0ab

Merge tag 'clk-for-linus-3.12' of git://git.linaro.org/people/mturquette/linux

bef4a0ab · Linus Torvalds <[email protected]> · 2013-09-09 15:49:04 -07:00

Pull clock framework changes from Michael Turquette:
 "The common clk framework changes for 3.12 are dominated by clock
  driver patches, both new drivers and fixes to existing.  A high
  percentage of these are for Samsung platforms like Exynos.  Core
  framework fixes and some new features like automagical clock
  re-parenting round out the patches"

* tag 'clk-for-linus-3.12' of git://git.linaro.org/people/mturquette/linux: (102 commits)
  clk: only call get_parent if there is one
  clk: samsung: exynos5250: Simplify registration of PLL rate tables
  clk: samsung: exynos4: Register PLL rate tables for Exynos4x12
  clk: samsung: exynos4: Register PLL rate tables for Exynos4210
  clk: samsung: exynos4: Reorder registration of mout_vpllsrc
  clk: samsung: pll: Add support for rate configuration of PLL46xx
  clk: samsung: pll: Use new registration method for PLL46xx
  clk: samsung: pll: Add support for rate configuration of PLL45xx
  clk: samsung: pll: Use new registration method for PLL45xx
  clk: samsung: exynos4: Rename exynos4_plls to exynos4x12_plls
  clk: samsung: exynos4: Remove checks for DT node
  clk: samsung: exynos4: Remove unused static clkdev aliases
  clk: samsung: Modify _get_rate() helper to use __clk_lookup()
  clk: samsung: exynos4: Use separate aliases for cpufreq related clocks
  clocksource: samsung_pwm_timer: Get clock from device tree
  ARM: dts: exynos4: Specify PWM clocks in PWM node
  pwm: samsung: Update DT bindings documentation to cover clocks
  clk: Move symbol export to proper location
  clk: fix new_parent dereference before null check
  clk: wm831x: Initialise wm831x pointer on init
  ...
Commit
bef4a0ab984662d4ccd68d431a7c4ef3daebcb43
Parents
7eb69529 · 12d29886

Merge commit. Changes below are compared with the first parent: 7eb69529.

Changes

64 files changed · +3592 −1098

FileStatusAddDelContent
Documentation/clk.txtmodified+26−20View file
Documentation/devicetree/bindings/clock/exynos4-clock.txtmodified+1−0View file
Documentation/devicetree/bindings/clock/exynos5250-clock.txtmodified+13−1View file
Documentation/devicetree/bindings/clock/exynos5420-clock.txtmodified+12−0View file
Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txtadded+77−0View file
Documentation/devicetree/bindings/clock/sunxi.txtmodified+12−0View file
Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txtadded+75−0View file
Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txtadded+83−0View file
Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txtadded+98−0View file
Documentation/devicetree/bindings/gpu/samsung-g2d.txtmodified+5−2View file
Documentation/devicetree/bindings/pwm/pwm-samsung.txtmodified+12−0View file
arch/arm/boot/dts/exynos4.dtsimodified+2−0View file
arch/arm/mach-imx/clk.hmodified+3−2View file
drivers/clk/Kconfigmodified+7−1View file
drivers/clk/Makefilemodified+1−0View file
drivers/clk/clk-bcm2835.cmodified+1−1View file
drivers/clk/clk-divider.cmodified+5−3View file
drivers/clk/clk-fixed-factor.cmodified+2−0View file
drivers/clk/clk-fixed-rate.cmodified+1−0View file
drivers/clk/clk-gate.cmodified+4−3View file
drivers/clk/clk-mux.cmodified+15−4View file
drivers/clk/clk-nomadik.cmodified+2−2View file
drivers/clk/clk-prima2.cmodified+1−1View file
drivers/clk/clk-s2mps11.cadded+273−0View file
drivers/clk/clk-u300.cmodified+2−2View file
drivers/clk/clk-wm831x.cmodified+9−7View file
drivers/clk/clk.cmodified+282−168View file
drivers/clk/mmp/clk-mmp2.cmodified+26−13View file
drivers/clk/mmp/clk-pxa168.cmodified+26−14View file
drivers/clk/mmp/clk-pxa910.cmodified+20−11View file
drivers/clk/mvebu/armada-370.cmodified+7−7View file
drivers/clk/mvebu/armada-xp.cmodified+6−6View file
drivers/clk/mvebu/clk-cpu.cmodified+3−1View file
drivers/clk/mvebu/common.cmodified+12−6View file
drivers/clk/mvebu/dove.cmodified+6−6View file
drivers/clk/mvebu/kirkwood.cmodified+7−7View file
drivers/clk/mxs/clk-imx23.cmodified+1−0View file
drivers/clk/mxs/clk.hmodified+2−2View file
drivers/clk/samsung/Makefilemodified+3−0View file
drivers/clk/samsung/clk-exynos-audss.cmodified+5−3View file
drivers/clk/samsung/clk-exynos4.cmodified+355−250View file
drivers/clk/samsung/clk-exynos5250.cmodified+96−33View file
drivers/clk/samsung/clk-exynos5420.cmodified+80−43View file
drivers/clk/samsung/clk-exynos5440.cmodified+9−9View file
drivers/clk/samsung/clk-pll.cmodified+553−148View file
drivers/clk/samsung/clk-pll.hmodified+70−15View file
drivers/clk/samsung/clk-s3c64xx.cadded+473−0View file
drivers/clk/samsung/clk.cmodified+4−6View file
drivers/clk/samsung/clk.hmodified+54−1View file
drivers/clk/spear/spear1310_clock.cmodified+93−86View file
drivers/clk/spear/spear1340_clock.cmodified+53−44View file
drivers/clk/spear/spear3xx_clock.cmodified+36−21View file
drivers/clk/spear/spear6xx_clock.cmodified+19−16View file
drivers/clk/sunxi/clk-sunxi.cmodified+211−59View file
drivers/clk/tegra/clk-tegra114.cmodified+25−13View file
drivers/clk/tegra/clk-tegra20.cmodified+5−3View file
drivers/clk/tegra/clk-tegra30.cmodified+24−13View file
drivers/clk/versatile/clk-vexpress.cmodified+2−2View file
drivers/clk/zynq/clkc.cmodified+48−34View file
drivers/clk/zynq/pll.cmodified+14−5View file
drivers/clocksource/samsung_pwm_timer.cmodified+8−4View file
include/dt-bindings/clock/samsung,s3c64xx-clock.hadded+178−0View file
include/linux/clk-private.hmodified+3−0View file
include/linux/clk-provider.hmodified+31−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/clk.txt

View file
diff --git a/Documentation/clk.txt b/Documentation/clk.txt
index 6f68ba0..3aeb5c4 100644
--- a/Documentation/clk.txt
+++ b/Documentation/clk.txt
@@ -70,6 +70,10 @@ the operations defined in clk.h:
unsigned long parent_rate);
long (*round_rate)(struct clk_hw *hw, unsigned long,
unsigned long *);
+ long (*determine_rate)(struct clk_hw *hw,
+ unsigned long rate,
+ unsigned long *best_parent_rate,
+ struct clk **best_parent_clk);
int (*set_parent)(struct clk_hw *hw, u8 index);
u8 (*get_parent)(struct clk_hw *hw);
int (*set_rate)(struct clk_hw *hw, unsigned long);
@@ -179,26 +183,28 @@ mandatory, a cell marked as "n" implies that either including that
callback is invalid or otherwise unnecessary. Empty cells are either
optional or must be evaluated on a case-by-case basis.
- clock hardware characteristics
- -----------------------------------------------------------
- | gate | change rate | single parent | multiplexer | root |
- |------|-------------|---------------|-------------|------|
-.prepare | | | | | |
-.unprepare | | | | | |
- | | | | | |
-.enable | y | | | | |
-.disable | y | | | | |
-.is_enabled | y | | | | |
- | | | | | |
-.recalc_rate | | y | | | |
-.round_rate | | y | | | |
-.set_rate | | y | | | |
- | | | | | |
-.set_parent | | | n | y | n |
-.get_parent | | | n | y | n |
- | | | | | |
-.init | | | | | |
- -----------------------------------------------------------
+ clock hardware characteristics
+ -----------------------------------------------------------
+ | gate | change rate | single parent | multiplexer | root |
+ |------|-------------|---------------|-------------|------|
+.prepare | | | | | |
+.unprepare | | | | | |
+ | | | | | |
+.enable | y | | | | |
+.disable | y | | | | |
+.is_enabled | y | | | | |
+ | | | | | |
+.recalc_rate | | y | | | |
+.round_rate | | y [1] | | | |
+.determine_rate | | y [1] | | | |
+.set_rate | | y | | | |
+ | | | | | |
+.set_parent | | | n | y | n |
+.get_parent | | | n | y | n |
+ | | | | | |
+.init | | | | | |
+ -----------------------------------------------------------
+[1] either one of round_rate or determine_rate is required.
Finally, register your clock at run-time with a hardware-specific
registration function. This function simply populates struct clk_foo's

Documentation/devicetree/bindings/clock/exynos4-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/exynos4-clock.txt b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
index 14d5c2a..c6bf8a6 100644
--- a/Documentation/devicetree/bindings/clock/exynos4-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos4-clock.txt
@@ -236,6 +236,7 @@ Exynos4 SoC and this is specified where applicable.
spi0_isp_sclk 380 Exynos4x12
spi1_isp_sclk 381 Exynos4x12
uart_isp_sclk 382 Exynos4x12
+ tmu_apbif 383
[Mux Clocks]

Documentation/devicetree/bindings/clock/exynos5250-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
index 781a627..24765c1 100644
--- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
@@ -59,6 +59,9 @@ clock which they consume.
sclk_spi0 154
sclk_spi1 155
sclk_spi2 156
+ div_i2s1 157
+ div_i2s2 158
+ sclk_hdmiphy 159
[Peripheral Clock Gates]
@@ -154,7 +157,16 @@ clock which they consume.
dsim0 341
dp 342
mixer 343
- hdmi 345
+ hdmi 344
+ g2d 345
+
+
+ [Clock Muxes]
+
+ Clock ID
+ ----------------------------
+ mout_hdmi 1024
+
Example 1: An example of a clock controller node is listed below.

Documentation/devicetree/bindings/clock/exynos5420-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
index 9bcc4b1..32aa34e 100644
--- a/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
+++ b/Documentation/devicetree/bindings/clock/exynos5420-clock.txt
@@ -59,6 +59,7 @@ clock which they consume.
sclk_pwm 155
sclk_gscl_wa 156
sclk_gscl_wb 157
+ sclk_hdmiphy 158
[Peripheral Clock Gates]
@@ -179,6 +180,17 @@ clock which they consume.
fimc_lite3 495
aclk_g3d 500
g3d 501
+ smmu_mixer 502
+
+ Mux ID
+ ----------------------------
+
+ mout_hdmi 640
+
+ Divider ID
+ ----------------------------
+
+ dout_pixel 768
Example 1: An example of a clock controller node is listed below.

Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt
new file mode 100644
index 0000000..fa171dc
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/samsung,s3c64xx-clock.txt
@@ -0,0 +1,77 @@
+* Samsung S3C64xx Clock Controller
+
+The S3C64xx clock controller generates and supplies clock to various controllers
+within the SoC. The clock binding described here is applicable to all SoCs in
+the S3C64xx family.
+
+Required Properties:
+
+- compatible: should be one of the following.
+ - "samsung,s3c6400-clock" - controller compatible with S3C6400 SoC.
+ - "samsung,s3c6410-clock" - controller compatible with S3C6410 SoC.
+
+- reg: physical base address of the controller and length of memory mapped
+ region.
+
+- #clock-cells: should be 1.
+
+Each clock is assigned an identifier and client nodes can use this identifier
+to specify the clock which they consume. Some of the clocks are available only
+on a particular S3C64xx SoC and this is specified where applicable.
+
+All available clocks are defined as preprocessor macros in
+dt-bindings/clock/samsung,s3c64xx-clock.h header and can be used in device
+tree sources.
+
+External clocks:
+
+There are several clocks that are generated outside the SoC. It is expected
+that they are defined using standard clock bindings with following
+clock-output-names:
+ - "fin_pll" - PLL input clock (xtal/extclk) - required,
+ - "xusbxti" - USB xtal - required,
+ - "iiscdclk0" - I2S0 codec clock - optional,
+ - "iiscdclk1" - I2S1 codec clock - optional,
+ - "iiscdclk2" - I2S2 codec clock - optional,
+ - "pcmcdclk0" - PCM0 codec clock - optional,
+ - "pcmcdclk1" - PCM1 codec clock - optional, only S3C6410.
+
+Example: Clock controller node:
+
+ clock: clock-controller@7e00f000 {
+ compatible = "samsung,s3c6410-clock";
+ reg = <0x7e00f000 0x1000>;
+ #clock-cells = <1>;
+ };
+
+Example: Required external clocks:
+
+ fin_pll: clock-fin-pll {
+ compatible = "fixed-clock";
+ clock-output-names = "fin_pll";
+ clock-frequency = <12000000>;
+ #clock-cells = <0>;
+ };
+
+ xusbxti: clock-xusbxti {
+ compatible = "fixed-clock";
+ clock-output-names = "xusbxti";
+ clock-frequency = <48000000>;
+ #clock-cells = <0>;
+ };
+
+Example: UART controller node that consumes the clock generated by the clock
+ controller (refer to the standard clock bindings for information about
+ "clocks" and "clock-names" properties):
+
+ uart0: serial@7f005000 {
+ compatible = "samsung,s3c6400-uart";
+ reg = <0x7f005000 0x100>;
+ interrupt-parent = <&vic1>;
+ interrupts = <5>;
+ clock-names = "uart", "clk_uart_baud2",
+ "clk_uart_baud3";
+ clocks = <&clock PCLK_UART0>, <&clocks PCLK_UART0>,
+ <&clock SCLK_UART>;
+ status = "disabled";
+ };

Documentation/devicetree/bindings/clock/sunxi.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
index d495521..00a5c26 100644
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
@@ -8,19 +8,31 @@ Required properties:
- compatible : shall be one of the following:
"allwinner,sun4i-osc-clk" - for a gatable oscillator
"allwinner,sun4i-pll1-clk" - for the main PLL clock
+ "allwinner,sun6i-a31-pll1-clk" - for the main PLL clock on A31
"allwinner,sun4i-cpu-clk" - for the CPU multiplexer clock
"allwinner,sun4i-axi-clk" - for the AXI clock
"allwinner,sun4i-axi-gates-clk" - for the AXI gates
"allwinner,sun4i-ahb-clk" - for the AHB clock
"allwinner,sun4i-ahb-gates-clk" - for the AHB gates on A10
"allwinner,sun5i-a13-ahb-gates-clk" - for the AHB gates on A13
+ "allwinner,sun5i-a10s-ahb-gates-clk" - for the AHB gates on A10s
+ "allwinner,sun7i-a20-ahb-gates-clk" - for the AHB gates on A20
+ "allwinner,sun6i-a31-ahb1-mux-clk" - for the AHB1 multiplexer on A31
+ "allwinner,sun6i-a31-ahb1-gates-clk" - for the AHB1 gates on A31
"allwinner,sun4i-apb0-clk" - for the APB0 clock
"allwinner,sun4i-apb0-gates-clk" - for the APB0 gates on A10
"allwinner,sun5i-a13-apb0-gates-clk" - for the APB0 gates on A13
+ "allwinner,sun5i-a10s-apb0-gates-clk" - for the APB0 gates on A10s
+ "allwinner,sun7i-a20-apb0-gates-clk" - for the APB0 gates on A20
"allwinner,sun4i-apb1-clk" - for the APB1 clock
"allwinner,sun4i-apb1-mux-clk" - for the APB1 clock muxing
"allwinner,sun4i-apb1-gates-clk" - for the APB1 gates on A10
"allwinner,sun5i-a13-apb1-gates-clk" - for the APB1 gates on A13
+ "allwinner,sun5i-a10s-apb1-gates-clk" - for the APB1 gates on A10s
+ "allwinner,sun6i-a31-apb1-gates-clk" - for the APB1 gates on A31
+ "allwinner,sun7i-a20-apb1-gates-clk" - for the APB1 gates on A20
+ "allwinner,sun6i-a31-apb2-div-clk" - for the APB2 gates on A31
+ "allwinner,sun6i-a31-apb2-gates-clk" - for the APB2 gates on A31
Required properties for all clocks:
- reg : shall be the control register address for the clock.

Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt
new file mode 100644
index 0000000..d24279f
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun5i-a10s-gates.txt
@@ -0,0 +1,75 @@
+Gate clock outputs
+------------------
+
+ * AXI gates ("allwinner,sun4i-axi-gates-clk")
+
+ DRAM 0
+
+ * AHB gates ("allwinner,sun5i-a10s-ahb-gates-clk")
+
+ USB0 0
+ EHCI0 1
+ OHCI0 2
+
+ SS 5
+ DMA 6
+ BIST 7
+ MMC0 8
+ MMC1 9
+ MMC2 10
+
+ NAND 13
+ SDRAM 14
+
+ EMAC 17
+ TS 18
+
+ SPI0 20
+ SPI1 21
+ SPI2 22
+
+ GPS 26
+
+ HSTIMER 28
+
+ VE 32
+
+ TVE 34
+
+ LCD 36
+
+ CSI 40
+
+ HDMI 43
+ DE_BE 44
+
+ DE_FE 46
+
+ IEP 51
+ MALI400 52
+
+ * APB0 gates ("allwinner,sun5i-a10s-apb0-gates-clk")
+
+ CODEC 0
+
+ IIS 3
+
+ PIO 5
+ IR 6
+
+ KEYPAD 10
+
+ * APB1 gates ("allwinner,sun5i-a10s-apb1-gates-clk")
+
+ I2C0 0
+ I2C1 1
+ I2C2 2
+
+ UART0 16
+ UART1 17
+ UART2 18
+ UART3 19
+
+Notation:
+ [*]: The datasheet didn't mention these, but they are present on AW code
+ [**]: The datasheet had this marked as "NC" but they are used on AW code

Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt
new file mode 100644
index 0000000..fe44932
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun6i-a31-gates.txt
@@ -0,0 +1,83 @@
+Gate clock outputs
+------------------
+
+ * AHB1 gates ("allwinner,sun6i-a31-ahb1-gates-clk")
+
+ MIPI DSI 1
+
+ SS 5
+ DMA 6
+
+ MMC0 8
+ MMC1 9
+ MMC2 10
+ MMC3 11
+
+ NAND1 12
+ NAND0 13
+ SDRAM 14
+
+ GMAC 17
+ TS 18
+ HSTIMER 19
+ SPI0 20
+ SPI1 21
+ SPI2 22
+ SPI3 23
+ USB_OTG 24
+
+ EHCI0 26
+ EHCI1 27
+
+ OHCI0 29
+ OHCI1 30
+ OHCI2 31
+ VE 32
+
+ LCD0 36
+ LCD1 37
+
+ CSI 40
+
+ HDMI 43
+ DE_BE0 44
+ DE_BE1 45
+ DE_FE1 46
+ DE_FE1 47
+
+ MP 50
+
+ GPU 52
+
+ DEU0 55
+ DEU1 56
+ DRC0 57
+ DRC1 58
+
+ * APB1 gates ("allwinner,sun6i-a31-apb1-gates-clk")
+
+ CODEC 0
+
+ DIGITAL MIC 4
+ PIO 5
+
+ DAUDIO0 12
+ DAUDIO1 13
+
+ * APB2 gates ("allwinner,sun6i-a31-apb2-gates-clk")
+
+ I2C0 0
+ I2C1 1
+ I2C2 2
+ I2C3 3
+
+ UART0 16
+ UART1 17
+ UART2 18
+ UART3 19
+ UART4 20
+ UART5 21
+
+Notation:
+ [*]: The datasheet didn't mention these, but they are present on AW code
+ [**]: The datasheet had this marked as "NC" but they are used on AW code

Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt

View file
diff --git a/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt
new file mode 100644
index 0000000..357f4fd
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/sunxi/sun7i-a20-gates.txt
@@ -0,0 +1,98 @@
+Gate clock outputs
+------------------
+
+ * AXI gates ("allwinner,sun4i-axi-gates-clk")
+
+ DRAM 0
+
+ * AHB gates ("allwinner,sun7i-a20-ahb-gates-clk")
+
+ USB0 0
+ EHCI0 1
+ OHCI0 2
+ EHCI1 3
+ OHCI1 4
+ SS 5
+ DMA 6
+ BIST 7
+ MMC0 8
+ MMC1 9
+ MMC2 10
+ MMC3 11
+ MS 12
+ NAND 13
+ SDRAM 14
+
+ ACE 16
+ EMAC 17
+ TS 18
+
+ SPI0 20
+ SPI1 21
+ SPI2 22
+ SPI3 23
+
+ SATA 25
+
+ HSTIMER 28
+
+ VE 32
+ TVD 33
+ TVE0 34
+ TVE1 35
+ LCD0 36
+ LCD1 37
+
+ CSI0 40
+ CSI1 41
+
+ HDMI1 42
+ HDMI0 43
+ DE_BE0 44
+ DE_BE1 45
+ DE_FE1 46
+ DE_FE1 47
+
+ GMAC 49
+ MP 50
+
+ MALI400 52
+
+ * APB0 gates ("allwinner,sun7i-a20-apb0-gates-clk")
+
+ CODEC 0
+ SPDIF 1
+ AC97 2
+ IIS0 3
+ IIS1 4
+ PIO 5
+ IR0 6
+ IR1 7
+ IIS2 8
+
+ KEYPAD 10
+
+ * APB1 gates ("allwinner,sun7i-a20-apb1-gates-clk")
+
+ I2C0 0
+ I2C1 1
+ I2C2 2
+ I2C3 3
+ CAN 4
+ SCR 5
+ PS20 6
+ PS21 7
+
+ I2C4 15
+ UART0 16
+ UART1 17
+ UART2 18
+ UART3 19
+ UART4 20
+ UART5 21
+ UART6 22
+ UART7 23
+
+Notation:
+ [*]: The datasheet didn't mention these, but they are present on AW code
+ [**]: The datasheet had this marked as "NC" but they are used on AW code

Documentation/devicetree/bindings/gpu/samsung-g2d.txt

View file
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
index 3f454ff..c4f358d 100644
--- a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
+++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt
@@ -11,8 +11,11 @@ Required properties:
- interrupts : G2D interrupt number to the CPU.
- clocks : from common clock binding: handle to G2D clocks.
- - clock-names : from common clock binding: must contain "sclk_fimg2d" and
- "fimg2d", corresponding to entries in the clocks property.
+ - clock-names : names of clocks listed in clocks property, in the same
+ order, depending on SoC type:
+ - for S5PV210 and Exynos4 based SoCs: "fimg2d" and
+ "sclk_fimg2d"
+ - for Exynos5250 SoC: "fimg2d".
Example:
g2d@12800000 {

Documentation/devicetree/bindings/pwm/pwm-samsung.txt

View file
diff --git a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
index 4caa1a7..d61fccd 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-samsung.txt
@@ -19,6 +19,16 @@ Required properties:
- reg: base address and size of register area
- interrupts: list of timer interrupts (one interrupt per timer, starting at
timer 0)
+- clock-names: should contain all following required clock names:
+ - "timers" - PWM base clock used to generate PWM signals,
+ and any subset of following optional clock names:
+ - "pwm-tclk0" - first external PWM clock source,
+ - "pwm-tclk1" - second external PWM clock source.
+ Note that not all IP variants allow using all external clock sources.
+ Refer to SoC documentation to learn which clock source configurations
+ are available.
+- clocks: should contain clock specifiers of all clocks, which input names
+ have been specified in clock-names property, in same order.
- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
the cells format. The only third cell flag supported by this binding is
PWM_POLARITY_INVERTED.
@@ -34,6 +44,8 @@ Example:
reg = <0x7f006000 0x1000>;
interrupt-parent = <&vic0>;
interrupts = <23>, <24>, <25>, <27>, <28>;
+ clocks = <&clock 67>;
+ clock-names = "timers";
samsung,pwm-outputs = <0>, <1>;
#pwm-cells = <3>;
}

arch/arm/boot/dts/exynos4.dtsi

View file
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 93c2501..caadc02 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -448,6 +448,8 @@
compatible = "samsung,exynos4210-pwm";
reg = <0x139D0000 0x1000>;
interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 0>;
+ clocks = <&clock 336>;
+ clock-names = "timers";
#pwm-cells = <2>;
status = "disabled";
};

arch/arm/mach-imx/clk.h

View file
diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
index 3451f1f..048c5ad 100644
--- a/arch/arm/mach-imx/clk.h
+++ b/arch/arm/mach-imx/clk.h
@@ -89,7 +89,8 @@ static inline struct clk *imx_clk_gate(const char *name, const char *parent,
static inline struct clk *imx_clk_mux(const char *name, void __iomem *reg,
u8 shift, u8 width, const char **parents, int num_parents)
{

This diff is incomplete. Download the complete patch.

drivers/clk/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/clk/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-bcm2835.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-divider.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-fixed-factor.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-fixed-rate.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-gate.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-mux.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-nomadik.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-prima2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-s2mps11.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-u300.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk-wm831x.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-mmp2.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-pxa168.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mmp/clk-pxa910.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/armada-370.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/armada-xp.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/clk-cpu.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/common.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/dove.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mvebu/kirkwood.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mxs/clk-imx23.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/mxs/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos-audss.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos4.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos5250.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos5420.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-exynos5440.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-pll.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk-s3c64xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/samsung/clk.h

View file

This diff is incomplete. Download the complete patch.

drivers/clk/spear/spear1310_clock.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/spear/spear1340_clock.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/spear/spear3xx_clock.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/spear/spear6xx_clock.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/sunxi/clk-sunxi.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/tegra/clk-tegra114.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/tegra/clk-tegra20.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/tegra/clk-tegra30.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/versatile/clk-vexpress.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/zynq/clkc.c

View file

This diff is incomplete. Download the complete patch.

drivers/clk/zynq/pll.c

View file

This diff is incomplete. Download the complete patch.

drivers/clocksource/samsung_pwm_timer.c

View file

This diff is incomplete. Download the complete patch.

include/dt-bindings/clock/samsung,s3c64xx-clock.h

View file

This diff is incomplete. Download the complete patch.

include/linux/clk-private.h

View file

This diff is incomplete. Download the complete patch.

include/linux/clk-provider.h

View file

This diff is incomplete. Download the complete patch.