imx8m mini cpu frequency issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8m mini cpu frequency issue

6,723 Views
Dhevan
Contributor IV

Hi,

       BSP Version - 5.4.24

       1) Our custom board we are using imx8m mini dual core industrial processor (1.6 MHZ) we have used same imx8m mini evk sdk but evk contains quad core consumer processor (1.8 MHZ) any thing we need to change in uboot and kernel code ?

      2) /sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies if we see in imx8m mini evk board we can able to see cpu frequency same sdk code used for our custom board if we see in same location /sys/devices/system/cpu/cpu0/  cpufreq location does not present.

         Linux menuconfig cpu frequency scaling was enabled

         Why we are unable to see cpufreq folder ?

      3) imx8m mini evk board spi sensor communication we can able to read 13600 data per second (spi baudrate - 1.3MHZ)  device tree spi max freq - 9MHZ

         Our custom board same code able to only 7000 data per second.

         Custom custom board if we increase spi speed to (6 MHZ) we have some how read 13000 data.

         Why we are getting this issue on our custom board ?

         Evk contains quad core processor and our board dual core processor due to less core we are getting this issue ?

         Cpu frequency may causes this issue ?

         Please help us to solve the issues.

 

Thanks & Regards,

       Vasu

Labels (1)
0 Kudos
Reply
19 Replies

6,666 Views
BiyongSUN
NXP Employee
NXP Employee

What's pmic you are using for the customer board?

If the BSP pmic settings doesn't match the hardware, it causes dvfs doesn't work.

For example, L5.4.24-2.1.0 BSP default supports ROHM BD71847MWV.

And L5.4.70-2.3.0   BSP default supports PCA9450.

The i.MX8MM evk board is mounted  ROHM BD71847MWV. If you use  L5.4.70-2.3.0. 

The dvfs will not work. Because  L5.4.70-2.3.0   BSP  try to find PCA9450. But hardware is ROHM BD71847MWV.

You can check if you have "Can't find PMIC" message.

U-Boot SPL 2020.04-5.4.70-2.3.0+ge42dee801e (Dec 04 2020 - 00:28:49 +0000)
Can't find PMIC:PCA9450
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot

root@imx8mmevk:~# ls /sys/devices/system/cpu/cpu0/cpufreq
ls: cannot access '/sys/devices/system/cpu/cpu0/cpufreq': No such file or directory
root@imx8mmevk:~#

 

0 Kudos
Reply

6,713 Views
igorpadykov
NXP Employee
NXP Employee

Hi Vasu

 

for industrial processor (1.6 MHZ) one can consider a53_opp_table "operating-points":

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mm.dtsi?...

for "dual core" - "maxcpus" kernel boot parameter

https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html

 

Best regards
igor

 

 

 

0 Kudos
Reply

6,695 Views
Dhevan
Contributor IV

Hi @igorpadykov 

        Thanks for your reply

        for industrial processor (1.6 MHZ) one can consider a53_opp_table "operating-points":

        Changes done but we unable to see cpufreq /sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies in this location.

       

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		idle-states {
			entry-method = "psci";

			cpu_pd_wait: cpu-pd-wait {
				compatible = "arm,idle-state";
				arm,psci-suspend-param = <0x0010033>;
				local-timer-stop;
				entry-latency-us = <1000>;
				exit-latency-us = <700>;
				min-residency-us = <2700>;
			};
		};

		A53_0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <0x0>;
			clock-latency = <61036>; /* two CLK32 periods */
			clocks = <&clk IMX8MM_CLK_ARM>;
			enable-method = "psci";
			next-level-cache = <&A53_L2>;
			operating-points-v2 = <&a53_opp_table>;
			nvmem-cells = <&cpu_speed_grade>;
			nvmem-cell-names = "speed_grade";
			cpu-idle-states = <&cpu_pd_wait>;
			#cooling-cells = <2>;
		};

		A53_1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			reg = <0x1>;
			clock-latency = <61036>; /* two CLK32 periods */
			clocks = <&clk IMX8MM_CLK_ARM>;
			enable-method = "psci";
			next-level-cache = <&A53_L2>;
			operating-points-v2 = <&a53_opp_table>;
			cpu-idle-states = <&cpu_pd_wait>;
			#cooling-cells = <2>;
		};

		A53_L2: l2-cache0 {
			compatible = "cache";
		};
	};

	a53_opp_table: opp-table {
		compatible = "operating-points-v2";
		opp-shared;

		opp-1600000000 {
			opp-hz = /bits/ 64 <1600000000>;
			opp-microvolt = <950000>;
			opp-supported-hw = <0xc>, <0x7>;
			clock-latency-ns = <150000>;
			opp-suspend;
		};
	};

    Cpu.PNG

      Why still we unable to see cpu frequency ?

      Please reply my 3rd question regarding spi issue.

 

Thanks & Regards,

         Vasu

6,688 Views
igorpadykov
NXP Employee
NXP Employee

seems "opp-1200000000 { .." entry should be retained in a53_opp_table.

 

Best regards
igor

0 Kudos
Reply

6,677 Views
Dhevan
Contributor IV

Hi @igorpadykov 

      Retained "opp-1200000000 { .."

	a53_opp_table: opp-table {
		compatible = "operating-points-v2";
		opp-shared;

		opp-1200000000 {
			opp-hz = /bits/ 64 <1200000000>;
			opp-microvolt = <850000>;
			opp-supported-hw = <0xe>, <0x7>;
			clock-latency-ns = <150000>;
			opp-suspend;
		};

		opp-1600000000 {
			opp-hz = /bits/ 64 <1600000000>;
			opp-microvolt = <900000>;
			opp-supported-hw = <0xc>, <0x7>;
			clock-latency-ns = <150000>;
			opp-suspend;
		};
	};

 

     Still same issue unable to see cpu frequency.

Thanks & Regards,

         Vasu

 

0 Kudos
Reply

6,675 Views
igorpadykov
NXP Employee
NXP Employee

one can recheck linux kernel configuration using sect.2.5.3.4 Menu Configuration Options

Linux Manual included in  Documentation

 

Best regards
igor

 

0 Kudos
Reply

6,664 Views
Dhevan
Contributor IV

Hi @igorpadykov 

         I will check the documentation

         My important goal wants to know because of cpu frequency issue only am getting issue on spi (please see my 3rd question from starting thread).

         Please give above clarification.

         Cpu frequency does not issue our main issue on spi datas only.

      Thanks & Regards,

              Vasu

0 Kudos
Reply

6,629 Views
igorpadykov
NXP Employee
NXP Employee

> My important goal wants to know because of cpu frequency issue only am getting issue on spi
>(please see my 3rd question from starting thread). Please give above clarification.


this is because custom board uses processor 1.6 MHZ while evk uses 1.8 MHZ,

which performs codes faster.

 

Best regards
igor

0 Kudos
Reply

6,622 Views
Dhevan
Contributor IV

Hi @igorpadykov,

       Only 2MHZ frequency difference slow down the spi speed and other peripherals operation ? 

       Our custom board dual core processor then evk contains quad core processor due to this reason also slow the operation ?

 Thanks & Regards,

          Vasu

6,616 Views
igorpadykov
NXP Employee
NXP Employee

>Only 2MHZ frequency difference slow down the spi speed and other peripherals operation ?

 

"1.6 GHZ while evk uses 1.8 GHZ"  means 200MHz difference.

 

Best regards
igor

0 Kudos
Reply

6,573 Views
Dhevan
Contributor IV

Hi @igorpadykov

          Any updates on my questions.

          If we disable other peripherals frequency (ex : pci, ethernet, camera sound etc) possible is there to increase the spi performance ?

         Any other ways is there to increase the spi performance because we need more than 130000 data per second.

         If possibility is there means please help us give instruction to disable other peripherals.

Thanks & Regards,

       Vasu 

0 Kudos
Reply

6,565 Views
igorpadykov
NXP Employee
NXP Employee

> If we disable other peripherals frequency (ex : pci, ethernet, camera sound etc)

>possible is there to increase the spi performance ?

 

in general this may help, however one should find it experimentally.

 

Best regards
igor

0 Kudos
Reply

6,610 Views
Dhevan
Contributor IV

Hi @igorpadykov 

          If we disable other peripherals frequency (ex : pci, ethernet, camera sound etc) possible is there to increase the spi performance ?

         Any other ways is there to increase the spi performance because we need more than 130000 data per second.

         If possibility is there means please help us give instruction to disable other peripherals.

Thanks & Regards,

       Vasu 

0 Kudos
Reply

6,656 Views
BiyongSUN
NXP Employee
NXP Employee

Please check the log to see if the pmic is correctly enabled on the customer board.

Or you will not have the dvfs nodes. 

0 Kudos
Reply

6,640 Views
Dhevan
Contributor IV

Hi,

       See below uboot log.

       Uboot able to detect industrial part number and frequency.

 

U-Boot 2020.04-5.4.24-2.1.0+g4979a99482 (Apr 02 2021 - 05:07:51 +0000)

CPU: i.MX8MMDL rev1.0 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 40C
Reset cause: POR
Model: NXP i.MX8MM EVK board
DRAM: 2 GiB
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

 

Thanks & Regards,

       Vasu

0 Kudos
Reply

6,642 Views
Dhevan
Contributor IV

  Hi,

           What does means dvfs node ?

           Kernel log does not seem any error regarding pmic.

  

Spoiler

U-Boot SPL 2020.04-5.4.24-2.1.0+g4979a99482 (Apr 02 2021 - 05:07:51 +0000)
power_pt_pca9450_init
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC2
NOTICE: BL31: v2.2(release):imx_5.4.24_er3-0-gb0a00f22b-dirty
NOTICE: BL31: Built : 08:04:42, Mar 17 2021


U-Boot 2020.04-5.4.24-2.1.0+g4979a99482 (Apr 02 2021 - 05:07:51 +0000)

CPU: i.MX8MMDL rev1.0 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 40C
Reset cause: POR
Model: NXP i.MX8MM EVK board
DRAM: 2 GiB
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Fail to setup video link
In: serial
Out: serial
Err: serial

BuildInfo:
- ATF b0a00f2
- U-Boot 2020.04-5.4.24-2.1.0+g4979a99482

switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net: CPU Net Initialization Failed
No ethernet found.
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc2(part 0) is current device
switch to partitions #0, OK
mmc1 is current device
27953664 bytes read in 123 ms (216.7 MiB/s)
Booting from mmc ...
35221 bytes read in 16 ms (2.1 MiB/s)
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
Using Device Tree in place at 0000000043000000, end 000000004300b994
Found /vpu_g1@38300000 node
Modify /vpu_g1@38300000:status disabled
Found /vpu_g2@38310000 node
Modify /vpu_g2@38310000:status disabled
Found /vpu_h1@38320000 node
Modify /vpu_h1@38320000:status disabled

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.4.24-2.1.0+gbabac008e5cf (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Fri Mar 5 09:31:15 UTC 2021
[ 0.000000] Machine model: FSL i.MX8MM EVK board
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x0000000078000000, size 640 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] NUMA: No NUMA configuration found
[ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x00000000bdffffff]
[ 0.000000] NUMA: NODE_DATA [mem 0xbdbe8500-0xbdbe9fff]
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000040000000-0x00000000bdffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x00000000b7ffffff]
[ 0.000000] node 0: [mem 0x00000000b8400000-0x00000000bdffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000bdffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] psci: SMC Calling Convention v1.1
[ 0.000000] percpu: Embedded 24 pages/cpu s58904 r8192 d31208 u98304
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: detected: ARM erratum 845719
[ 0.000000] CPU features: detected: GIC system register CPU interface
[ 0.000000] Speculative Store Bypass Disable mitigation not required
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 507008
[ 0.000000] Policy zone: DMA32
[ 0.000000] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk2p2 rootwait rw
[ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 1336328K/2060288K available (16380K kernel code, 1442K rwdata, 6468K rodata, 2944K init, 1015K bss, 68600K reserved, 655360K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[ 0.000000] GICv3: 128 SPIs implemented
[ 0.000000] GICv3: 0 Extended SPIs implemented
[ 0.000000] GICv3: Distributor has no Range Selector support
[ 0.000000] GICv3: 16 PPIs implemented
[ 0.000000] GICv3: no VLPI support, no direct LPI support
[ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[ 0.000000] ITS: No ITS available, not enabling LPIs
[ 0.000000] random: get_random_bytes called from start_kernel+0x2b8/0x44c with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[ 0.000003] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[ 0.000325] Console: colour dummy device 80x25
[ 0.000386] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[ 0.000394] pid_max: default: 32768 minimum: 301
[ 0.000462] LSM: Security Framework initializing
[ 0.000510] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.000520] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[ 0.024021] ASID allocator initialised with 32768 entries
[ 0.032017] rcu: Hierarchical SRCU implementation.
[ 0.040661] EFI services will not be available.
[ 0.048050] smp: Bringing up secondary CPUs ...
[ 0.080190] Detected VIPT I-cache on CPU1
[ 0.080214] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[ 0.080245] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[ 0.080313] smp: Brought up 1 node, 2 CPUs
[ 0.080324] SMP: Total of 2 processors activated.
[ 0.080330] CPU features: detected: 32-bit EL0 Support
[ 0.080335] CPU features: detected: CRC32 instructions
[ 0.086796] CPU: All CPU(s) started at EL2
[ 0.086811] alternatives: patching kernel code
[ 0.088158] devtmpfs: initialized
[ 0.093083] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.093099] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.108847] pinctrl core: initialized pinctrl subsystem
[ 0.109502] DMI not present or invalid.
[ 0.109749] NET: Registered protocol family 16
[ 0.118359] DMA: preallocated 256 KiB pool for atomic allocations
[ 0.118389] audit: initializing netlink subsys (disabled)
[ 0.118635] audit: type=2000 audit(0.116:1): state=initialized audit_enabled=0 res=1
[ 0.119369] cpuidle: using governor menu
[ 0.119740] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.120415] Serial: AMBA PL011 UART driver
[ 0.120478] imx mu driver is registered.
[ 0.120497] imx rpmsg driver is registered.
[ 0.124888] imx8mm-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[ 0.144772] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.144782] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[ 0.144787] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.144792] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.146359] cryptd: max_cpu_qlen set to 1000
[ 0.151256] ACPI: Interpreter disabled.
[ 0.151996] iommu: Default domain type: Translated
[ 0.152095] vgaarb: loaded
[ 0.152362] SCSI subsystem initialized
[ 0.152784] usbcore: registered new interface driver usbfs
[ 0.152819] usbcore: registered new interface driver hub
[ 0.152846] usbcore: registered new device driver usb
[ 0.153737] mc: Linux media interface: v0.10
[ 0.153767] videodev: Linux video capture interface: v2.00
[ 0.153832] pps_core: LinuxPPS API ver. 1 registered
[ 0.153836] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.153848] PTP clock support registered
[ 0.153955] EDAC MC: Ver: 3.0.0
[ 0.154645] No BMan portals available!
[ 0.154855] QMan: Allocated lookup table at (____ptrval____), entry count 65537
[ 0.155061] No QMan portals available!
[ 0.155362] No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree
[ 0.155710] FPGA manager framework
[ 0.155791] Advanced Linux Sound Architecture Driver Initialized.
[ 0.156137] Bluetooth: Core ver 2.22
[ 0.156158] NET: Registered protocol family 31
[ 0.156163] Bluetooth: HCI device and connection manager initialized
[ 0.156171] Bluetooth: HCI socket layer initialized
[ 0.156177] Bluetooth: L2CAP socket layer initialized
[ 0.156189] Bluetooth: SCO socket layer initialized
[ 0.156768] clocksource: Switched to clocksource arch_sys_counter
[ 0.156906] VFS: Disk quotas dquot_6.6.0
[ 0.156952] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.157090] pnp: PnP ACPI: disabled
[ 0.162686] thermal_sys: Registered thermal governor 'step_wise'
[ 0.162689] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.162979] NET: Registered protocol family 2
[ 0.163275] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[ 0.163305] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.163413] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[ 0.163634] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.163699] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[ 0.163740] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[ 0.163861] NET: Registered protocol family 1
[ 0.164229] RPC: Registered named UNIX socket transport module.
[ 0.164235] RPC: Registered udp transport module.
[ 0.164238] RPC: Registered tcp transport module.
[ 0.164242] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.164576] PCI: CLS 0 bytes, default 64
[ 0.165161] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[ 0.165429] kvm [1]: IPA Size Limit: 40bits
[ 0.166011] kvm [1]: GICv3: no GICV resource entry
[ 0.166016] kvm [1]: disabling GICv2 emulation
[ 0.166033] kvm [1]: GIC system register CPU interface enabled
[ 0.166066] kvm [1]: vgic interrupt IRQ1
[ 0.166127] kvm [1]: Hyp mode initialized successfully
[ 0.171007] Initialise system trusted keyrings
[ 0.171108] workingset: timestamp_bits=44 max_order=19 bucket_order=0
[ 0.176957] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.177563] NFS: Registering the id_resolver key type
[ 0.177584] Key type id_resolver registered
[ 0.177589] Key type id_legacy registered
[ 0.177598] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.177615] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.177975] 9p: Installing v9fs 9p2000 file system support
[ 0.191162] Key type asymmetric registered
[ 0.191170] Asymmetric key parser 'x509' registered
[ 0.191203] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[ 0.191209] io scheduler mq-deadline registered
[ 0.191213] io scheduler kyber registered
[ 0.194915] EINJ: ACPI disabled.
[ 0.200920] mxs-dma 33000000.dma-controller: initialized
[ 0.201885] Bus freq driver module loaded
[ 0.206630] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.208385] 30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 32, base_baud = 1500000) is a IMX
[ 1.120099] printk: console [ttymxc0] enabled
[ 1.128998] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.135645] [drm] No driver support for vblank timestamp query.
[ 1.141644] imx-drm soc@0:bus@32c00000:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.151044] [drm] Initialized imx-drm 1.0.0 20120507 for soc@0:bus@32c00000:display-subsystem on minor 0
[ 1.168132] loop: module loaded
[ 1.173106] imx ahci driver is registered.
[ 1.180130] spi-nor spi3.0: n25q256ax1 (32768 Kbytes)
[ 1.190341] libphy: Fixed MDIO Bus: probed
[ 1.195225] tun: Universal TUN/TAP device driver, 1.6
[ 1.200861] thunder_xcv, ver 1.0
[ 1.204120] thunder_bgx, ver 1.0
[ 1.207385] nicpf, ver 1.0
[ 1.210576] Freescale FM module, FMD API version 21.1.0
[ 1.215992] Freescale FM Ports module
[ 1.219663] fsl_mac: fsl_mac: FSL FMan MAC API based driver
[ 1.225360] fsl_dpa: FSL DPAA Ethernet driver
[ 1.229801] fsl_advanced: FSL DPAA Advanced drivers:
[ 1.234770] fsl_proxy: FSL DPAA Proxy initialization driver
[ 1.240427] fsl_oh: FSL FMan Offline Parsing port driver
[ 1.246410] hclge is initializing
[ 1.249768] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[ 1.257003] hns3: Copyright (c) 2017 Huawei Corporation.
[ 1.262361] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[ 1.269417] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 1.275198] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 1.281036] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 1.286990] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.6.0-k
[ 1.293958] igb: Copyright (c) 2007-2014 Intel Corporation.
[ 1.299561] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
[ 1.307396] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[ 1.313453] sky2: driver version 1.30
[ 1.317866] VFIO - User Level meta-driver version: 0.3
[ 1.324479] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.331026] ehci-pci: EHCI PCI platform driver
[ 1.335508] ehci-platform: EHCI generic platform driver
[ 1.340885] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.347087] ohci-pci: OHCI PCI platform driver
[ 1.351565] ohci-platform: OHCI generic platform driver
[ 1.357222] usbcore: registered new interface driver usb-storage
[ 1.363293] usbcore: registered new interface driver usbserial_generic
[ 1.369841] usbserial: USB Serial support registered for generic
[ 1.375878] usbcore: registered new interface driver ftdi_sio
[ 1.381648] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1.388991] usbcore: registered new interface driver usb_serial_simple
[ 1.395534] usbserial: USB Serial support registered for carelink
[ 1.401645] usbserial: USB Serial support registered for zio
[ 1.407326] usbserial: USB Serial support registered for funsoft
[ 1.413354] usbserial: USB Serial support registered for flashloader
[ 1.419729] usbserial: USB Serial support registered for google
[ 1.425665] usbserial: USB Serial support registered for libtransistor
[ 1.432212] usbserial: USB Serial support registered for vivopay
[ 1.438243] usbserial: USB Serial support registered for moto_modem
[ 1.444541] usbserial: USB Serial support registered for motorola_tetra
[ 1.451178] usbserial: USB Serial support registered for novatel_gps
[ 1.457555] usbserial: USB Serial support registered for hp4x
[ 1.463320] usbserial: USB Serial support registered for suunto
[ 1.469259] usbserial: USB Serial support registered for siemens_mpi
[ 1.476839] imx_usb 32e40000.usb: No over current polarity defined
[ 1.484158] input: 30370000.snvs:snvs-powerkey as /devices/platform/soc@0/soc@0:bus@30000000/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0
[ 1.499013] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc0
[ 1.505280] i2c /dev entries driver
[ 1.513044] imx2-wdt 30280000.watchdog: timeout 60 sec (nowayout=0)
[ 1.519564] Bluetooth: HCI UART driver ver 2.3
[ 1.524024] Bluetooth: HCI UART protocol H4 registered
[ 1.529173] Bluetooth: HCI UART protocol BCSP registered
[ 1.534518] Bluetooth: HCI UART protocol LL registered
[ 1.539664] Bluetooth: HCI UART protocol ATH3K registered
[ 1.545085] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 1.551430] Bluetooth: HCI UART protocol Broadcom registered
[ 1.557118] Bluetooth: HCI UART protocol QCA registered
[ 1.563872] sdhci: Secure Digital Host Controller Interface driver
[ 1.570066] sdhci: Copyright(c) Pierre Ossman
[ 1.574586] Synopsys Designware Multimedia Card Interface Driver
[ 1.581050] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.587360] mmc1: CQHCI version 5.10
[ 1.591412] mmc2: CQHCI version 5.10
[ 1.627182] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[ 1.636004] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.643030] caam 30900000.crypto: device ID = 0x0a16040100000000 (Era 9)
[ 1.649810] caam 30900000.crypto: job rings = 2, qi = 0
[ 1.670398] caam algorithms registered in /proc/crypto
[ 1.677682] caam 30900000.crypto: caam pkc algorithms registered in /proc/crypto
[ 1.687467] caam_jr 30901000.jr: registering rng-caam
[ 1.697401] caam-snvs 30370000.caam-snvs: can't get snvs clock
[ 1.703292] caam-snvs 30370000.caam-snvs: violation handlers armed - non-secure state
[ 1.711723] usbcore: registered new interface driver usbhid
[ 1.717306] usbhid: USB HID core driver
[ 1.722376] No fsl,qman node
[ 1.725285] Freescale USDPAA process driver
[ 1.729482] fsl-usdpaa: no region found
[ 1.733331] Freescale USDPAA process IRQ driver
[ 1.740814] optee: probing for conduit method from DT.
[ 1.745977] optee: revision 3.7 (7a49776d)
[ 1.747382] optee: dynamic shared memory is enabled
[ 1.756578] optee: initialized driver
[ 1.761244] galcore: clk_get vg clock failed, disable vg!
[ 1.766904] Galcore version 6.4.0.234062
[ 1.800760] mmc2: Command Queue Engine enabled
[ 1.805305] mmc2: new HS400 MMC card at address 0001
[ 1.815399] mmcblk2: mmc2:0001 S0J35A 7.28 GiB
[ 1.820061] mmcblk2boot0: mmc2:0001 S0J35A partition 1 31.5 MiB
[ 1.826107] mmcblk2boot1: mmc2:0001 S0J35A partition 2 31.5 MiB
[ 1.832187] mmcblk2rpmb: mmc2:0001 S0J35A partition 3 4.00 MiB, chardev (237:0)
[ 1.841896] pktgen: Packet Generator for packet performance testing. Version: 2.75
[ 1.849532] mmcblk2: p1 p2
[ 1.857869] NET: Registered protocol family 26
[ 1.862896] NET: Registered protocol family 10
[ 1.867930] Segment Routing with IPv6
[ 1.871647] NET: Registered protocol family 17
[ 1.876178] Bluetooth: RFCOMM TTY layer initialized
[ 1.881071] Bluetooth: RFCOMM socket layer initialized
[ 1.886235] Bluetooth: RFCOMM ver 1.11
[ 1.889998] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1.895314] Bluetooth: BNEP filters: protocol multicast
[ 1.900547] Bluetooth: BNEP socket layer initialized
[ 1.905519] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 1.911445] Bluetooth: HIDP socket layer initialized
[ 1.916491] 8021q: 802.1Q VLAN Support v1.8
[ 1.920701] lib80211: common routines for IEEE802.11 drivers
[ 1.926469] 9pnet: Installing 9P2000 support
[ 1.930770] tsn generic netlink module v1 init...
[ 1.935531] Key type dns_resolver registered
[ 1.940734] registered taskstats version 1
[ 1.944842] Loading compiled-in X.509 certificates
[ 1.968392] usb_phy_generic usbphynop1: usbphynop1 supply vcc not found, using dummy regulator
[ 1.977200] usb_phy_generic usbphynop2: usbphynop2 supply vcc not found, using dummy regulator
[ 1.986955] i2c i2c-0: IMX I2C adapter registered
[ 1.993763] pca9450 1-0025: pca9450_i2c_probe(): Read PCA9450_REG_DEVICE failed!
[ 2.001341] i2c i2c-1: IMX I2C adapter registered
[ 2.008480] imx_usb 32e40000.usb: No over current polarity defined
[ 2.014727] imx_usb 32e40000.usb: 32e40000.usb supply vbus not found, using dummy regulator
[ 2.030943] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 2 mkt segment 2 supported-hw 0x4 0x4
[ 2.040857] mmc1: CQHCI version 5.10
[ 2.044488] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[ 2.086743] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[ 2.100502] snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T01:28:04 UTC (5284)
[ 2.110170] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 2.119868] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 2.126498] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 2.130349] ALSA device list:
[ 2.135143] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[ 2.138124] No soundcards found.
[ 2.156792] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null)
[ 2.164952] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 2.171357] devtmpfs: mounted
[ 2.175305] Freeing unused kernel memory: 2944K
[ 2.180824] Run /sbin/init as init process
[ 2.190945] mmc1: host does not support reading read-only switch, assuming write-enable
[ 2.242749] systemd[1]: System time before build time, advancing clock.
[ 2.259454] systemd[1]: systemd 243.2+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD )
[ 2.281409] systemd[1]: Detected architecture arm64.

Welcome to NXP i.MX Release Distro 5.4-zeus (zeus)!

[ 2.313066] random: fast init done
[ 2.317521] systemd[1]: Set hostname to <pteth3>.
[ 2.353137] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
[ 2.369113] mmcblk1: mmc1:aaaa SC32G 29.7 GiB
[ 2.378074] mmcblk1: p1
[ 2.490276] systemd[1]: /lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; pl .
[ 2.588026] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.594817] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[ 2.607184] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[ 2.617875] systemd[1]: Created slice system-getty.slice.
[ OK ] Created slice system-getty.slice.
[ 2.636974] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.644500] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ OK ] Created slice system-serial\x2dgetty.slice.
[ 2.664900] random: systemd: uninitialized urandom read (16 bytes read)
[ 2.672412] systemd[1]: Created slice User and Session Slice.
[ OK ] Created slice User and Session Slice.
[ 2.693130] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ OK ] Started Dispatch Password …ts to Console Directory Watch.
[ OK ] Started Forward Password R…uests to Wall Directory Watch.
[ OK ] Reached target Paths.
[ OK ] Reached target Remote File Systems.
[ OK ] Reached target Slices.
[ OK ] Reached target Swap.
[ OK ] Listening on Syslog Socket.
[ OK ] Listening on initctl Compatibility Named Pipe.
[ OK ] Listening on Journal Audit Socket.
[ OK ] Listening on Journal Socket (/dev/log).
[ OK ] Listening on Journal Socket.
[ OK ] Listening on Network Service Netlink Socket.
[ OK ] Listening on udev Control Socket.
[ OK ] Listening on udev Kernel Socket.
Mounting Huge Pages File System...
Mounting POSIX Message Queue File System...
Mounting Kernel Debug File System...
Mounting Temporary Directory (/tmp)...
Starting Create list of st…odes for the current kernel...
Starting Journal Service...
Mounting Kernel Configuration File System...
Starting Remount Root and Kernel File Systems...
Starting Apply Kernel Variables...
Starting udev Coldplug[ 3.072615] EXT4-fs (mmcblk2p2): re-mounted. Opts: (null)
all Devices...
[ OK ] Started Journal Service.
[ OK ] Mounted Huge Pages File System.
[ OK ] Mounted POSIX Message Queue File System.
[ OK ] Mounted Kernel Debug File System.
[ OK ] Mounted Temporary Directory (/tmp).
[ OK ] Started Create list of sta… nodes for the current kernel.
[ OK ] Mounted Kernel Configuration File System.
[ OK ] Started Remount Root and Kernel File Systems.
[ OK ] Started Apply Kernel Variables.
Starting Flush Journal to Persistent Storage...
[ 3.281617] systemd-journald[343]: Received client request to flush runtime journal.
Starting Create Static Device Nodes in /dev...
[ OK ] Started Flush Journal to Persistent Storage.
[ OK ] Started Create Static Device Nodes in /dev.
[ OK ] Reached target Local File Systems (Pre).
Mounting /var/volatile...
Starting udev Kernel Device Manager...
[ OK ] Mounted /var/volatile.
Starting Load/Save Random Seed...
[ OK ] Reached target Local File Systems.
Starting Create Volatile Files and Directories...
[ OK ] Started udev Coldplug all Devices.
[ OK ] Started udev Kernel Device Manager.
[ OK ] Started Create Volatile Files and Directories.
Starting Network Service...
Starting Network Time Synchronization...
Starting Update UTMP about System Boot/Shutdown...
[ OK ] Started Update UTMP about System Boot/Shutdown.
[ OK ] Started Network Service.
Starting Network Name Resolution...
[ OK ] Started Network Time Synchronization.
[ OK ] Reached target System Initialization.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Reached target System Time Set.
[ OK ] Reached target System Time Synchronized.
[ OK ] Started Daily apt download activities.
[ OK ] Reached target Timers.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
[ OK ] Started Kernel Logging Service.
[ OK ] Started System Logging Service.
[ OK ] Started D-Bus System Message Bus.
[ OK ] Started Power tool python code.
Starting Login Service...
[ OK ] Started TEE Supplicant.
[ OK ] Started Network Name Resolution. +-----------------------------+
[ OK ] Reached target Network. | |
[ OK ] Reached target Host and Network Name Lookups. | Cannot open /dev/ttyUSB0! |
Starting Permit User Sessions... | |
[ OK ] Started Permit User Sessions. +-----------------------------+
[ OK ] Started Getty on tty1.
[ OK ] Started Serial Getty on ttymxc0.
[ OK ] Reached target Login Prompts.
[ OK ] Started Login Service.
[ OK ] Reached target Multi-User System.
Starting Update UTMP about System Runlevel Changes...
[ OK ] Started Update UTMP about System Runlevel Changes.
[ 4.417591] imx-sdma 302c0000.dma-controller: loaded firmware 4.5
[ 4.480855] spi_imx 30820000.spi: probed
[ 4.486229] spi_imx 30830000.spi: probed
[ OK ] Created slice system-systemd\x2dfsck.slice.
[ OK ] Found device /dev/mmcblk2p1.
Starting File System Check on /dev/mmcblk2p1...
[ OK ] Started File System Check on /dev/mmcblk2p1.
Mounting /run/media/mmcblk2p1...
[ 5.920884] FAT-fs (mmcblk2p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ OK ] Found device /dev/mmcblk1p1.
[ OK ] Mounted /run/media/mmcblk2p1.
Starting File System Check on /dev/mmcblk1p1...
[ OK ] Started File System Check on /dev/mmcblk1p1.
Mounting /run/media/mmcblk1p1...
[ 6.043234] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ OK ] Mounted /run/media/mmcblk1p1.
[ 8.860953] random: crng init done
[ 8.864941] random: 7 urandom warning(s) missed due to ratelimiting
[ OK ] Started Load/Save Random Seed.

NXP i.MX Release Distro 5.4-zeus pteth3 ttymxc0

pteth3 login: root
[ 12.253139] audit: type=1006 audit(1614925960.008:2): pid=594 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
root@pteth3:~# [ 62.430389] cfg80211: failed to load regulatory.db

 Thanks & Regards,

         Vasu

0 Kudos
Reply

6,662 Views
BiyongSUN
NXP Employee
NXP Employee

What's pmic you are using for the customer board?

If the BSP pmic settings doesn't match the hardware, it causes dvfs doesn't work.

For example, L5.4.24-2.1.0 BSP default supports ROHM BD71847MWV.

And L5.4.70-2.3.0   BSP default supports PCA9450.

The i.MX8MM evk board is mounted  ROHM BD71847MWV. If you use  L5.4.70-2.3.0. 

The dvfs will not work. Because  L5.4.70-2.3.0   BSP  try to find PCA9450. But hardware is ROHM BD71847MWV.

You can check if you have "Can't find PMIC" message.

U-Boot SPL 2020.04-5.4.70-2.3.0+ge42dee801e (Dec 04 2020 - 00:28:49 +0000)
Can't find PMIC:PCA9450
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot

root@imx8mmevk:~# ls /sys/devices/system/cpu/cpu0/cpufreq
ls: cannot access '/sys/devices/system/cpu/cpu0/cpufreq': No such file or directory
root@imx8mmevk:~#

0 Kudos
Reply

6,653 Views
Dhevan
Contributor IV

Hi @BiyongSUN,

         Thanks for your reply,

         Our custom board we are using pmic pca9450.

         pmic ic - PCA9450_HVQFN56P_A

         Please review attached pmic configuration

         SDK Version - 5.4.24

        

U-Boot SPL 2020.04-5.4.24-2.1.0+g4979a99482 (Apr 02 2021 - 05:07:51 +0000)
power_pt_pca9450_init
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC2
NOTICE:  BL31: v2.2(release):imx_5.4.24_er3-0-gb0a00f22b-dirty
NOTICE:  BL31: Built : 08:04:42, Mar 17 2021


U-Boot 2020.04-5.4.24-2.1.0+g4979a99482 (Apr 02 2021 - 05:07:51 +0000)

CPU:   i.MX8MMDL rev1.0 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 40C
Reset cause: POR
Model: NXP i.MX8MM EVK board
DRAM:  2 GiB
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... *** Warning - bad CRC, using default environment

Fail to setup video link
In:    serial
Out:   serial
Err:   serial

spl.c

#define I2C_PMIC	0
int power_init_board(void)
{
        struct pmic *p;
        int ret;

        ret = power_pca9450b_init(I2C_PMIC);
        if (ret)
                printf("power init failed");

        p = pmic_get("PCA9450");
        pmic_probe(p);

        /* BUCKxOUT_DVS0/1 control BUCK123 output */
        pmic_reg_write(p, PCA9450_BUCK123_DVS, 0x29);

        /* Buck 1 DVS control through PMIC_STBY_REQ */
        pmic_reg_write(p, PCA9450_BUCK1CTRL, 0x59);

        /* decrease RESET key long push time from the default 10s to 10ms */
        /* Ton_Deb of PCA9450 is 20ms and don't change */
        /* increase VDD_SOC to typical value 0.85v before first DRAM access */
        /* pmic_reg_write(p, PCA9450_BUCK1OUT_DVS0, 0x14); */
        pmic_reg_write(p, PCA9450_BUCK1OUT_DVS0, 0x14);
        pmic_reg_write(p, PCA9450_BUCK1OUT_DVS1, 0x10);

        /* increase VDD_DRAM to 0.975v for 3Ghz DDR -> 0.95V instead of 0.975V, */
        /* because PCA9450 Buck3 can set 0.95V */
        /* Also, set B3_ENMODE=2 (ON by PMIC_ON_REQ=H & PMIC_STBY_REQ=L) */
        pmic_reg_write(p, PCA9450_BUCK3OUT_DVS0, 0x1C);
        pmic_reg_write(p, PCA9450_BUCK3CTRL, 0x4A);

        /* set VDD_SNVS_0V8 from default 0.85V */
        pmic_reg_write(p, PCA9450_LDO2CTRL, 0xC0);

#ifndef CONFIG_IMX8M_LPDDR4
        /* increase NVCC_DRAM_1V2 to 1.2v for DDR4 */
        pmic_reg_write(p, PCA9450_BUCK6OUT, 0x18);
#endif
        /* set WDOG_B_CFG to 10b=Cold Reset, except LDO1/2 */
        pmic_reg_write(p, PCA9450_RESET_CTRL, 0xA1);

        return 0;
}
#endi

 

  uboot dts :

&i2c1 {
        clock-frequency = <400000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
        pinctrl-1 = <&pinctrl_i2c1_gpio>;
        scl-gpios = <&gpio5 14 GPIO_ACTIVE_HIGH>;
        sda-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
        status = "okay";

        pmic: pca9450@25 {
        reg = <0x25>;
        compatible = "nxp,pca9450b";
        /* PMIC PCA9450 PMIC_nINT GPIO1_IO3 */
        pinctrl-0 = <&pinctrl_pmic>;
        gpio_intr = <&gpio1 3 GPIO_ACTIVE_LOW>;

        gpo {
        nxp,drv = <0x0C>;        /* 0b0000_1100 all gpos with cmos output mode */
        };

        regulators {
                      #address-cells = <1>;
                      #size-cells = <0>;
                      pca9450,pmic-buck2-uses-i2c-dvs;
                      pca9450,pmic-buck2-dvs-voltage = <1000000>, <900000>, <0>; /* VDD_ARM: Run-Idle */

                      buck1_reg: regulator@0 {
                                 reg = <0>;
                                 regulator-compatible = "buck1";
                                 regulator-min-microvolt = <600000>;
                                 regulator-max-microvolt = <2187500>;
                                 regulator-boot-on;
                                 regulator-always-on;
                                 regulator-ramp-delay = <3125>;
                      };

                      buck2_reg: regulator@1 {
                                 reg = <1>;
                                 regulator-compatible = "buck2";
                                 regulator-min-microvolt = <600000>;
                                 regulator-max-microvolt = <2187500>;
                                 regulator-boot-on;
                                 regulator-always-on;
                                 regulator-ramp-delay = <3125>;
                      };

buck3_reg: regulator@2 {
reg = <2>;
regulator-compatible = "buck3";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
regulator-boot-on;
regulator-always-on;
};

buck4_reg: regulator@3 {
reg = <3>;
regulator-compatible = "buck4";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};

buck5_reg: regulator@4 {
reg = <4>;
regulator-compatible = "buck5";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};

buck6_reg: regulator@5 {
reg = <5>;
regulator-compatible = "buck6";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};

ldo1_reg: regulator@6 {
reg = <6>;
regulator-compatible = "ldo1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};

ldo2_reg: regulator@7 {
reg = <7>;
regulator-compatible = "ldo2";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <1150000>;
regulator-boot-on;
regulator-always-on;
};

ldo3_reg: regulator@8 {
reg = <8>;
regulator-compatible = "ldo3";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};

ldo4_reg: regulator@9 {
reg = <9>;
regulator-compatible = "ldo4";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};

ldo5_reg: regulator@10 {
reg = <10>;
regulator-compatible = "ldo5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
};
};
};
};

Kenrel dts :

&i2c2 {
	clock-frequency = <400000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2>;
	status = "okay";

        pmic: pca9450@25 {
                   compatible = "nxp,pca9450";
                   reg = <0x25>;
		   /* PMIC PCA9450 PMIC_nINT GPIO1_IO3 */
		   pinctrl-0 = <&pinctrl_pmic>;
		   gpio_intr = <&gpio1 3 GPIO_ACTIVE_LOW>;

		regulators {
			#address-cells = <1>;
			#size-cells = <0>;

			pca9450,pmic-buck2-uses-i2c-dvs;
			/* Run/Standby voltage */
			pca9450,pmic-buck2-dvs-voltage = <950000>, <850000>;

			buck1_reg: regulator@0 {
				reg = <0>;
				regulator-compatible = "buck1";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <2187500>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <3125>;
			};

			buck2_reg: regulator@1 {
				reg = <1>;
				regulator-compatible = "buck2";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <2187500>;
				regulator-boot-on;
				regulator-always-on;
				regulator-ramp-delay = <3125>;
			};

			buck4_reg: regulator@3 {
				reg = <3>;
				regulator-compatible = "buck4";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <3400000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck5_reg: regulator@4 {
				reg = <4>;
				regulator-compatible = "buck5";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <3400000>;
				regulator-boot-on;
				regulator-always-on;
			};

			buck6_reg: regulator@5 {
				reg = <5>;
				regulator-compatible = "buck6";
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <3400000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo1_reg: regulator@6 {
				reg = <6>;
				regulator-compatible = "ldo1";
				regulator-min-microvolt = <1600000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo2_reg: regulator@7 {
				reg = <7>;
				regulator-compatible = "ldo2";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1150000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo3_reg: regulator@8 {
				reg = <8>;
				regulator-compatible = "ldo3";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo4_reg: regulator@9 {
				reg = <9>;
				regulator-compatible = "ldo4";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <3300000>;
				regulator-boot-on;
				regulator-always-on;
			};

			ldo5_reg: regulator@10 {
				reg = <10>;
				regulator-compatible = "ldo5";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;
			};
		};
	};
};

 

0 Kudos
Reply

3,861 Views
PStoykov
Contributor I

Hi @Dhevan 

Did you manage to get the cpufreq running on the imx8m mini?

I also have an empty "/sys/devices/system/cpu/cpufreq" directory. And the cpufreq directory in cpu/cpu* directories doesn't even exist.

0 Kudos
Reply