* Samsung Exynos5420 Clock Controller

The Exynos5420 clock controller generates and supplies clock to various
controllers within the Exynos5420 SoC.

Required Properties:

- compatible: should be one of the following.
  - "samsung,exynos5420-clock" - controller compatible with Exynos5420 SoC.

- reg: physical base address of the controller and length of memory mapped
  region.

- #clock-cells: should be 1.

The following is the list of clocks generated by the controller. Each clock is
assigned an identifier and client nodes use this identifier to specify the
clock which they consume.


       [Core Clocks]

  Clock			ID
  ----------------------------

  fin_pll		1

  [Clock Gate for Special Clocks]

  Clock			ID
  ----------------------------
  sclk_uart0		128
  sclk_uart1		129
  sclk_uart2		130
  sclk_uart3		131
  sclk_mmc0		132
  sclk_mmc1		133
  sclk_mmc2		134
  sclk_spi0		135
  sclk_spi1		136
  sclk_spi2		137
  sclk_i2s1		138
  sclk_i2s2		139
  sclk_pcm1		140
  sclk_pcm2		141
  sclk_spdif		142
  sclk_hdmi		143
  sclk_pixel		144
  sclk_dp1		145
  sclk_mipi1		146
  sclk_fimd1		147
  sclk_maudio0		148
  sclk_maupcm0		149
  sclk_usbd300		150
  sclk_usbd301		151
  sclk_usbphy300	152
  sclk_usbphy301	153
  sclk_unipro		154
  sclk_pwm		155
  sclk_gscl_wa		156
  sclk_gscl_wb		157
  sclk_hdmiphy		158

   [Peripheral Clock Gates]

  Clock			ID
  ----------------------------

  aclk66_peric		256
  uart0			257
  uart1			258
  uart2			259
  uart3			260
  i2c0			261
  i2c1			262
  i2c2			263
  i2c3			264
  i2c4			265
  i2c5			266
  i2c6			267
  i2c7			268
  i2c_hdmi		269
  tsadc			270
  spi0			271
  spi1			272
  spi2			273
  keyif			274
  i2s1			275
  i2s2			276
  pcm1			277
  pcm2			278
  pwm			279
  spdif			280
  i2c8			281
  i2c9			282
  i2c10			283
  aclk66_psgen		300
  chipid		301
  sysreg		302
  tzpc0			303
  tzpc1			304
  tzpc2			305
  tzpc3			306
  tzpc4			307
  tzpc5			308
  tzpc6			309
  tzpc7			310
  tzpc8			311
  tzpc9			312
  hdmi_cec		313
  seckey		314
  mct			315
  wdt			316
  rtc			317
  tmu			318
  tmu_gpu		319
  pclk66_gpio		330
  aclk200_fsys2		350
  mmc0			351
  mmc1			352
  mmc2			353
  sromc			354
  ufs			355
  aclk200_fsys		360
  tsi			361
  pdma0			362
  pdma1			363
  rtic			364
  usbh20		365
  usbd300		366
  usbd301		377
  aclk400_mscl		380
  mscl0			381
  mscl1			382
  mscl2			383
  smmu_mscl0		384
  smmu_mscl1		385
  smmu_mscl2		386
  aclk333		400
  mfc			401
  smmu_mfcl		402
  smmu_mfcr		403
  aclk200_disp1		410
  dsim1			411
  dp1			412
  hdmi			413
  aclk300_disp1		420
  fimd1			421
  smmu_fimd1		422
  aclk166		430
  mixer			431
  aclk266		440
  rotator		441
  mdma1			442
  smmu_rotator		443
  smmu_mdma1		444
  aclk300_jpeg		450
  jpeg			451
  jpeg2			452
  smmu_jpeg		453
  aclk300_gscl		460
  smmu_gscl0		461
  smmu_gscl1		462
  gscl_wa		463
  gscl_wb		464
  gscl0			465
  gscl1			466
  clk_3aa		467
  aclk266_g2d		470
  sss			471
  slim_sss		472
  mdma0			473
  aclk333_g2d		480
  g2d			481
  aclk333_432_gscl	490
  smmu_3aa		491
  smmu_fimcl0		492
  smmu_fimcl1		493
  smmu_fimcl3		494
  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.

	clock: clock-controller@0x10010000 {
		compatible = "samsung,exynos5420-clock";
		reg = <0x10010000 0x30000>;
		#clock-cells = <1>;
	};

Example 2: 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' property.

	serial@13820000 {
		compatible = "samsung,exynos4210-uart";
		reg = <0x13820000 0x100>;
		interrupts = <0 54 0>;
		clocks = <&clock 259>, <&clock 130>;
		clock-names = "uart", "clk_uart_baud0";
	};
