allwinner h616/h618 cpu freq driver
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 22 Aug 2023 10:25:12 UTC
H616 / H618 socs have a slightly different cpu-opp table for the cpu freq to voltage mapping ------------------------------------------------------------------------------------------------------ opp-table-cpu { compatible = "allwinner,sun50i-h616-operating-points"; nvmem-cells = <0x4c>; opp-shared; phandle = <0x3>; opp-480000000 { clock-latency-ns = <0x3b9b0>; opp-hz = <0x0 0x1c9c3800>; opp-microvolt-speed0 = <0xdbba0 0xdbba0 0x10c8e0>; opp-microvolt-speed1 = <0xdbba0 0xdbba0 0x10c8e0>; opp-microvolt-speed2 = <0xdbba0 0xdbba0 0x10c8e0>; }; ….. ----------------------------------------------------------------------------------------- instead of the standard opp-table-cpu { compatible = "operating-points-v2"; opp-shared; phandle = <0x3>; opp-480000000 { opp-hz = <0x0 0x1c9c3800>; opp-microvolt = <0xc8320>; clock-latency-ns = <0x3b9b0>; }; ….. ---------------------------------------------------------------------------- there are 3 sets of voltages listed and the speed key [0-2] is obtained from the nvmem cell with phandle <0x4c> the question is how will be the best/recommended method to implement support 1. hack sys/dev/cpufreq/cpufreq_dt.c with a build time option and use ifdefs 2. duplicate the cpufreq_dt.c code and create a cloned driver from scratch 3. create a driver that only looks for compatible = "allwinner,sun50i-h616-operating-points” and then live patches the fdt (reads the nvmem cell and replace opp-microvolt-speedN = <foo> with opp-microvolt = <foo> thanks, Titus