ofs | hex dump | ascii |
---|
0000 | 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 04 b7 00 00 02 21 08 02 00 00 00 33 75 cf | .PNG........IHDR.......!.....3u. |
0020 | 3d 00 00 00 03 73 42 49 54 08 08 08 db e1 4f e0 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 65 | =....sBIT.....O.....tEXtSoftware |
0040 | 00 67 6e 6f 6d 65 2d 73 63 72 65 65 6e 73 68 6f 74 ef 03 bf 3e 00 00 20 00 49 44 41 54 78 9c ec | .gnome-screenshot...>....IDATx.. |
0060 | bd 79 7c 15 d5 fd ff ff 7e 9f 49 08 49 80 b0 5a 10 ca 26 41 59 14 10 10 15 ad 55 c1 0d f7 a2 b5 | .y|.....~.I.I..Z..&AY.....U..... |
0080 | d5 b6 d6 6a ad 5d 14 ad fa ad d6 b5 da da ba 54 ad 3f 5b a9 ad 7e 6c dd 17 dc 41 50 11 ab 56 01 | ...j.].........T.?[..~l...AP..V. |
00a0 | 01 51 54 44 44 40 36 91 00 61 0f c9 3d ef df 1f 67 99 c9 9d b9 37 37 c9 4d 02 f6 f5 6c 1f 78 33 | .QTDD@6..a..=...g....77.M...l.x3 |
00c0 | 77 e6 ac 33 73 cf eb bc df e7 7d 58 44 08 00 00 00 00 00 00 00 00 20 22 22 d5 d2 05 00 00 00 00 | w..3s.....}XD..........""....... |
00e0 | 00 00 00 00 b0 0b 01 95 08 00 00 00 00 00 00 00 20 04 2a 11 00 00 00 00 00 00 00 40 08 54 22 00 | ..................*........@.T". |
0100 | 00 00 00 00 00 00 80 90 82 96 2e 00 00 2d c3 e6 cd 9b 9f 7c f2 c9 39 73 e6 6c dc b8 b1 6d db b6 | .............-.....|..9s.l...m.. |
0120 | 43 86 0c 39 ed b4 d3 3a 75 ea d4 d2 e5 02 00 34 2d a9 54 6a ca 94 29 33 66 cc 58 b3 66 4d 51 51 | C..9...:u......4-.Tj..)3f.X.fMQQ |
0140 | 51 79 79 f9 a9 a7 9e da bf 7f ff 96 2e 17 00 00 00 b0 0b c1 88 71 0a fe 07 d9 bc 79 f3 6f 7f fb | Qyy..................q.....y.o.. |
0160 | db af be fa 2a 7a b0 5d bb 76 bf ff fd ef 3b 77 ee dc 52 a5 02 00 34 03 b7 de 7a eb 9c 39 73 a2 | ....*z.].v....;w..R...4...z..9s. |
0180 | 47 98 f9 d2 4b 2f dd 7f ff fd 5b aa 48 00 00 00 c0 ae 06 3c 4e c1 ff 22 cf 3f ff 7c 9a 44 24 a2 | G...K/....[.H......<N..".?.|.D$. |
01a0 | 4d 9b 36 3d f5 d4 53 2d 52 1e 00 40 f3 f0 de 7b ef a5 49 44 22 12 91 07 1e 78 a0 45 ca 03 00 00 | M.6=..S-R..@...{..ID"....x.E.... |
01c0 | 00 ec 9a e4 c7 e3 54 44 56 ad 5a b5 72 e5 ca f5 eb d7 ef d8 b1 83 88 8a 8b 8b 3b 77 ee fc cd 6f | ......TDV.Z.r.............;w...o |
01e0 | 7e 73 8f 3d f6 c8 4b 16 00 e4 91 4f 3f fd 34 f1 f8 a2 45 8b 9a b9 24 00 80 e6 24 d3 b3 bf 76 ed | ~s.=..K....O?.4...E...$...$...v. |
0200 | da ca ca ca b2 b2 b2 66 2e 0f 00 00 00 b0 6b d2 58 95 f8 c9 27 9f cc 98 31 e3 dd 77 df dd b2 65 | .......f......k.X...'...1..w...e |
0220 | 4b e2 09 1d 3a 74 38 e0 80 03 8e 38 e2 88 9e 3d 7b d6 99 da fd f7 df 3f 6d da b4 3a 4f 2b 2a 2a | K...:t8....8...={......?m..:O+** |
024/*
* Core pinctrl/GPIO driver for Intel GPIO controllers
*
* Copyright (C) 2015, Intel Corporation
* Authors: Mathias Nyman <mathias.nyman@linux.intel.com>
* Mika Westerberg <mika.westerberg@linux.intel.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef PINCTRL_INTEL_H
#define PINCTRL_INTEL_H
struct pinctrl_pin_desc;
struct platform_device;
struct device;
/**
* struct intel_pingroup - Description about group of pins
* @name: Name of the groups
* @pins: All pins in this group
* @npins: Number of pins in this groups
* @mode: Native mode in which the group is muxed out @pins
*/
struct intel_pingroup {
const char *name;
const unsigned *pins;
size_t npins;
unsigned short mode;
};
/**
* struct intel_function - Description about a function
* @name: Name of the function
* @groups: An array of groups for this function
* @ngroups: Number of groups in @groups
*/
struct intel_function {
const char *name;
const char * const *groups;
size_t ngroups;
};
/**
* struct intel_community - Intel pin community description
* @barno: MMIO BAR number where registers for this community reside
* @padown_offset: Register offset of PAD_OWN register from @regs. If %0
* then there is no support for owner.
* @padcfglock_offset: Register offset of PADCFGLOCK from @regs. If %0 then
* locking is not supported.
* @hostown_offset: Register offset of HOSTSW_OWN from @regs. If %0 then it
* is assumed that the host owns the pin (rather than
* ACPI).
* @ie_offset: Register offset of GPI_IE from @regs.
* @pin_base: Starting pin of pins in this community
* @gpp_size: Maximum number of pads in each group, such as PADCFGLOCK,
* HOSTSW_OWN, GPI_IS, GPI_IE, etc.
* @npins: Number of pins in this community
* @regs: Community specific common registers (reserved for core driver)
* @pad_regs: Community specific pad registers (reserved for core driver)
* @ngpps: Number of groups (hw groups) in this community (reserved for
* core driver)
*/
struct intel_community {
unsigned barno;
unsigned padown_offset;
unsigned padcfglock_offset;
unsigned hostown_offset;
unsigned ie_offset;
unsigned pin_base;
unsigned gpp_size;
size_t npins;
void __iomem *regs;
void __iomem *pad_regs;
size_t ngpps;
};
#define PIN_GROUP(n, p, m) \
{ \
.name = (n), \
.pins = (p), \
.npins = ARRAY_SIZE((p)), \
.mode = (m), \
}
#define FUNCTION(n, g) \
{ \
.name = (n), \
.groups = (g), \
.ngroups = ARRAY_SIZE((g)), \
}
/**
* struct intel_pinctrl_soc_data - Intel pin controller per-SoC configuration
* @uid: ACPI _UID for the probe driver use if needed
* @pins: Array if pins this pinctrl controls
* @npins: Number of pins in the array
* @groups: Array of pin groups
* @ngroups: Number of groups in the array
* @functions: Array of functions
* @nfunctions: Number of functions in the array
* @communities: Array of communities this pinctrl handles
* @ncommunities: Number of communities in the array
*
* The @communities is used as a template by the core driver. It will make
* copy of all communities and fill in rest of the information.
*/
struct intel_pinctrl_soc_data {
const char *uid;
const struct pinctrl_pin_desc *pins;
size_t npins;
const struct intel_pingroup *groups;
size_t ngroups;
const struct intel_function *functions;
size_t nfunctions;
const struct intel_community *communities;
size_t ncommunities;
};
int intel_pinctrl_probe(struct platform_device *pdev,
const struct intel_pinctrl_soc_data *soc_data);
int intel_pinctrl_remove(struct platform_device *pdev);
#ifdef CONFIG_PM_SLEEP
int intel_pinctrl_suspend(struct device *dev);
int intel_pinctrl_resume(struct device *dev);
#endif
#endif /* PINCTRL_INTEL_H */
|