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 | ||
