Searching for tester of Linux Kernel drivers

Started by swahren, November 21, 2014, 07:49:39 PM

Previous topic - Next topic

swahren

#15
Okay, the repository is ready now. It contains the patches for all 3 stages (mxs_power, mxs-regulator and cpufreq support). I modified mxs_defconfig to simplify kernel build and testing.

I want to clarify that the mxs_power driver doesn't support battery charging. The focus for the test is cpufreq-dt (formally know as cpufreq-cpu0) and it's dependencies.

First of all, i don't want to narrow down the test path. So please see the following scenario as a hint:


  • checkout the repository with git ( https://github.com/lategoodbye/linux-mxs-power.git )
  • config the kernel for your platform including mxs_power, mxs-regulator and cpufreq-dt
  • build a bootable image (bootloader, kernel, devicetree blob, rootfs) as usual
  • boot your system with the image
  • check if mxs_power and mxs-regulator are loaded successfully
  • check if sysfs interface of cpufreq is available ( /sys/devices/system/cpu/cpu0/cpufreq/ )
  • play a little bit with it

Here is the list of the kernel config parameter, if you want to use your "old" config:

CONFIG_POWER_SUPPLY
CONFIG_MXS_POWER
CONFIG_REGULATOR_DEBUG
CONFIG_REGULATOR_MXS
CONFIG_CPU_FREQ
CONFIG_CPUFREQ_DT
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE
CONFIG_CPU_FREQ_GOV_PERFORMANCE
CONFIG_CPU_FREQ_GOV_POWERSAVE
CONFIG_CPU_FREQ_GOV_ONDEMAND
CONFIG_CPU_FREQ_GOV_CONSERVATIVE


Good luck

Edit: For those of you how aren't familiar to cpufreq:


$ cd /sys/devices/system/cpu/cpu0/cpufreq
$ cat scaling_available_frequencies
# Set to 261 MHz speed
$ echo 261819 > scaling_setspeed
# Set to 392 MHz speed
$ echo 392728 > scaling_setspeed
# Set to 360 MHz speed
$ echo 360000 > scaling_setspeed
# Set to 454 MHz speed
$ echo 454737 > scaling_setspeed

Evgeny Boger

cpufreq seems to work fine.
I changed the frequency to 266MHhz and the CPU performance dropped as expected.
I'll try to look at power consumption tomorrow.

What are the other things you suggest to check, if any?

By the way, do you have any plans to support suspend/resume on i.mx23/28 ?


swahren

Quote from: Evgeny Boger on December 03, 2014, 03:55:52 AM
cpufreq seems to work fine.
I changed the frequency to 266MHhz and the CPU performance dropped as expected.
I'll try to look at power consumption tomorrow.

Nice to hear. Could you please post the dmesg output?

Quote from: Evgeny Boger on December 03, 2014, 03:55:52 AM
What are the other things you suggest to check, if any?

The driver for the power subsystem supports a module parameter to set the DCDC source frequency in kHz. This is a feature to avoid interferences, but usually not needed.

You change the frequency to one of these values:
19200, 20000, 24000

by setting the the parameter in the kernel cmdline:
mxs_power.dcdc_pll=19200

Quote from: Evgeny Boger on December 03, 2014, 03:55:52 AM
By the way, do you have any plans to support suspend/resume on i.mx23/28 ?

Actually not. Those features are more complex.

Evgeny Boger

dmesg output with mxs_power.dcdc_pll=19200 :

root@wirenboard:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.18.0-rc6-imxv5-x0.1 (boger@boger-ThinkPad-Edge-E440) (gcc version 4.7.4 20130913 (release) [ARM/embedded-4_7-branch revision
202601] (GNU Tools for ARM Embedded Processors) ) #10 Tue Dec 2 23:57:44 MSK 2014
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine model: i.MX23 Olinuxino Low Cost Board
[    0.000000] Memory policy: Data cache writeback
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat c0737d3c, node_mem_map c3f7c000
[    0.000000]   Normal zone: 128 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: console=ttyAMA0,115200 mxs_power.dcdc_pll=19200 root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait fixrtc video=
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 49260K/65536K available (5008K kernel code, 300K rwdata, 1784K rodata, 292K init, 8201K bss, 16276K reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)
[    0.000000]     vmalloc : 0xc4800000 - 0xff000000   ( 936 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc06aa460   (6794 kB)
[    0.000000]       .init : 0xc06ab000 - 0xc06f4000   ( 292 kB)
[    0.000000]       .data : 0xc06f4000 - 0xc073f040   ( 301 kB)
[    0.000000]        .bss : 0xc073f040 - 0xc0f41740   (8202 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836480000000ns
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.000000] ... MAX_LOCKDEP_CHAINS:      65536
[    0.000000] ... CHAINHASH_SIZE:          32768
[    0.000000]  memory used by lock dependency info: 5167 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.070000] Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.070000] CPU: Testing write buffer coherency: ok
[    0.080000] Setting up static identity map for 0x404c16d0 - 0x404c1728
[    0.100000] devtmpfs: initialized
[    0.110000] pinctrl core: initialized pinctrl subsystem
[    0.120000] regulator-dummy: no parameters
[    0.150000] NET: Registered protocol family 16
[    0.160000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.190000] gpiochip_add: registered GPIOs 0 to 31 on device: 80018000.pinctrl:gpio@0
[    0.200000] gpiochip_add: registered GPIOs 32 to 63 on device: 80018000.pinctrl:gpio@1
[    0.200000] gpiochip_add: registered GPIOs 64 to 95 on device: 80018000.pinctrl:gpio@2
[    0.240000] Serial: AMBA PL011 UART driver
[    0.240000] uart-pl011 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 17, base_baud = 0) is a PL011 rev2
[    0.440000] console [ttyAMA0] enabled
[    0.510000] mxs-dma 80004000.dma-apbh: initialized
[    0.530000] mxs-dma 80024000.dma-apbx: initialized
[    0.540000] of_get_named_gpiod_flags: parsed 'gpio' property of node '/regulators/regulator@0[0]' - status (0)
[    0.540000] usb0_vbus: 5000 mV
[    0.550000] usbcore: registered new interface driver usbfs
[    0.550000] usbcore: registered new interface driver hub
[    0.560000] usbcore: registered new device driver usb
[    0.570000] Advanced Linux Sound Architecture Driver Initialized.
[    0.590000] Switched to clocksource mxs_timer
[    0.600000] cfg80211: Calling CRDA to update world regulatory domain
[    1.140000] NET: Registered protocol family 2
[    1.150000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    1.160000] TCP bind hash table entries: 1024 (order: 3, 36864 bytes)
[    1.170000] TCP: Hash tables configured (established 1024 bind 1024)
[    1.180000] TCP: reno registered
[    1.180000] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    1.190000] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    1.200000] NET: Registered protocol family 1
[    1.200000] NetWinder Floating Point Emulator V0.97 (double precision)
[    1.220000] futex hash table entries: 256 (order: 1, 11264 bytes)
[    1.350000] msgmni has been set to 96
[    1.370000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    1.370000] io scheduler noop registered (default)
[    1.390000] of_dma_request_slave_channel: dma-names property of node '/apb@80000000/apbx@80040000/serial@80070000' missing or empty
[    1.400000] uart-pl011 80070000.serial: no DMA platform data
[    1.410000] mxs-auart 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 147, base_baud = 1500000) is a 8006c000.serial
[    1.420000] mxs-auart 8006c000.serial: Found APPUART 3.0.0
[    1.440000] PPP generic driver version 2.4.2
[    1.450000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.460000] usbcore: registered new interface driver usbserial
[    1.470000] usbcore: registered new interface driver usbserial_generic
[    1.470000] usbserial: USB Serial support registered for generic
[    1.490000] ci_hdrc ci_hdrc.0: doesn't support gadget
[    1.500000] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    1.510000] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.530000] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.530000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.540000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.550000] usb usb1: Product: EHCI Host Controller
[    1.550000] usb usb1: Manufacturer: Linux 3.18.0-rc6-imxv5-x0.1 ehci_hcd
[    1.560000] usb usb1: SerialNumber: ci_hdrc.0
[    1.580000] hub 1-0:1.0: USB hub found
[    1.580000] hub 1-0:1.0: 1 port detected
[    1.600000] mousedev: PS/2 mouse device common for all mice
[    1.620000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0
[    1.630000] i2c /dev entries driver
[    1.640000] mxs_power 80044000.power: DCDC clock freq: 19200 kHz
[    1.650000] vddd: 1350 <--> 1550 mV at 1500 mV
[    1.650000] regulator regulator.2: vddd: Set LinReg offset below DCDC target
[    1.660000] vdda: 1725 <--> 1950 mV at 1800 mV
[    1.670000] regulator regulator.3: vdda: Set LinReg offset below DCDC target
[    1.680000] vddio: 80mV offset
[    1.690000] regulator regulator.4: vddio: Invalid power source config
[    1.700000] stmp3xxx_rtc_wdt stmp3xxx_rtc_wdt: initialized watchdog with heartbeat 19s
[    1.720000] 80010000.ssp supply vmmc not found, using dummy regulator
[    1.730000] mxs-mmc 80010000.ssp: GPIO lookup for consumer cd
[    1.730000] mxs-mmc 80010000.ssp: using device tree for GPIO lookup
[    1.730000] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/apb@80000000/apbh@80000000/ssp@80010000[0]'
[    1.730000] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/apb@80000000/apbh@80000000/ssp@80010000[0]'
[    1.730000] mxs-mmc 80010000.ssp: using lookup tables for GPIO lookup
[    1.730000] mxs-mmc 80010000.ssp: lookup for GPIO cd failed
[    1.730000] mxs-mmc 80010000.ssp: GPIO lookup for consumer wp
[    1.730000] mxs-mmc 80010000.ssp: using device tree for GPIO lookup
[    1.730000] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/apb@80000000/apbh@80000000/ssp@80010000[0]'
[    1.730000] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/apb@80000000/apbh@80000000/ssp@80010000[0]'
[    1.730000] mxs-mmc 80010000.ssp: using lookup tables for GPIO lookup
[    1.730000] mxs-mmc 80010000.ssp: lookup for GPIO wp failed
[    1.770000] mxs-mmc 80010000.ssp: initialized
[    1.770000] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/user[0]' - status (0)
[    1.800000] usbcore: registered new interface driver usbhid
[    1.810000] usbhid: USB HID core driver
[    1.820000] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.840000] mmc0: new high speed SDHC card at address b368
[    1.860000] TCP: cubic registered
[    1.870000] mmcblk0: mmc0:b368 USD   7.45 GiB
[    1.900000] NET: Registered protocol family 10
[    1.910000] sit: IPv6 over IPv4 tunneling driver
[    1.920000] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    1.930000]  mmcblk0: p1 p2
[    1.940000] NET: Registered protocol family 17
[    1.950000] mmcblk0: p2 size 15603712 extends beyond EOD, truncated
[    1.960000] Key type dns_resolver registered
[    1.980000] cpufreq: __cpufreq_add_dev: CPU0: Running at unlisted freq: 454736 KHz
[    1.990000] cpufreq: __cpufreq_add_dev: CPU0: Unlisted initial frequency changed to: 454737 KHz
[    2.010000] registered taskstats version 1
[    2.020000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:00:07 UTC (7)
[    2.030000] device-tree: Duplicate name in testcase-data, renamed to "duplicate-name#1"
[    2.060000] ### dt-test ### start of selftest - you will see error messages
[    2.070000] /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
[    2.080000] /testcase-data/phandle-tests/consumer-a: could not get #phandle-cells-missing for /testcase-data/phandle-tests/provider1
[    2.090000] /testcase-data/phandle-tests/consumer-a: could not find phandle
[    2.100000] /testcase-data/phandle-tests/consumer-a: could not find phandle
[    2.110000] /testcase-data/phandle-tests/consumer-a: arguments longer than property
[    2.110000] /testcase-data/phandle-tests/consumer-a: arguments longer than property
[    2.130000] irq: no irq domain found for /testcase-data/interrupts/intc0 !
[    2.150000] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.150000] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.160000] ### dt-test ### end of selftest - 115 passed, 0 failed
[    2.190000] hub 1-1:1.0: USB hub found
[    2.190000] hub 1-1:1.0: 5 ports detected
[    2.240000] vddio: disabling
[    2.240000] vdda: disabling
[    2.240000] vddd: disabling
[    2.250000] ALSA device list:
[    2.250000]   No soundcards found.
[    2.270000] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    2.280000] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    2.500000] usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
[    2.630000] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.630000] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.740000] usb 1-1.5: new high-speed USB device number 4 using ci_hdrc
[    2.870000] usb 1-1.5: New USB device found, idVendor=0bda, idProduct=018a
[    2.880000] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.880000] usb 1-1.5: Product: 802.11n WLAN Adapter
[    2.890000] usb 1-1.5: Manufacturer: Realtek
[    2.890000] usb 1-1.5: SerialNumber: 00e04c000001
[    2.950000] EXT4-fs (mmcblk0p2): recovery complete
[    2.970000] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.980000] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    3.010000] devtmpfs: mounted
[    3.010000] Freeing unused kernel memory: 292K (c06ab000 - c06f4000)
[    6.480000] udevd[151]: starting version 175
[   13.410000] smsc95xx v1.0.4
[   13.670000] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-ci_hdrc.0-1.1, smsc95xx USB 2.0 Ethernet, d6:53:61:b9:e3:c6
[   13.730000] rtl8192cu: Chip version 0x10
[   13.730000] usbcore: registered new interface driver smsc95xx
[   14.970000] rtl8192cu: MAC address: 00:a1:10:f0:02:ee
[   14.980000] rtl8192cu: Board Type 0
[   15.000000] rtl_usb: rx_max_size 15360, rx_urb_num 8, in_ep 1
[   15.000000] cfg80211: Updating information on frequency 2412 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2417 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2422 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2427 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2432 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2437 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2442 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2447 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2452 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2457 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Updating information on frequency 2462 MHz with regulatory rule:
[   15.000000] cfg80211: 2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A mBi, 2000 mBm)
[   15.000000] cfg80211: Disabling freq 2467 MHz as custom regd has no rule that fits it
[   15.000000] cfg80211: Disabling freq 2472 MHz as custom regd has no rule that fits it
[   15.000000] cfg80211: Disabling freq 2484 MHz as custom regd has no rule that fits it
[   15.010000] rtl8192cu: Loading firmware rtlwifi/rtl8192cufw_TMSC.bin
[   15.020000] cfg80211: Ignoring regulatory request set by core since the driver uses its own custom regulatory domain
[   15.050000] usb 1-1.5: Direct firmware load for rtlwifi/rtl8192cufw_TMSC.bin failed with error -2
[   15.070000] rtlwifi: Loading alternative firmware rtlwifi/rtl8192cufw.bin
[   15.080000] ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
[   15.110000] usbcore: registered new interface driver rtl8192cu
[   21.850000] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[   22.780000] EXT4-fs (mmcblk0p2): re-mounted. Opts: errors=remount-ro
[   46.350000] random: nonblocking pool is initialized
[   50.900000] rtl8192cu: MAC auto ON okay!
[   51.190000] rtl8192cu: Tx queue select: 0x05
[   52.230000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   52.360000] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[   52.380000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   53.960000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   53.970000] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1




swahren

Thank you, Evgeny

Which bootloader does your board use?
Is it a 5V only configuration?


Evgeny Boger

u-boot.
Yes, it's 5V-only, BAT pin is not connected. Eagle board and schematic can be found here: https://github.com/contactless/hardware/tree/master/WB-IMX233-CORE/C3 . The hardware is very similar to the Olinuxino Micro.

swahren

I have submitted a bugfix for clock handling. It would be nice if someone can test it.

Btw i've found out that ref_cpu is parent of the fec clock. So it's necessary to test Ethernet after changing cpu frequency.

swahren

Hi,

here are some updates from my Github repository:

- update repository to pm+acpi-3.19-rc4
- some bugfixes in the regulator driver
- implement is_enabled operation for regulator driver to get current state
- some limit fixes in the DT binding for the i.MX23/i.MX28

Stefan

swahren

I submitted the first version of cpufreq support patch, yesterday:

http://marc.info/?l=linux-pm&m=142698428606221&w=2

Thanks goes to all the testers.

Stefan

swahren

Hi,

since i'm already working on the power subsystem i also started the mainline port of the pswitch input driver:

https://github.com/lategoodbye/mxs_pswitch/tree/mainline

I think this feature would be interesting for the Olimex boards (MINI, MAXI) because AFAIK the PWR_BUT has no function in mainline.

swahren

Hi,

the last updates from Github repository:

- rebase on 4.0rc4
- add syscon support to mxs_power and mxs-regulator
- separate mxs-regulator in LDO and DC-DC part
- make DC-DC switching frequency a DT property
- implement proper 5V status handling for mxs_power
- several bugfixes ...

Stefan

swahren

Hi,

there are some updates about OTP driver support for MX23. The upcoming Kernel 4.3 will have a new framework for Non-Violatile-Memory (NVMEM) just like EEPROM or OTP. My OTP driver based now on that framework and has been acked.

Stefan

lambda

Hi Stefan,

that's great news! Since you obviously already looked into nvmem in
detail: Do you think nvmem is the way to go to support the persistent
bits from the rtc/watchdog block?

I'm working on a few patches against the rtc and watchdog drivers
and the watchdog driver is an in-kernel consumer of persistent bits,
but there is no proper support so the driver just does the register
accesses itself.

TIA,
Harald

swahren

Hi Harald,

nvmem framework is pretty new and currently only supports userspace access. The in-kernel interface would come in the near future.

To your question: the persistent bits are some kind of special, but i think you could give it a try.

Stefan

joerg.krause

Hi Stefan,

do you have plans to work on this any further? I would like to test your patches on a 4.4 kernel.

Jörg