[PATCH v6 00/15] Multiple addition and improvement to ipq8064 gcc

Ansuel Smith posted 15 patches 4 years, 3 months ago
.../bindings/clock/qcom,gcc-apq8064.yaml      |  29 +-
.../bindings/clock/qcom,gcc-ipq8064.yaml      |  76 ++
.../bindings/clock/qcom,gcc-other.yaml        |  70 ++
.../devicetree/bindings/clock/qcom,gcc.yaml   |  59 +-
arch/arm/boot/dts/qcom-ipq8064.dtsi           |   8 +-
drivers/clk/qcom/clk-rcg.c                    |  24 +
drivers/clk/qcom/clk-rcg.h                    |   1 +
drivers/clk/qcom/gcc-ipq806x.c                | 649 +++++++++++++-----
include/dt-bindings/clock/qcom,gcc-ipq806x.h  |   5 +-
include/dt-bindings/reset/qcom,gcc-ipq806x.h  |   5 +
10 files changed, 685 insertions(+), 241 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-ipq8064.yaml
create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml
[PATCH v6 00/15] Multiple addition and improvement to ipq8064 gcc
Posted by Ansuel Smith 4 years, 3 months ago
This is an attempt in making the ipq8064 SoC actually usable. Currently
many feature are missing for this SoC and devs user off-the-tree patches
to make it work (example patch for missing clock, patch for cpufreq
driver, patch to add missing node in the dts)

I notice there was some work in modernizing the gcc driver for other
qcom target but this wasn't done for ipq806x. This does exactly this, we
drop any parent_names stuff and we switch to the parent_data way. We
also drop the pxo and cxo source clk from gcc driver and we refer to the
dts for it.

This also add all the missing feature for the nss cores and the
cryptoengine in them. It does also introduce the required flags to make
the RPM actually work and NOT reject any command. There was an attempt
in declaring these clock as core clock in the dts but this ends up in no
serial as the kernel makes these clock not accessible. We just want to
make the kernel NOT disable them if unused nothing more.

At the end we update the ipq8064 dtsi to add the pxo and cxo tag and
declare them in gcc and also fix a problem with tsens probe.

v6:
- Add more info about the changed define
- Fixed wrong definition for pxo/cxo parent map
v5:
- Drop patch removing fixed clk
- Use name in parent_data to keep compatibility with old dtb
- Fix error in the documentation commits
- Keep old copyright for gcc documentation
- Fix an error with the rcg floor ops
- Set nss clk based on the device compatible
v4:
- Drop drivers in all the patches.
- Introduce floor ops for sdc
- gcc.yaml to gcc-other.yaml
- gcc-common.yaml to gcc.yaml
v3:
- Rework Documentation with Rob suggestions
v2:
- Fix error from Rob bot.
- Add additional commits to make qcom,gcc.yaml a template
- Squash parent_hws patch with the modernize patch
- Create gcc_pxo instead of using long define.

Ansuel Smith (15):
  dt-bindings: clock: split qcom,gcc.yaml to common and specific schema
  dt-bindings: clock: simplify qcom,gcc-apq8064 Documentation
  dt-bindings: clock: document qcom,gcc-ipq8064 binding
  clk: qcom: gcc-ipq806x: fix wrong naming for gcc_pxo_pll8_pll0
  clk: qcom: gcc-ipq806x: convert parent_names to parent_data
  clk: qcom: gcc-ipq806x: use ARRAY_SIZE for num_parents
  clk: qcom: gcc-ipq806x: add additional freq nss cores
  clk: qcom: gcc-ipq806x: add unusued flag for critical clock
  clk: qcom: clk-rcg: add clk_rcg_floor_ops ops
  clk: qcom: gcc-ipq806x: add additional freq for sdc table
  dt-bindings: clock: add ipq8064 ce5 clk define
  clk: qcom: gcc-ipq806x: add CryptoEngine clocks
  dt-bindings: reset: add ipq8064 ce5 resets
  clk: qcom: gcc-ipq806x: add CryptoEngine resets
  ARM: dts: qcom: add syscon and cxo/pxo clock to gcc node for ipq8064

 .../bindings/clock/qcom,gcc-apq8064.yaml      |  29 +-
 .../bindings/clock/qcom,gcc-ipq8064.yaml      |  76 ++
 .../bindings/clock/qcom,gcc-other.yaml        |  70 ++
 .../devicetree/bindings/clock/qcom,gcc.yaml   |  59 +-
 arch/arm/boot/dts/qcom-ipq8064.dtsi           |   8 +-
 drivers/clk/qcom/clk-rcg.c                    |  24 +
 drivers/clk/qcom/clk-rcg.h                    |   1 +
 drivers/clk/qcom/gcc-ipq806x.c                | 649 +++++++++++++-----
 include/dt-bindings/clock/qcom,gcc-ipq806x.h  |   5 +-
 include/dt-bindings/reset/qcom,gcc-ipq806x.h  |   5 +
 10 files changed, 685 insertions(+), 241 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-ipq8064.yaml
 create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml

-- 
2.34.1
Re: [PATCH v6 00/15] Multiple addition and improvement to ipq8064 gcc
Posted by Jonathan McDowell 4 years, 3 months ago
On Sat, Feb 26, 2022 at 02:52:20PM +0100, Ansuel Smith wrote:
> This is an attempt in making the ipq8064 SoC actually usable. Currently
> many feature are missing for this SoC and devs user off-the-tree patches
> to make it work (example patch for missing clock, patch for cpufreq
> driver, patch to add missing node in the dts)
> 
> I notice there was some work in modernizing the gcc driver for other
> qcom target but this wasn't done for ipq806x. This does exactly this, we
> drop any parent_names stuff and we switch to the parent_data way. We
> also drop the pxo and cxo source clk from gcc driver and we refer to the
> dts for it.
> 
> This also add all the missing feature for the nss cores and the
> cryptoengine in them. It does also introduce the required flags to make
> the RPM actually work and NOT reject any command. There was an attempt
> in declaring these clock as core clock in the dts but this ends up in no
> serial as the kernel makes these clock not accessible. We just want to
> make the kernel NOT disable them if unused nothing more.
> 
> At the end we update the ipq8064 dtsi to add the pxo and cxo tag and
> declare them in gcc and also fix a problem with tsens probe.

FWIW, series tested on my RB3011. No regressions, tsens driver now
correctly loads.

Tested-by: Jonathan McDowell <noodles@earth.li>

> v6:
> - Add more info about the changed define
> - Fixed wrong definition for pxo/cxo parent map
> v5:
> - Drop patch removing fixed clk
> - Use name in parent_data to keep compatibility with old dtb
> - Fix error in the documentation commits
> - Keep old copyright for gcc documentation
> - Fix an error with the rcg floor ops
> - Set nss clk based on the device compatible
> v4:
> - Drop drivers in all the patches.
> - Introduce floor ops for sdc
> - gcc.yaml to gcc-other.yaml
> - gcc-common.yaml to gcc.yaml
> v3:
> - Rework Documentation with Rob suggestions
> v2:
> - Fix error from Rob bot.
> - Add additional commits to make qcom,gcc.yaml a template
> - Squash parent_hws patch with the modernize patch
> - Create gcc_pxo instead of using long define.
> 
> Ansuel Smith (15):
>   dt-bindings: clock: split qcom,gcc.yaml to common and specific schema
>   dt-bindings: clock: simplify qcom,gcc-apq8064 Documentation
>   dt-bindings: clock: document qcom,gcc-ipq8064 binding
>   clk: qcom: gcc-ipq806x: fix wrong naming for gcc_pxo_pll8_pll0
>   clk: qcom: gcc-ipq806x: convert parent_names to parent_data
>   clk: qcom: gcc-ipq806x: use ARRAY_SIZE for num_parents
>   clk: qcom: gcc-ipq806x: add additional freq nss cores
>   clk: qcom: gcc-ipq806x: add unusued flag for critical clock
>   clk: qcom: clk-rcg: add clk_rcg_floor_ops ops
>   clk: qcom: gcc-ipq806x: add additional freq for sdc table
>   dt-bindings: clock: add ipq8064 ce5 clk define
>   clk: qcom: gcc-ipq806x: add CryptoEngine clocks
>   dt-bindings: reset: add ipq8064 ce5 resets
>   clk: qcom: gcc-ipq806x: add CryptoEngine resets
>   ARM: dts: qcom: add syscon and cxo/pxo clock to gcc node for ipq8064
> 
>  .../bindings/clock/qcom,gcc-apq8064.yaml      |  29 +-
>  .../bindings/clock/qcom,gcc-ipq8064.yaml      |  76 ++
>  .../bindings/clock/qcom,gcc-other.yaml        |  70 ++
>  .../devicetree/bindings/clock/qcom,gcc.yaml   |  59 +-
>  arch/arm/boot/dts/qcom-ipq8064.dtsi           |   8 +-
>  drivers/clk/qcom/clk-rcg.c                    |  24 +
>  drivers/clk/qcom/clk-rcg.h                    |   1 +
>  drivers/clk/qcom/gcc-ipq806x.c                | 649 +++++++++++++-----
>  include/dt-bindings/clock/qcom,gcc-ipq806x.h  |   5 +-
>  include/dt-bindings/reset/qcom,gcc-ipq806x.h  |   5 +
>  10 files changed, 685 insertions(+), 241 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-ipq8064.yaml
>  create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml
> 
> -- 
> 2.34.1

J.

-- 
Web [            Even the Evening Herald slags me off.             ]
site: https:// [                                          ]      Made by
www.earth.li/~noodles/  [                      ]         HuggieTag 0.0.24