Hi,
I am working on OMAP4470 (Kernel version is 3.0.31) and facing problem with HDQ one wire communication with BQ27545, Below are details:
1. The battery fuel gauge IC BQ27545 is inside battery pack and connected to OMAP through HDQ line.
2. I have enabled the HDQ interface by enabling below configuration:
CONFIG_W1=y
CONFIG_HDQ_MASTER_OMAP=y
CONFIG_W1_SLAVE_BQ27000=y
CONFIG_BATTERY_BQ27x00=y
CONFIG_BATTERY_BQ27X00_PLATFORM=y
3. Below are the problems:
a. In omap_hdq.c file in probe hardware version was showing REV 0.0, for this I modified __raw_readb() call to __raw_readl() in hdq_reg_in() function in omap_hdq.c file
After this it is working and I am seeing REV 0.7 in logs.
b. The irq was initially failing (IRQ -58) because irq 58 is used for mailbox and HDQ.
What is required to do this? I have opened IRQ-58 for HDQ is share mode. Is it correct? How we can change mailbox interrupt?
c. The HDQ ISR is not hitting and due to this hdq_data->hdq_irqstatus flag is always zero. Also below message I found in log
w1_master_driver w1 bus master: Family 1 for 01.000000000000.3d is not registered.
Is there any problem?
d. I have done below changes to configure hdq_sdi line in board file, Is it correct?
omap_mux_init_signal("hdq_sio.hdq_sio", OMAP_MUX_MODE0 | OMAP_PIN_INPUT);
e. After doing HDQ initialization the PRESENCEDETECT bit still shows 0 in HDQ_CTRL_STATUS register.
Is my hdq_sio line configuration is correct?
Please help me to solve this issue and let me know if need more information to suggest on this query.
Thanks and Regards,
Raviraj