22.10.2021 10:45, Viresh Kumar пишет: > On 22-10-21, 10:39, Dmitry Osipenko wrote: >> What we currently have for Tegra is a tegra-opps.dtsi and tegra.dtsi >> which includes the OPP's dtsi. >> >> the tegra-opps.dtsi has this structure: >> >> table: devname-opp-table { >> opp: ... >> }; >> >> and tegra.dtsi: >> >> #include "tegra-opps.dtsi" >> >> device@0000 { >> operating-points-v2 = <&table>; >> }; >> >> It just occurred to me that there is no need to move all tables to >> tegra.dtsi, but change structure of tegra-opps.dtsi to: >> >> device@0000 { >> operating-points-v2 = <&table>; >> >> table: opp-table { >> opp: ... >> }; >> }; > > I thought you would have already thought about that and I was surprised when you > saw the tables are big enough to be moved. I was wondering what does it really > mean :) > >> Then there no need to change current naming scheme. Let me try to >> implement it and see how it goes. > > That's good then. > I implemented that approach and it works, but there are two problems: 1. I had to factor out OPP tables from SPI device-tree nodes because DTC doesn't allow to have them within SPI nodes [1] and dtb fails to compile. [1] https://elixir.bootlin.com/linux/v5.15-rc6/source/scripts/dtc/checks.c#L1141 2. dtbs_check now warns about every opp-table sub-node, like this: /home/runner/work/linux/linux/arch/arm/boot/dts/tegra30-asus-nexus7-grouper-E1565.dt.yaml: memory-controller@7000f400: 'opp-table' does not match any of the regexes: '^emc-timings-[0-9]+$', 'pinctrl-[0-9]+' From schema: /home/runner/work/linux/linux/Documentation/devicetree/bindings/memory-controllers/nvidia,tegra30-emc.yaml