diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-12 02:22:52 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-12 02:22:52 -0500 |
commit | 56c8bc3b7ed3d24c665e2ce992f86a5bedffc852 (patch) | |
tree | ee8747e83beb5a4323dd2328f3368ffb9031dc31 /include/linux | |
parent | b8bf17d311c875de02550d5ce2af66588734159a (diff) | |
parent | 1c1744cc7cee83b96e3a89c1b9853fc033bafb9c (diff) |
Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh
SuperH updates for 3.3 merge window.
* tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (38 commits)
sh: magicpanelr2: Update for parse_mtd_partitions() fallout.
sh: mach-rsk: Update for parse_mtd_partitions() fallout.
sh: sh2a: Improve cache flush/invalidate functions
sh: also without PM_RUNTIME pm_runtime.o must be built
sh: add a resource name for shdma
sh: Remove redundant try_to_freeze() invocations.
sh: Ensure IRQs are enabled across do_notify_resume().
sh: Fix up store queue code for subsys_interface changes.
sh: clkfwk: sh_clk_init_parent() should be called after clk_register()
sh: add platform_device for renesas_usbhs in board-sh7757lcr
sh: modify clock-sh7757 for renesas_usbhs
sh: pfc: ioremap() support
sh: use ioread32/iowrite32 and mapped_reg for div6
sh: use ioread32/iowrite32 and mapped_reg for div4
sh: use ioread32/iowrite32 and mapped_reg for mstp32
sh: extend clock struct with mapped_reg member
sh: clkfwk: clock-sh73a0: all div6_clks use SH_CLK_DIV6_EXT()
sh: clkfwk: clock-sh7724: all div6_clks use SH_CLK_DIV6_EXT()
sh: clock-sh7723: add CLKDEV_ICK_ID for cleanup
serial: sh-sci: Handle GPIO function requests.
...
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/serial_sci.h | 22 | ||||
-rw-r--r-- | include/linux/sh_clk.h | 10 | ||||
-rw-r--r-- | include/linux/sh_pfc.h | 11 |
3 files changed, 40 insertions, 3 deletions
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index 369273a52679..78779074f6e8 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h | |||
@@ -49,6 +49,10 @@ enum { | |||
49 | 49 | ||
50 | #define SCIF_DEFAULT_ERROR_MASK (SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK) | 50 | #define SCIF_DEFAULT_ERROR_MASK (SCIF_PER | SCIF_FER | SCIF_ER | SCIF_BRK) |
51 | 51 | ||
52 | /* SCSPTR, optional */ | ||
53 | #define SCSPTR_RTSIO (1 << 7) | ||
54 | #define SCSPTR_CTSIO (1 << 5) | ||
55 | |||
52 | /* Offsets into the sci_port->irqs array */ | 56 | /* Offsets into the sci_port->irqs array */ |
53 | enum { | 57 | enum { |
54 | SCIx_ERI_IRQ, | 58 | SCIx_ERI_IRQ, |
@@ -60,6 +64,17 @@ enum { | |||
60 | SCIx_MUX_IRQ = SCIx_NR_IRQS, /* special case */ | 64 | SCIx_MUX_IRQ = SCIx_NR_IRQS, /* special case */ |
61 | }; | 65 | }; |
62 | 66 | ||
67 | /* Offsets into the sci_port->gpios array */ | ||
68 | enum { | ||
69 | SCIx_SCK, | ||
70 | SCIx_RXD, | ||
71 | SCIx_TXD, | ||
72 | SCIx_CTS, | ||
73 | SCIx_RTS, | ||
74 | |||
75 | SCIx_NR_FNS, | ||
76 | }; | ||
77 | |||
63 | enum { | 78 | enum { |
64 | SCIx_PROBE_REGTYPE, | 79 | SCIx_PROBE_REGTYPE, |
65 | 80 | ||
@@ -109,13 +124,20 @@ struct plat_sci_port_ops { | |||
109 | }; | 124 | }; |
110 | 125 | ||
111 | /* | 126 | /* |
127 | * Port-specific capabilities | ||
128 | */ | ||
129 | #define SCIx_HAVE_RTSCTS (1 << 0) | ||
130 | |||
131 | /* | ||
112 | * Platform device specific platform_data struct | 132 | * Platform device specific platform_data struct |
113 | */ | 133 | */ |
114 | struct plat_sci_port { | 134 | struct plat_sci_port { |
115 | unsigned long mapbase; /* resource base */ | 135 | unsigned long mapbase; /* resource base */ |
116 | unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */ | 136 | unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */ |
137 | unsigned int gpios[SCIx_NR_FNS]; /* SCK, RXD, TXD, CTS, RTS */ | ||
117 | unsigned int type; /* SCI / SCIF / IRDA */ | 138 | unsigned int type; /* SCI / SCIF / IRDA */ |
118 | upf_t flags; /* UPF_* flags */ | 139 | upf_t flags; /* UPF_* flags */ |
140 | unsigned long capabilities; /* Port features/capabilities */ | ||
119 | 141 | ||
120 | unsigned int scbrr_algo_id; /* SCBRR calculation algo */ | 142 | unsigned int scbrr_algo_id; /* SCBRR calculation algo */ |
121 | unsigned int scscr; /* SCSCR initialization */ | 143 | unsigned int scscr; /* SCSCR initialization */ |
diff --git a/include/linux/sh_clk.h b/include/linux/sh_clk.h index a20831cf336a..54341d811685 100644 --- a/include/linux/sh_clk.h +++ b/include/linux/sh_clk.h | |||
@@ -49,6 +49,7 @@ struct clk { | |||
49 | 49 | ||
50 | void __iomem *enable_reg; | 50 | void __iomem *enable_reg; |
51 | unsigned int enable_bit; | 51 | unsigned int enable_bit; |
52 | void __iomem *mapped_reg; | ||
52 | 53 | ||
53 | unsigned long arch_flags; | 54 | unsigned long arch_flags; |
54 | void *priv; | 55 | void *priv; |
@@ -131,10 +132,9 @@ int sh_clk_div4_enable_register(struct clk *clks, int nr, | |||
131 | int sh_clk_div4_reparent_register(struct clk *clks, int nr, | 132 | int sh_clk_div4_reparent_register(struct clk *clks, int nr, |
132 | struct clk_div4_table *table); | 133 | struct clk_div4_table *table); |
133 | 134 | ||
134 | #define SH_CLK_DIV6_EXT(_parent, _reg, _flags, _parents, \ | 135 | #define SH_CLK_DIV6_EXT(_reg, _flags, _parents, \ |
135 | _num_parents, _src_shift, _src_width) \ | 136 | _num_parents, _src_shift, _src_width) \ |
136 | { \ | 137 | { \ |
137 | .parent = _parent, \ | ||
138 | .enable_reg = (void __iomem *)_reg, \ | 138 | .enable_reg = (void __iomem *)_reg, \ |
139 | .flags = _flags, \ | 139 | .flags = _flags, \ |
140 | .parent_table = _parents, \ | 140 | .parent_table = _parents, \ |
@@ -144,7 +144,11 @@ int sh_clk_div4_reparent_register(struct clk *clks, int nr, | |||
144 | } | 144 | } |
145 | 145 | ||
146 | #define SH_CLK_DIV6(_parent, _reg, _flags) \ | 146 | #define SH_CLK_DIV6(_parent, _reg, _flags) \ |
147 | SH_CLK_DIV6_EXT(_parent, _reg, _flags, NULL, 0, 0, 0) | 147 | { \ |
148 | .parent = _parent, \ | ||
149 | .enable_reg = (void __iomem *)_reg, \ | ||
150 | .flags = _flags, \ | ||
151 | } | ||
148 | 152 | ||
149 | int sh_clk_div6_register(struct clk *clks, int nr); | 153 | int sh_clk_div6_register(struct clk *clks, int nr); |
150 | int sh_clk_div6_reparent_register(struct clk *clks, int nr); | 154 | int sh_clk_div6_reparent_register(struct clk *clks, int nr); |
diff --git a/include/linux/sh_pfc.h b/include/linux/sh_pfc.h index 8446789216e5..91666a58529d 100644 --- a/include/linux/sh_pfc.h +++ b/include/linux/sh_pfc.h | |||
@@ -55,6 +55,7 @@ struct pinmux_cfg_reg { | |||
55 | struct pinmux_data_reg { | 55 | struct pinmux_data_reg { |
56 | unsigned long reg, reg_width, reg_shadow; | 56 | unsigned long reg, reg_width, reg_shadow; |
57 | pinmux_enum_t *enum_ids; | 57 | pinmux_enum_t *enum_ids; |
58 | void __iomem *mapped_reg; | ||
58 | }; | 59 | }; |
59 | 60 | ||
60 | #define PINMUX_DATA_REG(name, r, r_width) \ | 61 | #define PINMUX_DATA_REG(name, r, r_width) \ |
@@ -75,6 +76,12 @@ struct pinmux_range { | |||
75 | pinmux_enum_t force; | 76 | pinmux_enum_t force; |
76 | }; | 77 | }; |
77 | 78 | ||
79 | struct pfc_window { | ||
80 | phys_addr_t phys; | ||
81 | void __iomem *virt; | ||
82 | unsigned long size; | ||
83 | }; | ||
84 | |||
78 | struct pinmux_info { | 85 | struct pinmux_info { |
79 | char *name; | 86 | char *name; |
80 | pinmux_enum_t reserved_id; | 87 | pinmux_enum_t reserved_id; |
@@ -98,6 +105,10 @@ struct pinmux_info { | |||
98 | struct pinmux_irq *gpio_irq; | 105 | struct pinmux_irq *gpio_irq; |
99 | unsigned int gpio_irq_size; | 106 | unsigned int gpio_irq_size; |
100 | 107 | ||
108 | struct resource *resource; | ||
109 | unsigned int num_resources; | ||
110 | struct pfc_window *window; | ||
111 | |||
101 | struct gpio_chip chip; | 112 | struct gpio_chip chip; |
102 | }; | 113 | }; |
103 | 114 | ||