e-ink display does not work with Android on i.MX 508

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

e-ink display does not work with Android on i.MX 508

2,158 Views
embewee
Contributor I

Hello everybody,

 

I'm using an i.MX 508 board with a flexible display from Plastic Logic. It works fine with the provided Freescale Linux - but I want to use it with Android. I downloaded the imx-android-r9.4.2 from Freescale website, dd'ed it to an SD card and it works. I access the Android system with Putty over the serial port.


Unfortunately it can't use the flexible display. I get


mxc_epdc_fb mxc_epdc_fb: Unable to enable DISPLAY regulator.err = 0xffffff92


already on boot up. I attached the full log file.


Nevertheless I cross-compiled the Plastic Logic SDK (https://github.com/plasticlogic/) for ARM with the Android NDK. The binaries can be executed on the on the system, but the problem with the display remains.

One colleague told me it might be a problem with the Android frame buffer driver, so I went through the Plastic Logic SDK to find a driver module which I can build and modprobe, but the SDK does only create shared libraries.


Do you have any ideas how I can solve the problem or where to look for more information? Any help is appreciated.

Original Attachment has been moved to: android_boot.log.zip

Labels (3)
0 Kudos
9 Replies

1,496 Views
CarlosCasillas
NXP Employee
NXP Employee

Hi Michael,

Have you checked the recommendations from PeterChan? Did it solve your troubles?

Best regards!

/Carlos

0 Kudos

1,496 Views
embewee
Contributor I

Hello,

I tried  the precompiled Android 10.3 demo image from the provided link, but it does not work with the flexible display. The error seems to be the same (full boot log attached):


mxc_epdc_fb mxc_epdc_fb: Unable to enable DISPLAY regulator.err = 0xffffff92

Do I have to change the code manually and compile it or is there another way to make it work? Is this a general problem with the frame buffer on Android?

Best regards, Michael

0 Kudos

1,496 Views
PeterChan
NXP Employee
NXP Employee

Hello Michael,

My boot log is almost the same as yours except mine does NOT the error message "Unable to enable DISPLAY regulator.err = 0xffffff92". Do you see the same similar error in Linux BSP? Again, the Linux image is available at i.MX50 Software and Development Tool Resource|Freescale?

If you still experience the same error in Linux image, you may need to debug the MAX17135 "DISPLAY" regulator driver why it cannot enable.

Thanks,

Peter

0 Kudos

1,497 Views
embewee
Contributor I

Hello Peter,

you mentioned the Linux BSP. Is the BSP a separate package, which needs to be installed on the system?

Maybe I'm wrong, but I understood the Android image to be the BSP. I downloaded the Android 10.3 image from the link you provided. The display regulator error appears on both Android versions (9.4.2 and 10.3).

Greetings, Michael

0 Kudos

1,497 Views
PeterChan
NXP Employee
NXP Employee

Yes, the Linux BSP is another package installed to your Linux host machine. The kernel is based on L2.6.35 and I think the current version is L2.6.35_MX508_ER_1104 (ER6).

0 Kudos

1,497 Views
embewee
Contributor I

Hello Peter,

I'm sorry, I didn't understand it yet. Do I have to install the BSP package on the development system - not on the Android system?

I looked through the download links at the page you provided. There is one link containing "BSP", which is for downloading the Android 10.3 image. I downloaded it before, tested it and got the error described above.

Is there an introduction to BSPs? Maybe also on how to add/install driver needed? I couldn't find any documentation which describes my problem or a solution to my problem on the Freescale site. I'm new to this topic and currently learning the ropes.

Greetings, Michael

0 Kudos

1,497 Views
PeterChan
NXP Employee
NXP Employee

Sorry for the confusion. I meant to use i.MX50 Linux Source Code and build an image to test if the EPD PMIC DISPLAY regulator can on and the EPD can function properly. (I don't think the demo image has enable the EPDC driver option and the EPD daughter card may not work).

Alternatively, you can debug the function max17135_display_enable() at  kernel_imx/drivers/regulator/max17135-regulator.c to find out what is going wrong.

1,497 Views
embewee
Contributor I

Hello,

thank you PeterChan for the quick answer. Unfortunately I was out of office for the last days, so I couldn't check the proposed solution yet. I will deal with it from now and report from progress.

Best regards, Michael

0 Kudos

1,497 Views
PeterChan
NXP Employee
NXP Employee

The error is caused by "regulator_enable(fb_data->display_regulator)" failure when the EPDC driver attempts to turn on the e-ink display regulator.

I am not sure if the error is related to this software bug in old BSP release.

ENGR00143486 - MSL: MAX17135 init_data incorrectly declared __initdata

- Removed __initdata from regulator_init_data structure declaration.  This

protects the MAX17135 regulator from having its structure overwritten, which

was causing a bug when writing large chunks of memory.

--- a/arch/arm/mach-mx5/mx50_rdp.c

+++ b/arch/arm/mach-mx5/mx50_rdp.c

@@ -667,7 +667,7 @@ static struct mxc_spi_master mxcspi3_data = {

#define V_to_uV(V) (mV_to_uV(V * 1000))

#define uV_to_V(uV) (uV_to_mV(uV) / 1000)

-static struct regulator_init_data max17135_init_data[] __initdata = {

+static struct regulator_init_data max17135_init_data[] = {

        {

                .constraints = {

                        .name = "DISPLAY",

Since the latest Android BSP for i.MX508 is Android 10.3 (Gingerbread) Source Code, please use this BSP for your Android i.MX508 evaluation. The Android BSP is available at i.MX50 Software and Development Tool Resource|Freescale.

0 Kudos