mbox series

[v6,00/28] Add DM support for omap PWM backlight

Message ID 20201122161128.13753-1-dariobin@libero.it
Headers show
Series Add DM support for omap PWM backlight | expand

Message

Dario Binacchi Nov. 22, 2020, 4:11 p.m. UTC
The series was born from the need to manage the PWM backlight of the
display connected to my beaglebone board. To hit the target, I had to
develop drivers for PWM management which in turn relied on drivers for
managing timers and clocks, all developed according to the driver model.
My intention was to use the SoC-specific API only at strictly necessary
points in the code. My previous patches for migrating the AM335x display
driver to the driver model had required the implementation of additional
functions outside the concerns of the driver, (settings for dividing the
pixel clock rate, configuring the display DPLL rate, ....) not being
able to use the API of the related clock drivers. This series shouldn't
have repeated the same kind of mistake. Furthermore, I also wanted to fix
that kind of forced choice. Almost everything should have been accessible
via the driver model API. In the series there are also some patches that
could be submitted separately, but which I have however inserted to avoid
applying future patches to incorporate them.
With this last consideration, I hope I have convincingly justified the
large number of patches in the series.

The patch enabling address translation into a CPU physical address from
device-tree even in case of crossing levels with #size-cells = <0>, is
crucial for the series. The previous implementation was unable to
perform the address translation required by the am33xx device tree.
I tried to apply in a conservative way as few changes as possible and
to verify the execution of all the tests already developed, as well as
the new ones I added for the new feature.

The patch series can be cleanly applied to the HEAD of the master which
at the time of release points to 12e396303c commit.

Changes in v6:
- Remove the 'am3-prcm' driver.
- Add the 'simple-bus' compatible string to the prcm_clocks node.
- Remove the 'am3-scm' driver.
- Add the 'simple-bus' compatible string to the scm_clocks node.

Changes in v5:
- Create drivers/clk/ti directory.
- Move the clk-ti-mux.c file to drivers/clk/ti and rename it clk-mux.c
- Move the clk-ti-am3-dpll.c file to drivers/clk/ti with the name
  clk-am3-dpll.c.
- Move the clk-ti-am3-dpll-x2.c file to drivers/clk/ti with the name
  clk-am3-dpll-x2.c.
- Move the clk-ti.c file to drivers/clk/ti with the name clk.c.
- Move the clk-ti.h file to drivers/clk/ti with the name clk.h.
- Move the clk-ti-divider.c file to drivers/clk/ti with the name
  clk-divider.c.
- Move the clk-ti-gate.c file to drivers/clk/ti with the name
  clk-gate.c.
- Move the clk-ti-ctrl.c file to drivers/clk/ti with the name
  clk-ctrl.c.

Changes in v4:
- Include device_compat.h header for dev_xxx macros.
- Remove a blank line at end of file arch/arm/dts/am33xx-l4.dtsi.
- Update clk_round_rate description.
- Add Sean Anderson review.
- Include device_compat.h header for dev_xxx macros.
- Include device_compat.h header for dev_xxx macros.
- Fix compilation errors on the dev parameter of the dev_xx macros.
- Include device_compat.h header for dev_xxx macros.
- Fix compilation errors on the dev parameter of the dev_xx macros.
- Include device_compat.h header for dev_xxx macros.
- Include device_compat.h header for dev_xxx macros.
- Fix compilation errors on the dev parameter of the dev_xx macros.
- Include device_compat.h header for dev_xxx macros.
- Add Sphinx documentation for dm_flags.
- Convert GD_DM_FLG_* to enum.
- Include device_compat.h header in test/dm/test-fdt.c for dev_xxx macros.
- Include device_compat.h header for dev_xxx macros.
- Include device_compat.h header for dev_xxx macros.
- Include device_compat.h header for dev_xxx macros.
- Add Simon Glass review.
- Include device_compat.h header for dev_xxx macros.

Changes in v3:
- Remove doc/device-tree-bindings/clock/clock-bindings.txt.
- Remove doc/device-tree-bindings/clock/ti,mux.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Remove doc/device-tree-bindings/clock/ti,dpll.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Remove doc/device-tree-bindings/clock/ti,autoidle.txt.
- Remove doc/device-tree-bindings/clock/ti,divider.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Remove doc/device-tree-bindings/clock/gpio-gate-clock.txt.
- Remove doc/device-tree-bindings/clock/ti,clockdomain.txt.
- Remove doc/device-tree-bindings/clock/ti,gate.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Fix access to registers listed by device tree following resync of
  am33xx-clock.dtsi with Linux 5.9-rc7.
- Remove doc/device-tree-bindings/clock/ti,clkctrl.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- doc/device-tree-bindings/arm/omap,prcm.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Comment dm_flags field in the global_data structure.
- Remove doc/device-tree-bindings/arm/omap,ctrl.txt.
- Remove doc/device-tree-bindings/pinctrl/pinctrl-single.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Adds PWM_TI_EHRPWM dependency on ARCH_OMAP2PLUS in Kconfig.
- Add error message in case of invalid address.
- Remove doc/device-tree-bindings/pwm/ti,ehrpwm.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Move Kconfig symbol from drivers/pwm to drivers/bus.
- Remove the domain clock reference from the pwmss nodes of the device
  tree in am33xx.dtsi. The resync of am33xx.dtsi with Linux 5.9-rc7
  already contains such references.
- Remove domain clock enabling/disabling. Enabling the domain clock is
  performed by the sysc interconnect target module driver during the pwm
  device probing.
- Remove doc/device-tree-bindings/pwm/ti,pwmss.txt.
- Add to commit message the references to linux kernel dt binding
  documentation.
- Update the DTS lcdc node of the am335x boards because of the
  am33xx.dtsi resynced with Linux 5.9-rc7.
- Remove clock domain enabling/disabling.
- Update the commit message.
- Add clk.h header.
- Fix an error code returned by the probe function.

Changes in v2:
- Add the clk_ prefix to the divider functions.
- Add kernel-doc comments to the exported functions.
- Merged to patch [09/31] clk: ti: refactor mux and divider clock
  drivers.
- Remove the 'ti_am3_prcm_clocks' driver. Handle 'prcm_clocks' node in
  the 'ti_am3_prcm' driver.
- Update the commit message.
- Fix a missing line in the commit message.
- Add dm_flags to global_data structure and GD_DM_FLG_SIZE_CELLS_0 macro
  to test without recompiling.
- Update the OF_CHECK_COUNTS macro in order to have just one
  #define by bringing the GD_DM_FLG_SIZE_CELLS_0 into the expression.
- Lower-case the 0xC019 hex number.
- Remove the 'ti_am3_scm_clocks' driver. Handle 'scm_clocks' node in
  the 'ti_am3_scm' driver.
- Update the commit message.

Dario Binacchi (28):
  clk: export generic routines
  dt-bindings: bus: ti-sysc: resync with Linux 5.9-rc7
  bus: ti: add minimal sysc interconnect target driver
  arm: dts: sync am33xx with Linux 5.9-rc7
  clk: add clk_round_rate()
  clk: ti: add mux clock driver
  arm: ti: am33xx: add DPLL_EN_FAST_RELOCK_BYPASS macro
  clk: ti: am33xx: add DPLL clock drivers
  clk: ti: add divider clock driver
  clk: ti: add gate clock driver
  arm: dts: am335x: include am33xx-u-boot.dtsi
  ti: am33xx: fix do_enable_clocks() to accept NULL parameters
  clk: ti: add support for clkctrl clocks
  clk: ti: omap4: add clock manager driver
  arm: dts: am335x: enable prcm_clocks auto binding
  clk: move clk-ti-sci driver to 'ti' directory
  fdt: translate address if #size-cells = <0>
  omap: timer: fix the rate setting
  arm: dts: am335x: enable scm_clocks auto binding
  pwm: ti: am33xx: add enhanced pwm driver
  bus: ti: am33xx: add pwm subsystem driver
  dm: core: add a function to decode display timings
  video: omap: add panel driver
  video: omap: drop domain clock enabling by SOC api
  video: omap: set LCD clock rate through DM API
  video: omap: split the legacy code from the DM code
  video: omap: move drivers to 'ti' directory
  board: ti: am335x-ice: get CDCE913 clock device

 arch/arm/Kconfig                           |    1 +
 arch/arm/dts/am335x-brppt1-mmc.dts         |   17 +-
 arch/arm/dts/am335x-brppt1-nand.dts        |   17 +-
 arch/arm/dts/am335x-brppt1-spi.dts         |   17 +-
 arch/arm/dts/am335x-brsmarc1.dts           |   20 +-
 arch/arm/dts/am335x-brxre1.dts             |   21 +-
 arch/arm/dts/am335x-chiliboard-u-boot.dtsi |    2 +
 arch/arm/dts/am335x-draco.dtsi             |   11 +-
 arch/arm/dts/am335x-evm-u-boot.dtsi        |   17 +-
 arch/arm/dts/am335x-evm.dts                |    2 +-
 arch/arm/dts/am335x-evmsk-u-boot.dtsi      |   16 +-
 arch/arm/dts/am335x-evmsk.dts              |    2 +-
 arch/arm/dts/am335x-guardian-u-boot.dtsi   |   25 +-
 arch/arm/dts/am335x-icev2-u-boot.dtsi      |    3 +
 arch/arm/dts/am335x-pdu001-u-boot.dtsi     |   20 +-
 arch/arm/dts/am335x-pxm2.dtsi              |    2 +-
 arch/arm/dts/am335x-pxm50-u-boot.dtsi      |   16 +-
 arch/arm/dts/am335x-regor-rdk-u-boot.dtsi  |    2 +
 arch/arm/dts/am335x-rut-u-boot.dtsi        |   16 +-
 arch/arm/dts/am335x-rut.dts                |    2 +-
 arch/arm/dts/am335x-shc-u-boot.dtsi        |    2 +
 arch/arm/dts/am335x-shc.dts                |    2 +-
 arch/arm/dts/am335x-wega-rdk-u-boot.dtsi   |    2 +
 arch/arm/dts/am33xx-clocks.dtsi            |  106 +-
 arch/arm/dts/am33xx-l4.dtsi                | 1962 ++++++++++++++++++++
 arch/arm/dts/am33xx-u-boot.dtsi            |    8 +
 arch/arm/dts/am33xx.dtsi                   |  721 +++----
 arch/arm/dts/da850-evm-u-boot.dtsi         |   18 +-
 arch/arm/include/asm/arch-am33xx/clock.h   |    1 +
 arch/arm/mach-omap2/am33xx/clock.c         |   10 +-
 arch/arm/mach-omap2/am33xx/clock_am33xx.c  |    2 +-
 arch/sandbox/dts/test.dts                  |   67 +
 arch/sandbox/include/asm/clk.h             |    9 +
 board/ti/am335x/board.c                    |    2 +-
 board/ti/am43xx/board.c                    |    2 +-
 common/fdt_support.c                       |    6 +-
 drivers/bus/Kconfig                        |   13 +
 drivers/bus/Makefile                       |    2 +
 drivers/bus/ti-pwmss.c                     |   21 +
 drivers/bus/ti-sysc.c                      |  166 ++
 drivers/clk/Kconfig                        |    9 +-
 drivers/clk/Makefile                       |    2 +-
 drivers/clk/clk-divider.c                  |   24 +-
 drivers/clk/clk-uclass.c                   |   15 +
 drivers/clk/clk_sandbox.c                  |   17 +
 drivers/clk/clk_sandbox_test.c             |   10 +
 drivers/clk/ti/Kconfig                     |   43 +
 drivers/clk/ti/Makefile                    |   13 +
 drivers/clk/ti/clk-am3-dpll-x2.c           |   79 +
 drivers/clk/ti/clk-am3-dpll.c              |  268 +++
 drivers/clk/ti/clk-ctrl.c                  |  154 ++
 drivers/clk/ti/clk-divider.c               |  381 ++++
 drivers/clk/ti/clk-gate.c                  |   93 +
 drivers/clk/ti/clk-mux.c                   |  253 +++
 drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} |    0
 drivers/clk/ti/clk.c                       |   34 +
 drivers/clk/ti/clk.h                       |   13 +
 drivers/clk/ti/omap4-cm.c                  |   22 +
 drivers/core/Kconfig                       |   12 +
 drivers/core/fdtaddr.c                     |    2 +-
 drivers/core/of_addr.c                     |   14 +-
 drivers/core/ofnode.c                      |    7 +-
 drivers/core/read.c                        |    6 +
 drivers/core/root.c                        |    3 +
 drivers/pwm/Kconfig                        |    7 +
 drivers/pwm/Makefile                       |    1 +
 drivers/pwm/pwm-ti-ehrpwm.c                |  468 +++++
 drivers/timer/omap-timer.c                 |    6 +-
 drivers/video/Kconfig                      |    5 +-
 drivers/video/Makefile                     |    2 +-
 drivers/video/ti/Kconfig                   |    8 +
 drivers/video/ti/Makefile                  |   10 +
 drivers/video/{ => ti}/am335x-fb.c         |  342 +---
 drivers/video/{ => ti}/am335x-fb.h         |    4 -
 drivers/video/ti/tilcdc-panel.c            |  172 ++
 drivers/video/ti/tilcdc-panel.h            |   14 +
 drivers/video/ti/tilcdc.c                  |  425 +++++
 drivers/video/ti/tilcdc.h                  |   38 +
 include/asm-generic/global_data.h          |   18 +
 include/clk-uclass.h                       |    8 +
 include/clk.h                              |   28 +
 include/dm/read.h                          |   24 +
 include/dt-bindings/bus/ti-sysc.h          |    6 +
 include/linux/clk-provider.h               |   57 +
 test/dm/clk.c                              |   22 +
 test/dm/test-fdt.c                         |  149 +-
 86 files changed, 5670 insertions(+), 969 deletions(-)
 create mode 100644 arch/arm/dts/am33xx-l4.dtsi
 create mode 100644 drivers/bus/ti-pwmss.c
 create mode 100644 drivers/bus/ti-sysc.c
 create mode 100644 drivers/clk/ti/Kconfig
 create mode 100644 drivers/clk/ti/Makefile
 create mode 100644 drivers/clk/ti/clk-am3-dpll-x2.c
 create mode 100644 drivers/clk/ti/clk-am3-dpll.c
 create mode 100644 drivers/clk/ti/clk-ctrl.c
 create mode 100644 drivers/clk/ti/clk-divider.c
 create mode 100644 drivers/clk/ti/clk-gate.c
 create mode 100644 drivers/clk/ti/clk-mux.c
 rename drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} (100%)
 create mode 100644 drivers/clk/ti/clk.c
 create mode 100644 drivers/clk/ti/clk.h
 create mode 100644 drivers/clk/ti/omap4-cm.c
 create mode 100644 drivers/pwm/pwm-ti-ehrpwm.c
 create mode 100644 drivers/video/ti/Kconfig
 create mode 100644 drivers/video/ti/Makefile
 rename drivers/video/{ => ti}/am335x-fb.c (54%)
 rename drivers/video/{ => ti}/am335x-fb.h (97%)
 create mode 100644 drivers/video/ti/tilcdc-panel.c
 create mode 100644 drivers/video/ti/tilcdc-panel.h
 create mode 100644 drivers/video/ti/tilcdc.c
 create mode 100644 drivers/video/ti/tilcdc.h

Comments

Lokesh Vutla Dec. 22, 2020, 1:52 p.m. UTC | #1
Hi Dario,

On 22/11/20 9:41 pm, Dario Binacchi wrote:
> 
> The series was born from the need to manage the PWM backlight of the
> display connected to my beaglebone board. To hit the target, I had to
> develop drivers for PWM management which in turn relied on drivers for
> managing timers and clocks, all developed according to the driver model.
> My intention was to use the SoC-specific API only at strictly necessary
> points in the code. My previous patches for migrating the AM335x display
> driver to the driver model had required the implementation of additional
> functions outside the concerns of the driver, (settings for dividing the
> pixel clock rate, configuring the display DPLL rate, ....) not being
> able to use the API of the related clock drivers. This series shouldn't
> have repeated the same kind of mistake. Furthermore, I also wanted to fix
> that kind of forced choice. Almost everything should have been accessible
> via the driver model API. In the series there are also some patches that
> could be submitted separately, but which I have however inserted to avoid
> applying future patches to incorporate them.
> With this last consideration, I hope I have convincingly justified the
> large number of patches in the series.
> 
> The patch enabling address translation into a CPU physical address from
> device-tree even in case of crossing levels with #size-cells = <0>, is
> crucial for the series. The previous implementation was unable to
> perform the address translation required by the am33xx device tree.
> I tried to apply in a conservative way as few changes as possible and
> to verify the execution of all the tests already developed, as well as
> the new ones I added for the new feature.
> 
> The patch series can be cleanly applied to the HEAD of the master which
> at the time of release points to 12e396303c commit.

Are we waiting for any other reviews? TI part looks good to me.
If everything else is reviewed, Ill merge the series.

Please CC me for all the series next time else it is difficult for me to track
the comments

Thanks and regards,
Lokesh

> 
> Changes in v6:
> - Remove the 'am3-prcm' driver.
> - Add the 'simple-bus' compatible string to the prcm_clocks node.
> - Remove the 'am3-scm' driver.
> - Add the 'simple-bus' compatible string to the scm_clocks node.
> 
> Changes in v5:
> - Create drivers/clk/ti directory.
> - Move the clk-ti-mux.c file to drivers/clk/ti and rename it clk-mux.c
> - Move the clk-ti-am3-dpll.c file to drivers/clk/ti with the name
>   clk-am3-dpll.c.
> - Move the clk-ti-am3-dpll-x2.c file to drivers/clk/ti with the name
>   clk-am3-dpll-x2.c.
> - Move the clk-ti.c file to drivers/clk/ti with the name clk.c.
> - Move the clk-ti.h file to drivers/clk/ti with the name clk.h.
> - Move the clk-ti-divider.c file to drivers/clk/ti with the name
>   clk-divider.c.
> - Move the clk-ti-gate.c file to drivers/clk/ti with the name
>   clk-gate.c.
> - Move the clk-ti-ctrl.c file to drivers/clk/ti with the name
>   clk-ctrl.c.
> 
> Changes in v4:
> - Include device_compat.h header for dev_xxx macros.
> - Remove a blank line at end of file arch/arm/dts/am33xx-l4.dtsi.
> - Update clk_round_rate description.
> - Add Sean Anderson review.
> - Include device_compat.h header for dev_xxx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Fix compilation errors on the dev parameter of the dev_xx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Fix compilation errors on the dev parameter of the dev_xx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Fix compilation errors on the dev parameter of the dev_xx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Add Sphinx documentation for dm_flags.
> - Convert GD_DM_FLG_* to enum.
> - Include device_compat.h header in test/dm/test-fdt.c for dev_xxx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Include device_compat.h header for dev_xxx macros.
> - Add Simon Glass review.
> - Include device_compat.h header for dev_xxx macros.
> 
> Changes in v3:
> - Remove doc/device-tree-bindings/clock/clock-bindings.txt.
> - Remove doc/device-tree-bindings/clock/ti,mux.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Remove doc/device-tree-bindings/clock/ti,dpll.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Remove doc/device-tree-bindings/clock/ti,autoidle.txt.
> - Remove doc/device-tree-bindings/clock/ti,divider.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Remove doc/device-tree-bindings/clock/gpio-gate-clock.txt.
> - Remove doc/device-tree-bindings/clock/ti,clockdomain.txt.
> - Remove doc/device-tree-bindings/clock/ti,gate.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Fix access to registers listed by device tree following resync of
>   am33xx-clock.dtsi with Linux 5.9-rc7.
> - Remove doc/device-tree-bindings/clock/ti,clkctrl.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - doc/device-tree-bindings/arm/omap,prcm.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Comment dm_flags field in the global_data structure.
> - Remove doc/device-tree-bindings/arm/omap,ctrl.txt.
> - Remove doc/device-tree-bindings/pinctrl/pinctrl-single.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Adds PWM_TI_EHRPWM dependency on ARCH_OMAP2PLUS in Kconfig.
> - Add error message in case of invalid address.
> - Remove doc/device-tree-bindings/pwm/ti,ehrpwm.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Move Kconfig symbol from drivers/pwm to drivers/bus.
> - Remove the domain clock reference from the pwmss nodes of the device
>   tree in am33xx.dtsi. The resync of am33xx.dtsi with Linux 5.9-rc7
>   already contains such references.
> - Remove domain clock enabling/disabling. Enabling the domain clock is
>   performed by the sysc interconnect target module driver during the pwm
>   device probing.
> - Remove doc/device-tree-bindings/pwm/ti,pwmss.txt.
> - Add to commit message the references to linux kernel dt binding
>   documentation.
> - Update the DTS lcdc node of the am335x boards because of the
>   am33xx.dtsi resynced with Linux 5.9-rc7.
> - Remove clock domain enabling/disabling.
> - Update the commit message.
> - Add clk.h header.
> - Fix an error code returned by the probe function.
> 
> Changes in v2:
> - Add the clk_ prefix to the divider functions.
> - Add kernel-doc comments to the exported functions.
> - Merged to patch [09/31] clk: ti: refactor mux and divider clock
>   drivers.
> - Remove the 'ti_am3_prcm_clocks' driver. Handle 'prcm_clocks' node in
>   the 'ti_am3_prcm' driver.
> - Update the commit message.
> - Fix a missing line in the commit message.
> - Add dm_flags to global_data structure and GD_DM_FLG_SIZE_CELLS_0 macro
>   to test without recompiling.
> - Update the OF_CHECK_COUNTS macro in order to have just one
>   #define by bringing the GD_DM_FLG_SIZE_CELLS_0 into the expression.
> - Lower-case the 0xC019 hex number.
> - Remove the 'ti_am3_scm_clocks' driver. Handle 'scm_clocks' node in
>   the 'ti_am3_scm' driver.
> - Update the commit message.
> 
> Dario Binacchi (28):
>   clk: export generic routines
>   dt-bindings: bus: ti-sysc: resync with Linux 5.9-rc7
>   bus: ti: add minimal sysc interconnect target driver
>   arm: dts: sync am33xx with Linux 5.9-rc7
>   clk: add clk_round_rate()
>   clk: ti: add mux clock driver
>   arm: ti: am33xx: add DPLL_EN_FAST_RELOCK_BYPASS macro
>   clk: ti: am33xx: add DPLL clock drivers
>   clk: ti: add divider clock driver
>   clk: ti: add gate clock driver
>   arm: dts: am335x: include am33xx-u-boot.dtsi
>   ti: am33xx: fix do_enable_clocks() to accept NULL parameters
>   clk: ti: add support for clkctrl clocks
>   clk: ti: omap4: add clock manager driver
>   arm: dts: am335x: enable prcm_clocks auto binding
>   clk: move clk-ti-sci driver to 'ti' directory
>   fdt: translate address if #size-cells = <0>
>   omap: timer: fix the rate setting
>   arm: dts: am335x: enable scm_clocks auto binding
>   pwm: ti: am33xx: add enhanced pwm driver
>   bus: ti: am33xx: add pwm subsystem driver
>   dm: core: add a function to decode display timings
>   video: omap: add panel driver
>   video: omap: drop domain clock enabling by SOC api
>   video: omap: set LCD clock rate through DM API
>   video: omap: split the legacy code from the DM code
>   video: omap: move drivers to 'ti' directory
>   board: ti: am335x-ice: get CDCE913 clock device
> 
>  arch/arm/Kconfig                           |    1 +
>  arch/arm/dts/am335x-brppt1-mmc.dts         |   17 +-
>  arch/arm/dts/am335x-brppt1-nand.dts        |   17 +-
>  arch/arm/dts/am335x-brppt1-spi.dts         |   17 +-
>  arch/arm/dts/am335x-brsmarc1.dts           |   20 +-
>  arch/arm/dts/am335x-brxre1.dts             |   21 +-
>  arch/arm/dts/am335x-chiliboard-u-boot.dtsi |    2 +
>  arch/arm/dts/am335x-draco.dtsi             |   11 +-
>  arch/arm/dts/am335x-evm-u-boot.dtsi        |   17 +-
>  arch/arm/dts/am335x-evm.dts                |    2 +-
>  arch/arm/dts/am335x-evmsk-u-boot.dtsi      |   16 +-
>  arch/arm/dts/am335x-evmsk.dts              |    2 +-
>  arch/arm/dts/am335x-guardian-u-boot.dtsi   |   25 +-
>  arch/arm/dts/am335x-icev2-u-boot.dtsi      |    3 +
>  arch/arm/dts/am335x-pdu001-u-boot.dtsi     |   20 +-
>  arch/arm/dts/am335x-pxm2.dtsi              |    2 +-
>  arch/arm/dts/am335x-pxm50-u-boot.dtsi      |   16 +-
>  arch/arm/dts/am335x-regor-rdk-u-boot.dtsi  |    2 +
>  arch/arm/dts/am335x-rut-u-boot.dtsi        |   16 +-
>  arch/arm/dts/am335x-rut.dts                |    2 +-
>  arch/arm/dts/am335x-shc-u-boot.dtsi        |    2 +
>  arch/arm/dts/am335x-shc.dts                |    2 +-
>  arch/arm/dts/am335x-wega-rdk-u-boot.dtsi   |    2 +
>  arch/arm/dts/am33xx-clocks.dtsi            |  106 +-
>  arch/arm/dts/am33xx-l4.dtsi                | 1962 ++++++++++++++++++++
>  arch/arm/dts/am33xx-u-boot.dtsi            |    8 +
>  arch/arm/dts/am33xx.dtsi                   |  721 +++----
>  arch/arm/dts/da850-evm-u-boot.dtsi         |   18 +-
>  arch/arm/include/asm/arch-am33xx/clock.h   |    1 +
>  arch/arm/mach-omap2/am33xx/clock.c         |   10 +-
>  arch/arm/mach-omap2/am33xx/clock_am33xx.c  |    2 +-
>  arch/sandbox/dts/test.dts                  |   67 +
>  arch/sandbox/include/asm/clk.h             |    9 +
>  board/ti/am335x/board.c                    |    2 +-
>  board/ti/am43xx/board.c                    |    2 +-
>  common/fdt_support.c                       |    6 +-
>  drivers/bus/Kconfig                        |   13 +
>  drivers/bus/Makefile                       |    2 +
>  drivers/bus/ti-pwmss.c                     |   21 +
>  drivers/bus/ti-sysc.c                      |  166 ++
>  drivers/clk/Kconfig                        |    9 +-
>  drivers/clk/Makefile                       |    2 +-
>  drivers/clk/clk-divider.c                  |   24 +-
>  drivers/clk/clk-uclass.c                   |   15 +
>  drivers/clk/clk_sandbox.c                  |   17 +
>  drivers/clk/clk_sandbox_test.c             |   10 +
>  drivers/clk/ti/Kconfig                     |   43 +
>  drivers/clk/ti/Makefile                    |   13 +
>  drivers/clk/ti/clk-am3-dpll-x2.c           |   79 +
>  drivers/clk/ti/clk-am3-dpll.c              |  268 +++
>  drivers/clk/ti/clk-ctrl.c                  |  154 ++
>  drivers/clk/ti/clk-divider.c               |  381 ++++
>  drivers/clk/ti/clk-gate.c                  |   93 +
>  drivers/clk/ti/clk-mux.c                   |  253 +++
>  drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} |    0
>  drivers/clk/ti/clk.c                       |   34 +
>  drivers/clk/ti/clk.h                       |   13 +
>  drivers/clk/ti/omap4-cm.c                  |   22 +
>  drivers/core/Kconfig                       |   12 +
>  drivers/core/fdtaddr.c                     |    2 +-
>  drivers/core/of_addr.c                     |   14 +-
>  drivers/core/ofnode.c                      |    7 +-
>  drivers/core/read.c                        |    6 +
>  drivers/core/root.c                        |    3 +
>  drivers/pwm/Kconfig                        |    7 +
>  drivers/pwm/Makefile                       |    1 +
>  drivers/pwm/pwm-ti-ehrpwm.c                |  468 +++++
>  drivers/timer/omap-timer.c                 |    6 +-
>  drivers/video/Kconfig                      |    5 +-
>  drivers/video/Makefile                     |    2 +-
>  drivers/video/ti/Kconfig                   |    8 +
>  drivers/video/ti/Makefile                  |   10 +
>  drivers/video/{ => ti}/am335x-fb.c         |  342 +---
>  drivers/video/{ => ti}/am335x-fb.h         |    4 -
>  drivers/video/ti/tilcdc-panel.c            |  172 ++
>  drivers/video/ti/tilcdc-panel.h            |   14 +
>  drivers/video/ti/tilcdc.c                  |  425 +++++
>  drivers/video/ti/tilcdc.h                  |   38 +
>  include/asm-generic/global_data.h          |   18 +
>  include/clk-uclass.h                       |    8 +
>  include/clk.h                              |   28 +
>  include/dm/read.h                          |   24 +
>  include/dt-bindings/bus/ti-sysc.h          |    6 +
>  include/linux/clk-provider.h               |   57 +
>  test/dm/clk.c                              |   22 +
>  test/dm/test-fdt.c                         |  149 +-
>  86 files changed, 5670 insertions(+), 969 deletions(-)
>  create mode 100644 arch/arm/dts/am33xx-l4.dtsi
>  create mode 100644 drivers/bus/ti-pwmss.c
>  create mode 100644 drivers/bus/ti-sysc.c
>  create mode 100644 drivers/clk/ti/Kconfig
>  create mode 100644 drivers/clk/ti/Makefile
>  create mode 100644 drivers/clk/ti/clk-am3-dpll-x2.c
>  create mode 100644 drivers/clk/ti/clk-am3-dpll.c
>  create mode 100644 drivers/clk/ti/clk-ctrl.c
>  create mode 100644 drivers/clk/ti/clk-divider.c
>  create mode 100644 drivers/clk/ti/clk-gate.c
>  create mode 100644 drivers/clk/ti/clk-mux.c
>  rename drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} (100%)
>  create mode 100644 drivers/clk/ti/clk.c
>  create mode 100644 drivers/clk/ti/clk.h
>  create mode 100644 drivers/clk/ti/omap4-cm.c
>  create mode 100644 drivers/pwm/pwm-ti-ehrpwm.c
>  create mode 100644 drivers/video/ti/Kconfig
>  create mode 100644 drivers/video/ti/Makefile
>  rename drivers/video/{ => ti}/am335x-fb.c (54%)
>  rename drivers/video/{ => ti}/am335x-fb.h (97%)
>  create mode 100644 drivers/video/ti/tilcdc-panel.c
>  create mode 100644 drivers/video/ti/tilcdc-panel.h
>  create mode 100644 drivers/video/ti/tilcdc.c
>  create mode 100644 drivers/video/ti/tilcdc.h
>
Dario Binacchi Dec. 22, 2020, 6:30 p.m. UTC | #2
Hi Lokesh,

> Il 22/12/2020 14:52 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
> 
>  
> Hi Dario,
> 
> On 22/11/20 9:41 pm, Dario Binacchi wrote:
> > 
> > The series was born from the need to manage the PWM backlight of the
> > display connected to my beaglebone board. To hit the target, I had to
> > develop drivers for PWM management which in turn relied on drivers for
> > managing timers and clocks, all developed according to the driver model.
> > My intention was to use the SoC-specific API only at strictly necessary
> > points in the code. My previous patches for migrating the AM335x display
> > driver to the driver model had required the implementation of additional
> > functions outside the concerns of the driver, (settings for dividing the
> > pixel clock rate, configuring the display DPLL rate, ....) not being
> > able to use the API of the related clock drivers. This series shouldn't
> > have repeated the same kind of mistake. Furthermore, I also wanted to fix
> > that kind of forced choice. Almost everything should have been accessible
> > via the driver model API. In the series there are also some patches that
> > could be submitted separately, but which I have however inserted to avoid
> > applying future patches to incorporate them.
> > With this last consideration, I hope I have convincingly justified the
> > large number of patches in the series.
> > 
> > The patch enabling address translation into a CPU physical address from
> > device-tree even in case of crossing levels with #size-cells = <0>, is
> > crucial for the series. The previous implementation was unable to
> > perform the address translation required by the am33xx device tree.
> > I tried to apply in a conservative way as few changes as possible and
> > to verify the execution of all the tests already developed, as well as
> > the new ones I added for the new feature.
> > 
> > The patch series can be cleanly applied to the HEAD of the master which
> > at the time of release points to 12e396303c commit.
> 
> Are we waiting for any other reviews? TI part looks good to me.

Everything is reviewed. There are no pending reviews.

> If everything else is reviewed, Ill merge the series.
> 

Do you need the series to be rebased on master? 
I uploaded it just a month ago

> Please CC me for all the series next time else it is difficult for me to track
> the comments
> 

Ok, I will do it.

Thanks and regards,
Dario

> Thanks and regards,
> Lokesh
> 
> > 
> > Changes in v6:
> > - Remove the 'am3-prcm' driver.
> > - Add the 'simple-bus' compatible string to the prcm_clocks node.
> > - Remove the 'am3-scm' driver.
> > - Add the 'simple-bus' compatible string to the scm_clocks node.
> > 
> > Changes in v5:
> > - Create drivers/clk/ti directory.
> > - Move the clk-ti-mux.c file to drivers/clk/ti and rename it clk-mux.c
> > - Move the clk-ti-am3-dpll.c file to drivers/clk/ti with the name
> >   clk-am3-dpll.c.
> > - Move the clk-ti-am3-dpll-x2.c file to drivers/clk/ti with the name
> >   clk-am3-dpll-x2.c.
> > - Move the clk-ti.c file to drivers/clk/ti with the name clk.c.
> > - Move the clk-ti.h file to drivers/clk/ti with the name clk.h.
> > - Move the clk-ti-divider.c file to drivers/clk/ti with the name
> >   clk-divider.c.
> > - Move the clk-ti-gate.c file to drivers/clk/ti with the name
> >   clk-gate.c.
> > - Move the clk-ti-ctrl.c file to drivers/clk/ti with the name
> >   clk-ctrl.c.
> > 
> > Changes in v4:
> > - Include device_compat.h header for dev_xxx macros.
> > - Remove a blank line at end of file arch/arm/dts/am33xx-l4.dtsi.
> > - Update clk_round_rate description.
> > - Add Sean Anderson review.
> > - Include device_compat.h header for dev_xxx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Fix compilation errors on the dev parameter of the dev_xx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Fix compilation errors on the dev parameter of the dev_xx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Fix compilation errors on the dev parameter of the dev_xx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Add Sphinx documentation for dm_flags.
> > - Convert GD_DM_FLG_* to enum.
> > - Include device_compat.h header in test/dm/test-fdt.c for dev_xxx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Include device_compat.h header for dev_xxx macros.
> > - Add Simon Glass review.
> > - Include device_compat.h header for dev_xxx macros.
> > 
> > Changes in v3:
> > - Remove doc/device-tree-bindings/clock/clock-bindings.txt.
> > - Remove doc/device-tree-bindings/clock/ti,mux.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Remove doc/device-tree-bindings/clock/ti,dpll.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Remove doc/device-tree-bindings/clock/ti,autoidle.txt.
> > - Remove doc/device-tree-bindings/clock/ti,divider.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Remove doc/device-tree-bindings/clock/gpio-gate-clock.txt.
> > - Remove doc/device-tree-bindings/clock/ti,clockdomain.txt.
> > - Remove doc/device-tree-bindings/clock/ti,gate.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Fix access to registers listed by device tree following resync of
> >   am33xx-clock.dtsi with Linux 5.9-rc7.
> > - Remove doc/device-tree-bindings/clock/ti,clkctrl.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - doc/device-tree-bindings/arm/omap,prcm.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Comment dm_flags field in the global_data structure.
> > - Remove doc/device-tree-bindings/arm/omap,ctrl.txt.
> > - Remove doc/device-tree-bindings/pinctrl/pinctrl-single.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Adds PWM_TI_EHRPWM dependency on ARCH_OMAP2PLUS in Kconfig.
> > - Add error message in case of invalid address.
> > - Remove doc/device-tree-bindings/pwm/ti,ehrpwm.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Move Kconfig symbol from drivers/pwm to drivers/bus.
> > - Remove the domain clock reference from the pwmss nodes of the device
> >   tree in am33xx.dtsi. The resync of am33xx.dtsi with Linux 5.9-rc7
> >   already contains such references.
> > - Remove domain clock enabling/disabling. Enabling the domain clock is
> >   performed by the sysc interconnect target module driver during the pwm
> >   device probing.
> > - Remove doc/device-tree-bindings/pwm/ti,pwmss.txt.
> > - Add to commit message the references to linux kernel dt binding
> >   documentation.
> > - Update the DTS lcdc node of the am335x boards because of the
> >   am33xx.dtsi resynced with Linux 5.9-rc7.
> > - Remove clock domain enabling/disabling.
> > - Update the commit message.
> > - Add clk.h header.
> > - Fix an error code returned by the probe function.
> > 
> > Changes in v2:
> > - Add the clk_ prefix to the divider functions.
> > - Add kernel-doc comments to the exported functions.
> > - Merged to patch [09/31] clk: ti: refactor mux and divider clock
> >   drivers.
> > - Remove the 'ti_am3_prcm_clocks' driver. Handle 'prcm_clocks' node in
> >   the 'ti_am3_prcm' driver.
> > - Update the commit message.
> > - Fix a missing line in the commit message.
> > - Add dm_flags to global_data structure and GD_DM_FLG_SIZE_CELLS_0 macro
> >   to test without recompiling.
> > - Update the OF_CHECK_COUNTS macro in order to have just one
> >   #define by bringing the GD_DM_FLG_SIZE_CELLS_0 into the expression.
> > - Lower-case the 0xC019 hex number.
> > - Remove the 'ti_am3_scm_clocks' driver. Handle 'scm_clocks' node in
> >   the 'ti_am3_scm' driver.
> > - Update the commit message.
> > 
> > Dario Binacchi (28):
> >   clk: export generic routines
> >   dt-bindings: bus: ti-sysc: resync with Linux 5.9-rc7
> >   bus: ti: add minimal sysc interconnect target driver
> >   arm: dts: sync am33xx with Linux 5.9-rc7
> >   clk: add clk_round_rate()
> >   clk: ti: add mux clock driver
> >   arm: ti: am33xx: add DPLL_EN_FAST_RELOCK_BYPASS macro
> >   clk: ti: am33xx: add DPLL clock drivers
> >   clk: ti: add divider clock driver
> >   clk: ti: add gate clock driver
> >   arm: dts: am335x: include am33xx-u-boot.dtsi
> >   ti: am33xx: fix do_enable_clocks() to accept NULL parameters
> >   clk: ti: add support for clkctrl clocks
> >   clk: ti: omap4: add clock manager driver
> >   arm: dts: am335x: enable prcm_clocks auto binding
> >   clk: move clk-ti-sci driver to 'ti' directory
> >   fdt: translate address if #size-cells = <0>
> >   omap: timer: fix the rate setting
> >   arm: dts: am335x: enable scm_clocks auto binding
> >   pwm: ti: am33xx: add enhanced pwm driver
> >   bus: ti: am33xx: add pwm subsystem driver
> >   dm: core: add a function to decode display timings
> >   video: omap: add panel driver
> >   video: omap: drop domain clock enabling by SOC api
> >   video: omap: set LCD clock rate through DM API
> >   video: omap: split the legacy code from the DM code
> >   video: omap: move drivers to 'ti' directory
> >   board: ti: am335x-ice: get CDCE913 clock device
> > 
> >  arch/arm/Kconfig                           |    1 +
> >  arch/arm/dts/am335x-brppt1-mmc.dts         |   17 +-
> >  arch/arm/dts/am335x-brppt1-nand.dts        |   17 +-
> >  arch/arm/dts/am335x-brppt1-spi.dts         |   17 +-
> >  arch/arm/dts/am335x-brsmarc1.dts           |   20 +-
> >  arch/arm/dts/am335x-brxre1.dts             |   21 +-
> >  arch/arm/dts/am335x-chiliboard-u-boot.dtsi |    2 +
> >  arch/arm/dts/am335x-draco.dtsi             |   11 +-
> >  arch/arm/dts/am335x-evm-u-boot.dtsi        |   17 +-
> >  arch/arm/dts/am335x-evm.dts                |    2 +-
> >  arch/arm/dts/am335x-evmsk-u-boot.dtsi      |   16 +-
> >  arch/arm/dts/am335x-evmsk.dts              |    2 +-
> >  arch/arm/dts/am335x-guardian-u-boot.dtsi   |   25 +-
> >  arch/arm/dts/am335x-icev2-u-boot.dtsi      |    3 +
> >  arch/arm/dts/am335x-pdu001-u-boot.dtsi     |   20 +-
> >  arch/arm/dts/am335x-pxm2.dtsi              |    2 +-
> >  arch/arm/dts/am335x-pxm50-u-boot.dtsi      |   16 +-
> >  arch/arm/dts/am335x-regor-rdk-u-boot.dtsi  |    2 +
> >  arch/arm/dts/am335x-rut-u-boot.dtsi        |   16 +-
> >  arch/arm/dts/am335x-rut.dts                |    2 +-
> >  arch/arm/dts/am335x-shc-u-boot.dtsi        |    2 +
> >  arch/arm/dts/am335x-shc.dts                |    2 +-
> >  arch/arm/dts/am335x-wega-rdk-u-boot.dtsi   |    2 +
> >  arch/arm/dts/am33xx-clocks.dtsi            |  106 +-
> >  arch/arm/dts/am33xx-l4.dtsi                | 1962 ++++++++++++++++++++
> >  arch/arm/dts/am33xx-u-boot.dtsi            |    8 +
> >  arch/arm/dts/am33xx.dtsi                   |  721 +++----
> >  arch/arm/dts/da850-evm-u-boot.dtsi         |   18 +-
> >  arch/arm/include/asm/arch-am33xx/clock.h   |    1 +
> >  arch/arm/mach-omap2/am33xx/clock.c         |   10 +-
> >  arch/arm/mach-omap2/am33xx/clock_am33xx.c  |    2 +-
> >  arch/sandbox/dts/test.dts                  |   67 +
> >  arch/sandbox/include/asm/clk.h             |    9 +
> >  board/ti/am335x/board.c                    |    2 +-
> >  board/ti/am43xx/board.c                    |    2 +-
> >  common/fdt_support.c                       |    6 +-
> >  drivers/bus/Kconfig                        |   13 +
> >  drivers/bus/Makefile                       |    2 +
> >  drivers/bus/ti-pwmss.c                     |   21 +
> >  drivers/bus/ti-sysc.c                      |  166 ++
> >  drivers/clk/Kconfig                        |    9 +-
> >  drivers/clk/Makefile                       |    2 +-
> >  drivers/clk/clk-divider.c                  |   24 +-
> >  drivers/clk/clk-uclass.c                   |   15 +
> >  drivers/clk/clk_sandbox.c                  |   17 +
> >  drivers/clk/clk_sandbox_test.c             |   10 +
> >  drivers/clk/ti/Kconfig                     |   43 +
> >  drivers/clk/ti/Makefile                    |   13 +
> >  drivers/clk/ti/clk-am3-dpll-x2.c           |   79 +
> >  drivers/clk/ti/clk-am3-dpll.c              |  268 +++
> >  drivers/clk/ti/clk-ctrl.c                  |  154 ++
> >  drivers/clk/ti/clk-divider.c               |  381 ++++
> >  drivers/clk/ti/clk-gate.c                  |   93 +
> >  drivers/clk/ti/clk-mux.c                   |  253 +++
> >  drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} |    0
> >  drivers/clk/ti/clk.c                       |   34 +
> >  drivers/clk/ti/clk.h                       |   13 +
> >  drivers/clk/ti/omap4-cm.c                  |   22 +
> >  drivers/core/Kconfig                       |   12 +
> >  drivers/core/fdtaddr.c                     |    2 +-
> >  drivers/core/of_addr.c                     |   14 +-
> >  drivers/core/ofnode.c                      |    7 +-
> >  drivers/core/read.c                        |    6 +
> >  drivers/core/root.c                        |    3 +
> >  drivers/pwm/Kconfig                        |    7 +
> >  drivers/pwm/Makefile                       |    1 +
> >  drivers/pwm/pwm-ti-ehrpwm.c                |  468 +++++
> >  drivers/timer/omap-timer.c                 |    6 +-
> >  drivers/video/Kconfig                      |    5 +-
> >  drivers/video/Makefile                     |    2 +-
> >  drivers/video/ti/Kconfig                   |    8 +
> >  drivers/video/ti/Makefile                  |   10 +
> >  drivers/video/{ => ti}/am335x-fb.c         |  342 +---
> >  drivers/video/{ => ti}/am335x-fb.h         |    4 -
> >  drivers/video/ti/tilcdc-panel.c            |  172 ++
> >  drivers/video/ti/tilcdc-panel.h            |   14 +
> >  drivers/video/ti/tilcdc.c                  |  425 +++++
> >  drivers/video/ti/tilcdc.h                  |   38 +
> >  include/asm-generic/global_data.h          |   18 +
> >  include/clk-uclass.h                       |    8 +
> >  include/clk.h                              |   28 +
> >  include/dm/read.h                          |   24 +
> >  include/dt-bindings/bus/ti-sysc.h          |    6 +
> >  include/linux/clk-provider.h               |   57 +
> >  test/dm/clk.c                              |   22 +
> >  test/dm/test-fdt.c                         |  149 +-
> >  86 files changed, 5670 insertions(+), 969 deletions(-)
> >  create mode 100644 arch/arm/dts/am33xx-l4.dtsi
> >  create mode 100644 drivers/bus/ti-pwmss.c
> >  create mode 100644 drivers/bus/ti-sysc.c
> >  create mode 100644 drivers/clk/ti/Kconfig
> >  create mode 100644 drivers/clk/ti/Makefile
> >  create mode 100644 drivers/clk/ti/clk-am3-dpll-x2.c
> >  create mode 100644 drivers/clk/ti/clk-am3-dpll.c
> >  create mode 100644 drivers/clk/ti/clk-ctrl.c
> >  create mode 100644 drivers/clk/ti/clk-divider.c
> >  create mode 100644 drivers/clk/ti/clk-gate.c
> >  create mode 100644 drivers/clk/ti/clk-mux.c
> >  rename drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} (100%)
> >  create mode 100644 drivers/clk/ti/clk.c
> >  create mode 100644 drivers/clk/ti/clk.h
> >  create mode 100644 drivers/clk/ti/omap4-cm.c
> >  create mode 100644 drivers/pwm/pwm-ti-ehrpwm.c
> >  create mode 100644 drivers/video/ti/Kconfig
> >  create mode 100644 drivers/video/ti/Makefile
> >  rename drivers/video/{ => ti}/am335x-fb.c (54%)
> >  rename drivers/video/{ => ti}/am335x-fb.h (97%)
> >  create mode 100644 drivers/video/ti/tilcdc-panel.c
> >  create mode 100644 drivers/video/ti/tilcdc-panel.h
> >  create mode 100644 drivers/video/ti/tilcdc.c
> >  create mode 100644 drivers/video/ti/tilcdc.h
> >
Lokesh Vutla Dec. 23, 2020, 7:57 a.m. UTC | #3
On 23/12/20 12:00 am, Dario Binacchi wrote:
> Hi Lokesh,
> 
>> Il 22/12/2020 14:52 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
>>
>>  
>> Hi Dario,
>>
>> On 22/11/20 9:41 pm, Dario Binacchi wrote:
>>>
>>> The series was born from the need to manage the PWM backlight of the
>>> display connected to my beaglebone board. To hit the target, I had to
>>> develop drivers for PWM management which in turn relied on drivers for
>>> managing timers and clocks, all developed according to the driver model.
>>> My intention was to use the SoC-specific API only at strictly necessary
>>> points in the code. My previous patches for migrating the AM335x display
>>> driver to the driver model had required the implementation of additional
>>> functions outside the concerns of the driver, (settings for dividing the
>>> pixel clock rate, configuring the display DPLL rate, ....) not being
>>> able to use the API of the related clock drivers. This series shouldn't
>>> have repeated the same kind of mistake. Furthermore, I also wanted to fix
>>> that kind of forced choice. Almost everything should have been accessible
>>> via the driver model API. In the series there are also some patches that
>>> could be submitted separately, but which I have however inserted to avoid
>>> applying future patches to incorporate them.
>>> With this last consideration, I hope I have convincingly justified the
>>> large number of patches in the series.
>>>
>>> The patch enabling address translation into a CPU physical address from
>>> device-tree even in case of crossing levels with #size-cells = <0>, is
>>> crucial for the series. The previous implementation was unable to
>>> perform the address translation required by the am33xx device tree.
>>> I tried to apply in a conservative way as few changes as possible and
>>> to verify the execution of all the tests already developed, as well as
>>> the new ones I added for the new feature.
>>>
>>> The patch series can be cleanly applied to the HEAD of the master which
>>> at the time of release points to 12e396303c commit.
>>
>> Are we waiting for any other reviews? TI part looks good to me.
> 
> Everything is reviewed. There are no pending reviews.
> 
>> If everything else is reviewed, Ill merge the series.
>>
> 
> Do you need the series to be rebased on master? 
> I uploaded it just a month ago

This series is causing build error for powerpc platforms. Can you take a look?
https://gitlab.denx.de/u-boot/custodians/u-boot-ti/-/jobs/193065

Thanks and regards,
Lokesh

> 
>> Please CC me for all the series next time else it is difficult for me to track
>> the comments
>>
> 
> Ok, I will do it.
> 
> Thanks and regards,
> Dario
> 
>> Thanks and regards,
>> Lokesh
>>
>>>
>>> Changes in v6:
>>> - Remove the 'am3-prcm' driver.
>>> - Add the 'simple-bus' compatible string to the prcm_clocks node.
>>> - Remove the 'am3-scm' driver.
>>> - Add the 'simple-bus' compatible string to the scm_clocks node.
>>>
>>> Changes in v5:
>>> - Create drivers/clk/ti directory.
>>> - Move the clk-ti-mux.c file to drivers/clk/ti and rename it clk-mux.c
>>> - Move the clk-ti-am3-dpll.c file to drivers/clk/ti with the name
>>>   clk-am3-dpll.c.
>>> - Move the clk-ti-am3-dpll-x2.c file to drivers/clk/ti with the name
>>>   clk-am3-dpll-x2.c.
>>> - Move the clk-ti.c file to drivers/clk/ti with the name clk.c.
>>> - Move the clk-ti.h file to drivers/clk/ti with the name clk.h.
>>> - Move the clk-ti-divider.c file to drivers/clk/ti with the name
>>>   clk-divider.c.
>>> - Move the clk-ti-gate.c file to drivers/clk/ti with the name
>>>   clk-gate.c.
>>> - Move the clk-ti-ctrl.c file to drivers/clk/ti with the name
>>>   clk-ctrl.c.
>>>
>>> Changes in v4:
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Remove a blank line at end of file arch/arm/dts/am33xx-l4.dtsi.
>>> - Update clk_round_rate description.
>>> - Add Sean Anderson review.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Fix compilation errors on the dev parameter of the dev_xx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Fix compilation errors on the dev parameter of the dev_xx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Fix compilation errors on the dev parameter of the dev_xx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Add Sphinx documentation for dm_flags.
>>> - Convert GD_DM_FLG_* to enum.
>>> - Include device_compat.h header in test/dm/test-fdt.c for dev_xxx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Include device_compat.h header for dev_xxx macros.
>>> - Add Simon Glass review.
>>> - Include device_compat.h header for dev_xxx macros.
>>>
>>> Changes in v3:
>>> - Remove doc/device-tree-bindings/clock/clock-bindings.txt.
>>> - Remove doc/device-tree-bindings/clock/ti,mux.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Remove doc/device-tree-bindings/clock/ti,dpll.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Remove doc/device-tree-bindings/clock/ti,autoidle.txt.
>>> - Remove doc/device-tree-bindings/clock/ti,divider.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Remove doc/device-tree-bindings/clock/gpio-gate-clock.txt.
>>> - Remove doc/device-tree-bindings/clock/ti,clockdomain.txt.
>>> - Remove doc/device-tree-bindings/clock/ti,gate.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Fix access to registers listed by device tree following resync of
>>>   am33xx-clock.dtsi with Linux 5.9-rc7.
>>> - Remove doc/device-tree-bindings/clock/ti,clkctrl.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - doc/device-tree-bindings/arm/omap,prcm.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Comment dm_flags field in the global_data structure.
>>> - Remove doc/device-tree-bindings/arm/omap,ctrl.txt.
>>> - Remove doc/device-tree-bindings/pinctrl/pinctrl-single.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Adds PWM_TI_EHRPWM dependency on ARCH_OMAP2PLUS in Kconfig.
>>> - Add error message in case of invalid address.
>>> - Remove doc/device-tree-bindings/pwm/ti,ehrpwm.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Move Kconfig symbol from drivers/pwm to drivers/bus.
>>> - Remove the domain clock reference from the pwmss nodes of the device
>>>   tree in am33xx.dtsi. The resync of am33xx.dtsi with Linux 5.9-rc7
>>>   already contains such references.
>>> - Remove domain clock enabling/disabling. Enabling the domain clock is
>>>   performed by the sysc interconnect target module driver during the pwm
>>>   device probing.
>>> - Remove doc/device-tree-bindings/pwm/ti,pwmss.txt.
>>> - Add to commit message the references to linux kernel dt binding
>>>   documentation.
>>> - Update the DTS lcdc node of the am335x boards because of the
>>>   am33xx.dtsi resynced with Linux 5.9-rc7.
>>> - Remove clock domain enabling/disabling.
>>> - Update the commit message.
>>> - Add clk.h header.
>>> - Fix an error code returned by the probe function.
>>>
>>> Changes in v2:
>>> - Add the clk_ prefix to the divider functions.
>>> - Add kernel-doc comments to the exported functions.
>>> - Merged to patch [09/31] clk: ti: refactor mux and divider clock
>>>   drivers.
>>> - Remove the 'ti_am3_prcm_clocks' driver. Handle 'prcm_clocks' node in
>>>   the 'ti_am3_prcm' driver.
>>> - Update the commit message.
>>> - Fix a missing line in the commit message.
>>> - Add dm_flags to global_data structure and GD_DM_FLG_SIZE_CELLS_0 macro
>>>   to test without recompiling.
>>> - Update the OF_CHECK_COUNTS macro in order to have just one
>>>   #define by bringing the GD_DM_FLG_SIZE_CELLS_0 into the expression.
>>> - Lower-case the 0xC019 hex number.
>>> - Remove the 'ti_am3_scm_clocks' driver. Handle 'scm_clocks' node in
>>>   the 'ti_am3_scm' driver.
>>> - Update the commit message.
>>>
>>> Dario Binacchi (28):
>>>   clk: export generic routines
>>>   dt-bindings: bus: ti-sysc: resync with Linux 5.9-rc7
>>>   bus: ti: add minimal sysc interconnect target driver
>>>   arm: dts: sync am33xx with Linux 5.9-rc7
>>>   clk: add clk_round_rate()
>>>   clk: ti: add mux clock driver
>>>   arm: ti: am33xx: add DPLL_EN_FAST_RELOCK_BYPASS macro
>>>   clk: ti: am33xx: add DPLL clock drivers
>>>   clk: ti: add divider clock driver
>>>   clk: ti: add gate clock driver
>>>   arm: dts: am335x: include am33xx-u-boot.dtsi
>>>   ti: am33xx: fix do_enable_clocks() to accept NULL parameters
>>>   clk: ti: add support for clkctrl clocks
>>>   clk: ti: omap4: add clock manager driver
>>>   arm: dts: am335x: enable prcm_clocks auto binding
>>>   clk: move clk-ti-sci driver to 'ti' directory
>>>   fdt: translate address if #size-cells = <0>
>>>   omap: timer: fix the rate setting
>>>   arm: dts: am335x: enable scm_clocks auto binding
>>>   pwm: ti: am33xx: add enhanced pwm driver
>>>   bus: ti: am33xx: add pwm subsystem driver
>>>   dm: core: add a function to decode display timings
>>>   video: omap: add panel driver
>>>   video: omap: drop domain clock enabling by SOC api
>>>   video: omap: set LCD clock rate through DM API
>>>   video: omap: split the legacy code from the DM code
>>>   video: omap: move drivers to 'ti' directory
>>>   board: ti: am335x-ice: get CDCE913 clock device
>>>
>>>  arch/arm/Kconfig                           |    1 +
>>>  arch/arm/dts/am335x-brppt1-mmc.dts         |   17 +-
>>>  arch/arm/dts/am335x-brppt1-nand.dts        |   17 +-
>>>  arch/arm/dts/am335x-brppt1-spi.dts         |   17 +-
>>>  arch/arm/dts/am335x-brsmarc1.dts           |   20 +-
>>>  arch/arm/dts/am335x-brxre1.dts             |   21 +-
>>>  arch/arm/dts/am335x-chiliboard-u-boot.dtsi |    2 +
>>>  arch/arm/dts/am335x-draco.dtsi             |   11 +-
>>>  arch/arm/dts/am335x-evm-u-boot.dtsi        |   17 +-
>>>  arch/arm/dts/am335x-evm.dts                |    2 +-
>>>  arch/arm/dts/am335x-evmsk-u-boot.dtsi      |   16 +-
>>>  arch/arm/dts/am335x-evmsk.dts              |    2 +-
>>>  arch/arm/dts/am335x-guardian-u-boot.dtsi   |   25 +-
>>>  arch/arm/dts/am335x-icev2-u-boot.dtsi      |    3 +
>>>  arch/arm/dts/am335x-pdu001-u-boot.dtsi     |   20 +-
>>>  arch/arm/dts/am335x-pxm2.dtsi              |    2 +-
>>>  arch/arm/dts/am335x-pxm50-u-boot.dtsi      |   16 +-
>>>  arch/arm/dts/am335x-regor-rdk-u-boot.dtsi  |    2 +
>>>  arch/arm/dts/am335x-rut-u-boot.dtsi        |   16 +-
>>>  arch/arm/dts/am335x-rut.dts                |    2 +-
>>>  arch/arm/dts/am335x-shc-u-boot.dtsi        |    2 +
>>>  arch/arm/dts/am335x-shc.dts                |    2 +-
>>>  arch/arm/dts/am335x-wega-rdk-u-boot.dtsi   |    2 +
>>>  arch/arm/dts/am33xx-clocks.dtsi            |  106 +-
>>>  arch/arm/dts/am33xx-l4.dtsi                | 1962 ++++++++++++++++++++
>>>  arch/arm/dts/am33xx-u-boot.dtsi            |    8 +
>>>  arch/arm/dts/am33xx.dtsi                   |  721 +++----
>>>  arch/arm/dts/da850-evm-u-boot.dtsi         |   18 +-
>>>  arch/arm/include/asm/arch-am33xx/clock.h   |    1 +
>>>  arch/arm/mach-omap2/am33xx/clock.c         |   10 +-
>>>  arch/arm/mach-omap2/am33xx/clock_am33xx.c  |    2 +-
>>>  arch/sandbox/dts/test.dts                  |   67 +
>>>  arch/sandbox/include/asm/clk.h             |    9 +
>>>  board/ti/am335x/board.c                    |    2 +-
>>>  board/ti/am43xx/board.c                    |    2 +-
>>>  common/fdt_support.c                       |    6 +-
>>>  drivers/bus/Kconfig                        |   13 +
>>>  drivers/bus/Makefile                       |    2 +
>>>  drivers/bus/ti-pwmss.c                     |   21 +
>>>  drivers/bus/ti-sysc.c                      |  166 ++
>>>  drivers/clk/Kconfig                        |    9 +-
>>>  drivers/clk/Makefile                       |    2 +-
>>>  drivers/clk/clk-divider.c                  |   24 +-
>>>  drivers/clk/clk-uclass.c                   |   15 +
>>>  drivers/clk/clk_sandbox.c                  |   17 +
>>>  drivers/clk/clk_sandbox_test.c             |   10 +
>>>  drivers/clk/ti/Kconfig                     |   43 +
>>>  drivers/clk/ti/Makefile                    |   13 +
>>>  drivers/clk/ti/clk-am3-dpll-x2.c           |   79 +
>>>  drivers/clk/ti/clk-am3-dpll.c              |  268 +++
>>>  drivers/clk/ti/clk-ctrl.c                  |  154 ++
>>>  drivers/clk/ti/clk-divider.c               |  381 ++++
>>>  drivers/clk/ti/clk-gate.c                  |   93 +
>>>  drivers/clk/ti/clk-mux.c                   |  253 +++
>>>  drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} |    0
>>>  drivers/clk/ti/clk.c                       |   34 +
>>>  drivers/clk/ti/clk.h                       |   13 +
>>>  drivers/clk/ti/omap4-cm.c                  |   22 +
>>>  drivers/core/Kconfig                       |   12 +
>>>  drivers/core/fdtaddr.c                     |    2 +-
>>>  drivers/core/of_addr.c                     |   14 +-
>>>  drivers/core/ofnode.c                      |    7 +-
>>>  drivers/core/read.c                        |    6 +
>>>  drivers/core/root.c                        |    3 +
>>>  drivers/pwm/Kconfig                        |    7 +
>>>  drivers/pwm/Makefile                       |    1 +
>>>  drivers/pwm/pwm-ti-ehrpwm.c                |  468 +++++
>>>  drivers/timer/omap-timer.c                 |    6 +-
>>>  drivers/video/Kconfig                      |    5 +-
>>>  drivers/video/Makefile                     |    2 +-
>>>  drivers/video/ti/Kconfig                   |    8 +
>>>  drivers/video/ti/Makefile                  |   10 +
>>>  drivers/video/{ => ti}/am335x-fb.c         |  342 +---
>>>  drivers/video/{ => ti}/am335x-fb.h         |    4 -
>>>  drivers/video/ti/tilcdc-panel.c            |  172 ++
>>>  drivers/video/ti/tilcdc-panel.h            |   14 +
>>>  drivers/video/ti/tilcdc.c                  |  425 +++++
>>>  drivers/video/ti/tilcdc.h                  |   38 +
>>>  include/asm-generic/global_data.h          |   18 +
>>>  include/clk-uclass.h                       |    8 +
>>>  include/clk.h                              |   28 +
>>>  include/dm/read.h                          |   24 +
>>>  include/dt-bindings/bus/ti-sysc.h          |    6 +
>>>  include/linux/clk-provider.h               |   57 +
>>>  test/dm/clk.c                              |   22 +
>>>  test/dm/test-fdt.c                         |  149 +-
>>>  86 files changed, 5670 insertions(+), 969 deletions(-)
>>>  create mode 100644 arch/arm/dts/am33xx-l4.dtsi
>>>  create mode 100644 drivers/bus/ti-pwmss.c
>>>  create mode 100644 drivers/bus/ti-sysc.c
>>>  create mode 100644 drivers/clk/ti/Kconfig
>>>  create mode 100644 drivers/clk/ti/Makefile
>>>  create mode 100644 drivers/clk/ti/clk-am3-dpll-x2.c
>>>  create mode 100644 drivers/clk/ti/clk-am3-dpll.c
>>>  create mode 100644 drivers/clk/ti/clk-ctrl.c
>>>  create mode 100644 drivers/clk/ti/clk-divider.c
>>>  create mode 100644 drivers/clk/ti/clk-gate.c
>>>  create mode 100644 drivers/clk/ti/clk-mux.c
>>>  rename drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} (100%)
>>>  create mode 100644 drivers/clk/ti/clk.c
>>>  create mode 100644 drivers/clk/ti/clk.h
>>>  create mode 100644 drivers/clk/ti/omap4-cm.c
>>>  create mode 100644 drivers/pwm/pwm-ti-ehrpwm.c
>>>  create mode 100644 drivers/video/ti/Kconfig
>>>  create mode 100644 drivers/video/ti/Makefile
>>>  rename drivers/video/{ => ti}/am335x-fb.c (54%)
>>>  rename drivers/video/{ => ti}/am335x-fb.h (97%)
>>>  create mode 100644 drivers/video/ti/tilcdc-panel.c
>>>  create mode 100644 drivers/video/ti/tilcdc-panel.h
>>>  create mode 100644 drivers/video/ti/tilcdc.c
>>>  create mode 100644 drivers/video/ti/tilcdc.h
>>>
Dario Binacchi Dec. 23, 2020, 8:50 a.m. UTC | #4
Hi Lokesh,

> Il 23/12/2020 08:57 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
> 
>  
> On 23/12/20 12:00 am, Dario Binacchi wrote:
> > Hi Lokesh,
> > 
> >> Il 22/12/2020 14:52 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
> >>
> >>  
> >> Hi Dario,
> >>
> >> On 22/11/20 9:41 pm, Dario Binacchi wrote:
> >>>
> >>> The series was born from the need to manage the PWM backlight of the
> >>> display connected to my beaglebone board. To hit the target, I had to
> >>> develop drivers for PWM management which in turn relied on drivers for
> >>> managing timers and clocks, all developed according to the driver model.
> >>> My intention was to use the SoC-specific API only at strictly necessary
> >>> points in the code. My previous patches for migrating the AM335x display
> >>> driver to the driver model had required the implementation of additional
> >>> functions outside the concerns of the driver, (settings for dividing the
> >>> pixel clock rate, configuring the display DPLL rate, ....) not being
> >>> able to use the API of the related clock drivers. This series shouldn't
> >>> have repeated the same kind of mistake. Furthermore, I also wanted to fix
> >>> that kind of forced choice. Almost everything should have been accessible
> >>> via the driver model API. In the series there are also some patches that
> >>> could be submitted separately, but which I have however inserted to avoid
> >>> applying future patches to incorporate them.
> >>> With this last consideration, I hope I have convincingly justified the
> >>> large number of patches in the series.
> >>>
> >>> The patch enabling address translation into a CPU physical address from
> >>> device-tree even in case of crossing levels with #size-cells = <0>, is
> >>> crucial for the series. The previous implementation was unable to
> >>> perform the address translation required by the am33xx device tree.
> >>> I tried to apply in a conservative way as few changes as possible and
> >>> to verify the execution of all the tests already developed, as well as
> >>> the new ones I added for the new feature.
> >>>
> >>> The patch series can be cleanly applied to the HEAD of the master which
> >>> at the time of release points to 12e396303c commit.
> >>
> >> Are we waiting for any other reviews? TI part looks good to me.
> > 
> > Everything is reviewed. There are no pending reviews.
> > 
> >> If everything else is reviewed, Ill merge the series.
> >>
> > 
> > Do you need the series to be rebased on master? 
> > I uploaded it just a month ago
> 
> This series is causing build error for powerpc platforms. Can you take a look?
> https://gitlab.denx.de/u-boot/custodians/u-boot-ti/-/jobs/193065
> 

I think CONFIG_DM is not enabled, so dm_flags is not added in 'struct global_data' by
the C preprocessor. 
Moving dm_flags out of '#ifdef CONFIG_DM' in 'struct global_data', would fix the error
but I don't think that's the right way. I think it is more correct to consider 
dm_flags only when CONFIG_DM is enabled.

Thanks and regards,
Dario

> Thanks and regards,
> Lokesh
> 
> > 
> >> Please CC me for all the series next time else it is difficult for me to track
> >> the comments
> >>
> > 
> > Ok, I will do it.
> > 
> > Thanks and regards,
> > Dario
> > 
> >> Thanks and regards,
> >> Lokesh
> >>
> >>>
> >>> Changes in v6:
> >>> - Remove the 'am3-prcm' driver.
> >>> - Add the 'simple-bus' compatible string to the prcm_clocks node.
> >>> - Remove the 'am3-scm' driver.
> >>> - Add the 'simple-bus' compatible string to the scm_clocks node.
> >>>
> >>> Changes in v5:
> >>> - Create drivers/clk/ti directory.
> >>> - Move the clk-ti-mux.c file to drivers/clk/ti and rename it clk-mux.c
> >>> - Move the clk-ti-am3-dpll.c file to drivers/clk/ti with the name
> >>>   clk-am3-dpll.c.
> >>> - Move the clk-ti-am3-dpll-x2.c file to drivers/clk/ti with the name
> >>>   clk-am3-dpll-x2.c.
> >>> - Move the clk-ti.c file to drivers/clk/ti with the name clk.c.
> >>> - Move the clk-ti.h file to drivers/clk/ti with the name clk.h.
> >>> - Move the clk-ti-divider.c file to drivers/clk/ti with the name
> >>>   clk-divider.c.
> >>> - Move the clk-ti-gate.c file to drivers/clk/ti with the name
> >>>   clk-gate.c.
> >>> - Move the clk-ti-ctrl.c file to drivers/clk/ti with the name
> >>>   clk-ctrl.c.
> >>>
> >>> Changes in v4:
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Remove a blank line at end of file arch/arm/dts/am33xx-l4.dtsi.
> >>> - Update clk_round_rate description.
> >>> - Add Sean Anderson review.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Fix compilation errors on the dev parameter of the dev_xx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Fix compilation errors on the dev parameter of the dev_xx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Fix compilation errors on the dev parameter of the dev_xx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Add Sphinx documentation for dm_flags.
> >>> - Convert GD_DM_FLG_* to enum.
> >>> - Include device_compat.h header in test/dm/test-fdt.c for dev_xxx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>> - Add Simon Glass review.
> >>> - Include device_compat.h header for dev_xxx macros.
> >>>
> >>> Changes in v3:
> >>> - Remove doc/device-tree-bindings/clock/clock-bindings.txt.
> >>> - Remove doc/device-tree-bindings/clock/ti,mux.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Remove doc/device-tree-bindings/clock/ti,dpll.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Remove doc/device-tree-bindings/clock/ti,autoidle.txt.
> >>> - Remove doc/device-tree-bindings/clock/ti,divider.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Remove doc/device-tree-bindings/clock/gpio-gate-clock.txt.
> >>> - Remove doc/device-tree-bindings/clock/ti,clockdomain.txt.
> >>> - Remove doc/device-tree-bindings/clock/ti,gate.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Fix access to registers listed by device tree following resync of
> >>>   am33xx-clock.dtsi with Linux 5.9-rc7.
> >>> - Remove doc/device-tree-bindings/clock/ti,clkctrl.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - doc/device-tree-bindings/arm/omap,prcm.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Comment dm_flags field in the global_data structure.
> >>> - Remove doc/device-tree-bindings/arm/omap,ctrl.txt.
> >>> - Remove doc/device-tree-bindings/pinctrl/pinctrl-single.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Adds PWM_TI_EHRPWM dependency on ARCH_OMAP2PLUS in Kconfig.
> >>> - Add error message in case of invalid address.
> >>> - Remove doc/device-tree-bindings/pwm/ti,ehrpwm.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Move Kconfig symbol from drivers/pwm to drivers/bus.
> >>> - Remove the domain clock reference from the pwmss nodes of the device
> >>>   tree in am33xx.dtsi. The resync of am33xx.dtsi with Linux 5.9-rc7
> >>>   already contains such references.
> >>> - Remove domain clock enabling/disabling. Enabling the domain clock is
> >>>   performed by the sysc interconnect target module driver during the pwm
> >>>   device probing.
> >>> - Remove doc/device-tree-bindings/pwm/ti,pwmss.txt.
> >>> - Add to commit message the references to linux kernel dt binding
> >>>   documentation.
> >>> - Update the DTS lcdc node of the am335x boards because of the
> >>>   am33xx.dtsi resynced with Linux 5.9-rc7.
> >>> - Remove clock domain enabling/disabling.
> >>> - Update the commit message.
> >>> - Add clk.h header.
> >>> - Fix an error code returned by the probe function.
> >>>
> >>> Changes in v2:
> >>> - Add the clk_ prefix to the divider functions.
> >>> - Add kernel-doc comments to the exported functions.
> >>> - Merged to patch [09/31] clk: ti: refactor mux and divider clock
> >>>   drivers.
> >>> - Remove the 'ti_am3_prcm_clocks' driver. Handle 'prcm_clocks' node in
> >>>   the 'ti_am3_prcm' driver.
> >>> - Update the commit message.
> >>> - Fix a missing line in the commit message.
> >>> - Add dm_flags to global_data structure and GD_DM_FLG_SIZE_CELLS_0 macro
> >>>   to test without recompiling.
> >>> - Update the OF_CHECK_COUNTS macro in order to have just one
> >>>   #define by bringing the GD_DM_FLG_SIZE_CELLS_0 into the expression.
> >>> - Lower-case the 0xC019 hex number.
> >>> - Remove the 'ti_am3_scm_clocks' driver. Handle 'scm_clocks' node in
> >>>   the 'ti_am3_scm' driver.
> >>> - Update the commit message.
> >>>
> >>> Dario Binacchi (28):
> >>>   clk: export generic routines
> >>>   dt-bindings: bus: ti-sysc: resync with Linux 5.9-rc7
> >>>   bus: ti: add minimal sysc interconnect target driver
> >>>   arm: dts: sync am33xx with Linux 5.9-rc7
> >>>   clk: add clk_round_rate()
> >>>   clk: ti: add mux clock driver
> >>>   arm: ti: am33xx: add DPLL_EN_FAST_RELOCK_BYPASS macro
> >>>   clk: ti: am33xx: add DPLL clock drivers
> >>>   clk: ti: add divider clock driver
> >>>   clk: ti: add gate clock driver
> >>>   arm: dts: am335x: include am33xx-u-boot.dtsi
> >>>   ti: am33xx: fix do_enable_clocks() to accept NULL parameters
> >>>   clk: ti: add support for clkctrl clocks
> >>>   clk: ti: omap4: add clock manager driver
> >>>   arm: dts: am335x: enable prcm_clocks auto binding
> >>>   clk: move clk-ti-sci driver to 'ti' directory
> >>>   fdt: translate address if #size-cells = <0>
> >>>   omap: timer: fix the rate setting
> >>>   arm: dts: am335x: enable scm_clocks auto binding
> >>>   pwm: ti: am33xx: add enhanced pwm driver
> >>>   bus: ti: am33xx: add pwm subsystem driver
> >>>   dm: core: add a function to decode display timings
> >>>   video: omap: add panel driver
> >>>   video: omap: drop domain clock enabling by SOC api
> >>>   video: omap: set LCD clock rate through DM API
> >>>   video: omap: split the legacy code from the DM code
> >>>   video: omap: move drivers to 'ti' directory
> >>>   board: ti: am335x-ice: get CDCE913 clock device
> >>>
> >>>  arch/arm/Kconfig                           |    1 +
> >>>  arch/arm/dts/am335x-brppt1-mmc.dts         |   17 +-
> >>>  arch/arm/dts/am335x-brppt1-nand.dts        |   17 +-
> >>>  arch/arm/dts/am335x-brppt1-spi.dts         |   17 +-
> >>>  arch/arm/dts/am335x-brsmarc1.dts           |   20 +-
> >>>  arch/arm/dts/am335x-brxre1.dts             |   21 +-
> >>>  arch/arm/dts/am335x-chiliboard-u-boot.dtsi |    2 +
> >>>  arch/arm/dts/am335x-draco.dtsi             |   11 +-
> >>>  arch/arm/dts/am335x-evm-u-boot.dtsi        |   17 +-
> >>>  arch/arm/dts/am335x-evm.dts                |    2 +-
> >>>  arch/arm/dts/am335x-evmsk-u-boot.dtsi      |   16 +-
> >>>  arch/arm/dts/am335x-evmsk.dts              |    2 +-
> >>>  arch/arm/dts/am335x-guardian-u-boot.dtsi   |   25 +-
> >>>  arch/arm/dts/am335x-icev2-u-boot.dtsi      |    3 +
> >>>  arch/arm/dts/am335x-pdu001-u-boot.dtsi     |   20 +-
> >>>  arch/arm/dts/am335x-pxm2.dtsi              |    2 +-
> >>>  arch/arm/dts/am335x-pxm50-u-boot.dtsi      |   16 +-
> >>>  arch/arm/dts/am335x-regor-rdk-u-boot.dtsi  |    2 +
> >>>  arch/arm/dts/am335x-rut-u-boot.dtsi        |   16 +-
> >>>  arch/arm/dts/am335x-rut.dts                |    2 +-
> >>>  arch/arm/dts/am335x-shc-u-boot.dtsi        |    2 +
> >>>  arch/arm/dts/am335x-shc.dts                |    2 +-
> >>>  arch/arm/dts/am335x-wega-rdk-u-boot.dtsi   |    2 +
> >>>  arch/arm/dts/am33xx-clocks.dtsi            |  106 +-
> >>>  arch/arm/dts/am33xx-l4.dtsi                | 1962 ++++++++++++++++++++
> >>>  arch/arm/dts/am33xx-u-boot.dtsi            |    8 +
> >>>  arch/arm/dts/am33xx.dtsi                   |  721 +++----
> >>>  arch/arm/dts/da850-evm-u-boot.dtsi         |   18 +-
> >>>  arch/arm/include/asm/arch-am33xx/clock.h   |    1 +
> >>>  arch/arm/mach-omap2/am33xx/clock.c         |   10 +-
> >>>  arch/arm/mach-omap2/am33xx/clock_am33xx.c  |    2 +-
> >>>  arch/sandbox/dts/test.dts                  |   67 +
> >>>  arch/sandbox/include/asm/clk.h             |    9 +
> >>>  board/ti/am335x/board.c                    |    2 +-
> >>>  board/ti/am43xx/board.c                    |    2 +-
> >>>  common/fdt_support.c                       |    6 +-
> >>>  drivers/bus/Kconfig                        |   13 +
> >>>  drivers/bus/Makefile                       |    2 +
> >>>  drivers/bus/ti-pwmss.c                     |   21 +
> >>>  drivers/bus/ti-sysc.c                      |  166 ++
> >>>  drivers/clk/Kconfig                        |    9 +-
> >>>  drivers/clk/Makefile                       |    2 +-
> >>>  drivers/clk/clk-divider.c                  |   24 +-
> >>>  drivers/clk/clk-uclass.c                   |   15 +
> >>>  drivers/clk/clk_sandbox.c                  |   17 +
> >>>  drivers/clk/clk_sandbox_test.c             |   10 +
> >>>  drivers/clk/ti/Kconfig                     |   43 +
> >>>  drivers/clk/ti/Makefile                    |   13 +
> >>>  drivers/clk/ti/clk-am3-dpll-x2.c           |   79 +
> >>>  drivers/clk/ti/clk-am3-dpll.c              |  268 +++
> >>>  drivers/clk/ti/clk-ctrl.c                  |  154 ++
> >>>  drivers/clk/ti/clk-divider.c               |  381 ++++
> >>>  drivers/clk/ti/clk-gate.c                  |   93 +
> >>>  drivers/clk/ti/clk-mux.c                   |  253 +++
> >>>  drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} |    0
> >>>  drivers/clk/ti/clk.c                       |   34 +
> >>>  drivers/clk/ti/clk.h                       |   13 +
> >>>  drivers/clk/ti/omap4-cm.c                  |   22 +
> >>>  drivers/core/Kconfig                       |   12 +
> >>>  drivers/core/fdtaddr.c                     |    2 +-
> >>>  drivers/core/of_addr.c                     |   14 +-
> >>>  drivers/core/ofnode.c                      |    7 +-
> >>>  drivers/core/read.c                        |    6 +
> >>>  drivers/core/root.c                        |    3 +
> >>>  drivers/pwm/Kconfig                        |    7 +
> >>>  drivers/pwm/Makefile                       |    1 +
> >>>  drivers/pwm/pwm-ti-ehrpwm.c                |  468 +++++
> >>>  drivers/timer/omap-timer.c                 |    6 +-
> >>>  drivers/video/Kconfig                      |    5 +-
> >>>  drivers/video/Makefile                     |    2 +-
> >>>  drivers/video/ti/Kconfig                   |    8 +
> >>>  drivers/video/ti/Makefile                  |   10 +
> >>>  drivers/video/{ => ti}/am335x-fb.c         |  342 +---
> >>>  drivers/video/{ => ti}/am335x-fb.h         |    4 -
> >>>  drivers/video/ti/tilcdc-panel.c            |  172 ++
> >>>  drivers/video/ti/tilcdc-panel.h            |   14 +
> >>>  drivers/video/ti/tilcdc.c                  |  425 +++++
> >>>  drivers/video/ti/tilcdc.h                  |   38 +
> >>>  include/asm-generic/global_data.h          |   18 +
> >>>  include/clk-uclass.h                       |    8 +
> >>>  include/clk.h                              |   28 +
> >>>  include/dm/read.h                          |   24 +
> >>>  include/dt-bindings/bus/ti-sysc.h          |    6 +
> >>>  include/linux/clk-provider.h               |   57 +
> >>>  test/dm/clk.c                              |   22 +
> >>>  test/dm/test-fdt.c                         |  149 +-
> >>>  86 files changed, 5670 insertions(+), 969 deletions(-)
> >>>  create mode 100644 arch/arm/dts/am33xx-l4.dtsi
> >>>  create mode 100644 drivers/bus/ti-pwmss.c
> >>>  create mode 100644 drivers/bus/ti-sysc.c
> >>>  create mode 100644 drivers/clk/ti/Kconfig
> >>>  create mode 100644 drivers/clk/ti/Makefile
> >>>  create mode 100644 drivers/clk/ti/clk-am3-dpll-x2.c
> >>>  create mode 100644 drivers/clk/ti/clk-am3-dpll.c
> >>>  create mode 100644 drivers/clk/ti/clk-ctrl.c
> >>>  create mode 100644 drivers/clk/ti/clk-divider.c
> >>>  create mode 100644 drivers/clk/ti/clk-gate.c
> >>>  create mode 100644 drivers/clk/ti/clk-mux.c
> >>>  rename drivers/clk/{clk-ti-sci.c => ti/clk-sci.c} (100%)
> >>>  create mode 100644 drivers/clk/ti/clk.c
> >>>  create mode 100644 drivers/clk/ti/clk.h
> >>>  create mode 100644 drivers/clk/ti/omap4-cm.c
> >>>  create mode 100644 drivers/pwm/pwm-ti-ehrpwm.c
> >>>  create mode 100644 drivers/video/ti/Kconfig
> >>>  create mode 100644 drivers/video/ti/Makefile
> >>>  rename drivers/video/{ => ti}/am335x-fb.c (54%)
> >>>  rename drivers/video/{ => ti}/am335x-fb.h (97%)
> >>>  create mode 100644 drivers/video/ti/tilcdc-panel.c
> >>>  create mode 100644 drivers/video/ti/tilcdc-panel.h
> >>>  create mode 100644 drivers/video/ti/tilcdc.c
> >>>  create mode 100644 drivers/video/ti/tilcdc.h
> >>>