From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Boyd Subject: Re: Not able to set RTC with qpnp-rtc driver Date: Wed, 23 Jul 2014 16:26:08 -0700 Message-ID: <53D04490.8090800@codeaurora.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from smtp.codeaurora.org ([198.145.11.231]:37308 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756000AbaGWX0K (ORCPT ); Wed, 23 Jul 2014 19:26:10 -0400 In-Reply-To: Sender: linux-arm-msm-owner@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org To: Siteshwar Cc: linux-arm-msm@vger.kernel.org On 07/23/14 13:28, Siteshwar wrote: > Hello, > > I am trying to set RTC on Nexus 5 (which uses qpnp-rtc driver).and > getting a permission error while setting it. > > I am making following call from my application with valid arguments : > > ioctl(rtc_fd, RTC_SET_TIME, tod) > > when I make this call I see below messages in dmesg logs : > > [ 26.945670] spmi_pmic_arb fc4cf000.qcom,spmi: > pmic_arb_wait_for_done: transaction denied (0x5) > [ 26.945743] qcom,qpnp-rtc qpnp-rtc-f85bbe00: SPMI write failed > [ 26.945856] qcom,qpnp-rtc qpnp-rtc-f85bbe00: Write to RTC reg failed 1 > > The transaction denied message is coming from > https://github.com/CyanogenMod/android_kernel_lge_hammerhead/blob/85564c374b6b082fc447f6dae53a630c04b4ef1c/drivers/spmi/spmi-pmic-arb.c#L158 > > It's fairly low level stuff and I am not sure why should it give a > permission error. The only config option I can find from documentation > is qpnp-rtc-write > (https://github.com/CyanogenMod/android_kernel_lge_hammerhead/blob/cm-11.0/Documentation/devicetree/bindings/rtc/qpnp-rtc.txt) > and it is set in my configurations. In what cases I will get this > error while setting RTC ? Could this be a bug in the driver ? > qpnp-rtc-write is not a config option. It's a DT property and it states that the RTC can be written if it's set to 1 (it really should have been a boolean property). If it isn't set the RTC can't be programmed by the OS (i.e. it's configured by another entity outside of Linux). Looking at the dts files in the cyanogenmod kernel you pointed to I don't see this value set to anything but 0. You say that property is set in your configurations. Have you modified the DT to have this property set to 1? If so, don't do that. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation