[RFC 3/5] ARM: CTI: Convert CTI helpers to AMBA bus driver
Pratik Patel
pratikp at codeaurora.org
Thu Jan 3 13:47:52 EST 2013
On Wed, Jan 02, 2013 at 01:23:32PM -0600, Jon Hunter wrote:
>
> On 12/21/2012 04:27 PM, Pratik Patel wrote:
> > On Wed, Dec 12, 2012 at 03:43:06PM -0600, Jon Hunter wrote:
> >> +
> >> +/**
> >> + * cti_irq_ack - acknowledges the CTI trigger output
> >> + * @cti: CTI instance
> >> + *
> >> + * Acknowledges the CTI trigger output by writting to the appropriate
> >> + * bit in the CTI interrupt acknowledge register.
> >> + */
> >> +int cti_irq_ack(struct cti *cti)
> >> +{
> >> + u32 v;
> >> +
> >> + if (!cti || !cti->enabled)
> >> + return -EINVAL;
> >> +
> >> + v = cti_readl(cti, CTIINTACK);
> >
> > Just curious if CTIINTACK is a read-write register? This is a
> > read-only for us.
> >
> >> + v |= BIT(cti->trig_out);
> >> + cti_writel(v, cti, CTIINTACK);
> >> +
> >> + return 0;
> >> +}
> >> +
> >> +
> >> +static int cti_probe(struct amba_device *dev, const struct amba_id *id)
> >> +{
> >> + struct cti *cti;
> >> + struct device_node *np = dev->dev.of_node;
> >> + int rc;
> >> +
> >> + if (!np) {
> >> + dev_err(&dev->dev, "device-tree not found!\n");
> >> + return -ENODEV;
> >> + }
> >> +
> >> + cti = devm_kzalloc(&dev->dev, sizeof(struct cti), GFP_KERNEL);
> >> + if (!cti) {
> >> + dev_err(&dev->dev, "memory allocation failed!\n");
> >> + return -ENOMEM;
> >> + }
> >> +
> >> + rc = of_property_read_string_index(np, "arm,cti-name", 0, &cti->name);
> >> + if (rc) {
> >> + dev_err(&dev->dev, "no name found for CTI!\n");
> >> + return rc;
> >> + }
> >
> > Shouldn't the CTI driver have some kind of clock management that
> > it does for itself?
>
> It does by using runtime PM. If you look at the cti_get/put functions,
> you will see calls to pm_runtime_get/put. These calls will enable the
> AMBA apb-clock. If you need to enable additional clocks then you could
> register pm runtime resume/idle call backs to do this.
>
Ok
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the linux-arm-kernel
mailing list