syscon-poweroff: add a mask property

Sebastian Reichel sre at kernel.org
Sun Jan 29 10:50:12 PST 2017


Hi,

On Sun, Jan 29, 2017 at 02:04:00PM +0200, Guy Shapiro wrote:
> The syscon-poweroff driver powers off the machine by writing a value to
> a register. Both the register and the value are configured via the
> device tree.
> 
> I encountered a situation where I need to mask the written value - some
> values of the register must remain unchanged during the power-down.
> (This is required to turn on the i.mx6ul using the RTC. See [1] for more
> details.)
> 
> Unfortunately, the property of the register value is currently named
> mask, so we can't just add a "mask" property.
> 
> The solutions I could think of:
> 1) Add a new mask property and name it "mask_mask" or something like
> that.
> 2) Create a new "syscon-masked-poweroff" driver that will have value and
> mask properties.
> 
> What do you think?

I suggest the we add a value property to the binding [0]
and use the following logic in the driver to keep
compatibility with the old binding:

if (!value) {
    /* support for old binding */
    val = mask;
    mask = 0xFFFFFFFF;
} else if (!mask) {
    /* support for just providing value */
    mask = 0xFFFFFFFF;
    val = value;
}

regmap_update_bits(map, offset, mask, val);

[0] Documentation/devicetree/bindings/power/reset/syscon-poweroff.txt

-- Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170129/5f0dd3f4/attachment.sig>


More information about the linux-arm-kernel mailing list