tree 142ca1ab0d633335feb5e0eba1a7e9d9f749755b
parent 052f6026cc1684a9f6c5a5594d43ddd63f834a22
parent 5b062010675b3d74c9a6c6896e2becf932a4ca74
author Olof Johansson <olof@lixom.net> 1515135066 -0800
committer Olof Johansson <olof@lixom.net> 1515135066 -0800
mergetag object 5b062010675b3d74c9a6c6896e2becf932a4ca74
 type commit
 tag renesas-dt2-for-v4.16
 tagger Simon Horman <horms@verge.net.au> 1513938139 +0100
 
 Second Round of Renesas ARM Based SoC DT Updates for v4.16
 
 * r8a7745 (RZ/G1E) SoC
   - Enable SMP
 
     Fabrizio Castro says "Add DT node for the Advanced Power Management
     Unit (APMU), add the second CPU core, and use "renesas,apmu" as
     "enable-method"."
 
 * r8a7743 (RZ/G1M) SoC
   - Add node for thermal sensor module with thermal-zone support
 
 * r8a7743 (RZ/G1M) and r8a7745 (RZ/G1E) SoCs
   - Add:
     + Renesas Core Match Timer (CMT) support
     + Renesas Timer Pulse Unit PWM Controller (TPU) support
     + Renesas PWM Timer Controller (PWM) support
 
 * r8a7743 (RZ/G1M) iW-RainboW-G20D-Qseven and
   r8a7745 (RZ/G1E) iW-RainboW-G22D development platforms
   - Add sound support
 
 * r8a7743 (RZ/G1M), r8a7745 (RZ/G1E) and r8a7792 (R-Car V2H) SoCs
   - Allow DTBs of boards of these SoCs to build without any warnings when
     compiled with W=1 using gcc-linaro-5.4.1-2017.05
     + Move nodes which have no reg property out of bus, they don't belong there
     + Also sort sub-nodes of root node to allow for easier maintenance
 
 * r8a7790 (R-Car H2), r8a7791 (R-Car M2-W) and r8a7793 (R-Car M2-N) SoCs
   - Correct critical CPU temperature
 
     Chris Paterson says "The current R-Car Gen2 device trees define the CPU
     critical temperature as 115°C.
 
     The R-Car hardware manuals state that Tc = –40°C to +105°C. The thermal
     sensor has an accuracy of ±5°C and there can be a temperature
     difference of 1 or 2 degrees between Tjmax and the thermal sensor due
     to the location of the latter.
 
     This means that 95°C is a safer value to use.
 
     This value should also apply to r8a7792 but thermal sensor support has
     not been added yet."
 
 * r8a7740 (R-Mobile A1) SoC
   - Correct TPU register block size
 
     Geert Uytterhoven says "The Timer Pulse Unit has registers that lie
     outside the declared register block.  Enlarge the register block size to
     fix this.
 
     This was probably based on the old platform code, which also assumed a
     register block size of 0x100."
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlo83NsACgkQ189kaWo3
 T75/Ug/+K0JFjXfzVGLLhQ0GYV+nJLD2Rz5J0WOISZSKQ2MMuIDNPYa/r2edOzkV
 qp75Fjp0FE0XvYQQwPsKSY8Nt0CRg1j/wYw9wMvJZ1lJUgeL9DuLhzqZ2mlvv0v9
 gLaZau011QpKv3k/MoOVEPOUrKBSqhBJaTZ3ufv/tYvpI/if//8jRafdkLPzSPcQ
 IktmihGIiB2uJeCwZsEfhn3kWvjc4PegVbL6jkTrHd21oDA7KYnCLP7XBi3eut1C
 smVzcN+NofAIDgk7x+R6XdEl6bJejUEox/ixk/HgJ2yjD2bsI8ILL6Mx2BKREg6x
 oYJlmXo6/XNep+9H45JaTCgRJfzhfFQu15PAYE8qROeGcoFm7tnGLXYe0zEaXy9G
 K22dkZog+uLpwCeHpXYsXFDknhQPds3a/nd4crpVlmsnfuhdLYwAn4IxWnBBl/SV
 u9xHegfrexqT8pE44JDA+cWqGQz2gss33pBejJqB+3HEijg/CQ43eZbQVEYpMx01
 a/9mQqJvk3IyC6EyzxMWfq9k8e0rcq6APRu+dd2oPyUTVNKgWuQXHHyyzIlzn55w
 NvbUf5W6wyxa/kA2l8XeBHToKAn1pBbhEakIF1tGYKB1a8AfHbuHXeuXLFLNmQDN
 3ON16LEEzqBlHjn2kxHG/gbFUTHXDl1gwBPo92CATuHe+P8TG+Q=
 =2oL+
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt2-for-v4.16' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Second Round of Renesas ARM Based SoC DT Updates for v4.16

* r8a7745 (RZ/G1E) SoC
  - Enable SMP

    Fabrizio Castro says "Add DT node for the Advanced Power Management
    Unit (APMU), add the second CPU core, and use "renesas,apmu" as
    "enable-method"."

* r8a7743 (RZ/G1M) SoC
  - Add node for thermal sensor module with thermal-zone support

* r8a7743 (RZ/G1M) and r8a7745 (RZ/G1E) SoCs
  - Add:
    + Renesas Core Match Timer (CMT) support
    + Renesas Timer Pulse Unit PWM Controller (TPU) support
    + Renesas PWM Timer Controller (PWM) support

* r8a7743 (RZ/G1M) iW-RainboW-G20D-Qseven and
  r8a7745 (RZ/G1E) iW-RainboW-G22D development platforms
  - Add sound support

* r8a7743 (RZ/G1M), r8a7745 (RZ/G1E) and r8a7792 (R-Car V2H) SoCs
  - Allow DTBs of boards of these SoCs to build without any warnings when
    compiled with W=1 using gcc-linaro-5.4.1-2017.05
    + Move nodes which have no reg property out of bus, they don't belong there
    + Also sort sub-nodes of root node to allow for easier maintenance

* r8a7790 (R-Car H2), r8a7791 (R-Car M2-W) and r8a7793 (R-Car M2-N) SoCs
  - Correct critical CPU temperature

    Chris Paterson says "The current R-Car Gen2 device trees define the CPU
    critical temperature as 115°C.

    The R-Car hardware manuals state that Tc = –40°C to +105°C. The thermal
    sensor has an accuracy of ±5°C and there can be a temperature
    difference of 1 or 2 degrees between Tjmax and the thermal sensor due
    to the location of the latter.

    This means that 95°C is a safer value to use.

    This value should also apply to r8a7792 but thermal sensor support has
    not been added yet."

* r8a7740 (R-Mobile A1) SoC
  - Correct TPU register block size

    Geert Uytterhoven says "The Timer Pulse Unit has registers that lie
    outside the declared register block.  Enlarge the register block size to
    fix this.

    This was probably based on the old platform code, which also assumed a
    register block size of 0x100."

* tag 'renesas-dt2-for-v4.16' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (37 commits)
  ARM: dts: r8a7745: Add missing clock for secondary CA7 CPU core
  ARM: dts: iwg22d-sodimm: Sound DMA support via DVC on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support via SRC on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support via BUSIF on DTS
  ARM: dts: iwg22d-sodimm: Sound DMA support on DTS
  ARM: dts: iwg22d-sodimm: Sound PIO support
  ARM: dts: iwg22d-sodimm: Enable SGTL5000 audio codec
  ARM: dts: r8a7745: Add sound support
  ARM: dts: r8a7745: Add audio DMAC support
  ARM: dts: r8a7745: Add audio clocks
  ARM: dts: r8a7740: Correct TPU register block size
  ARM: dts: r8a7743: move timer and thermal-zones nodes out of bus
  ARM: dts: r8a7743: sort root sub-nodes alphabetically
  ARM: dts: iwg20d-q7-common: Sound DMA support via DVC on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support via SRC on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support via BUSIF on DTS
  ARM: dts: iwg20d-q7-common: Sound DMA support on DTS
  ARM: dts: iwg20d-q7-common: Sound PIO support
  ARM: dts: iwg20d-q7-common: Enable SGTL5000 audio codec
  ARM: dts: r8a7792: move timer node out of bus
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
