From: Vitaly Bordug <vitb@kernel.crashing.org>
To: Scott Wood <scottwood@freescale.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 3/9] cpm2: Add SCCs to cpm2_clk_setup(), and cpm2_smc_clk_setup().
Date: Thu, 30 Aug 2007 02:25:48 +0400 [thread overview]
Message-ID: <20070830022548.6e0ce296@localhost.localdomain> (raw)
In-Reply-To: <20070828201922.GC24329@ld0162-tx32.am.freescale.net>
On Tue, 28 Aug 2007 15:19:22 -0500
Scott Wood wrote:
I would have it in the same patch, that adds clocking stuff to 8xx. And
maybe in the same, segregate source rather then having it in the foo_common.c, to ease fix/update/rework.
Just imho, not pressing for that.
> Signed-off-by: Scott Wood <scottwood@freescale.com>
> ---
> arch/powerpc/sysdev/cpm2_common.c | 100
> +++++++++++++++++++++++++++++++++++--
> include/asm-powerpc/cpm2.h | 5 ++- 2 files changed, 99
> insertions(+), 6 deletions(-)
>
> diff --git a/arch/powerpc/sysdev/cpm2_common.c
> b/arch/powerpc/sysdev/cpm2_common.c index 99ad1ed..549da4b 100644
> --- a/arch/powerpc/sysdev/cpm2_common.c
> +++ b/arch/powerpc/sysdev/cpm2_common.c
> @@ -140,7 +140,8 @@ int cpm2_clk_setup(enum cpm_clk_target target,
> int clock, int mode) cpmux_t __iomem *im_cpmux;
> u32 __iomem *reg;
> u32 mask = 7;
> - u8 clk_map [24][3] = {
> +
> + u8 clk_map[][3] = {
> {CPM_CLK_FCC1, CPM_BRG5, 0},
> {CPM_CLK_FCC1, CPM_BRG6, 1},
> {CPM_CLK_FCC1, CPM_BRG7, 2},
> @@ -164,8 +165,40 @@ int cpm2_clk_setup(enum cpm_clk_target target,
> int clock, int mode) {CPM_CLK_FCC3, CPM_CLK13, 4},
> {CPM_CLK_FCC3, CPM_CLK14, 5},
> {CPM_CLK_FCC3, CPM_CLK15, 6},
> - {CPM_CLK_FCC3, CPM_CLK16, 7}
> - };
> + {CPM_CLK_FCC3, CPM_CLK16, 7},
> + {CPM_CLK_SCC1, CPM_BRG1, 0},
> + {CPM_CLK_SCC1, CPM_BRG2, 1},
> + {CPM_CLK_SCC1, CPM_BRG3, 2},
> + {CPM_CLK_SCC1, CPM_BRG4, 3},
> + {CPM_CLK_SCC1, CPM_CLK11, 4},
> + {CPM_CLK_SCC1, CPM_CLK12, 5},
> + {CPM_CLK_SCC1, CPM_CLK3, 6},
> + {CPM_CLK_SCC1, CPM_CLK4, 7},
> + {CPM_CLK_SCC2, CPM_BRG1, 0},
> + {CPM_CLK_SCC2, CPM_BRG2, 1},
> + {CPM_CLK_SCC2, CPM_BRG3, 2},
> + {CPM_CLK_SCC2, CPM_BRG4, 3},
> + {CPM_CLK_SCC2, CPM_CLK11, 4},
> + {CPM_CLK_SCC2, CPM_CLK12, 5},
> + {CPM_CLK_SCC2, CPM_CLK3, 6},
> + {CPM_CLK_SCC2, CPM_CLK4, 7},
> + {CPM_CLK_SCC3, CPM_BRG1, 0},
> + {CPM_CLK_SCC3, CPM_BRG2, 1},
> + {CPM_CLK_SCC3, CPM_BRG3, 2},
> + {CPM_CLK_SCC3, CPM_BRG4, 3},
> + {CPM_CLK_SCC3, CPM_CLK5, 4},
> + {CPM_CLK_SCC3, CPM_CLK6, 5},
> + {CPM_CLK_SCC3, CPM_CLK7, 6},
> + {CPM_CLK_SCC3, CPM_CLK8, 7},
> + {CPM_CLK_SCC4, CPM_BRG1, 0},
> + {CPM_CLK_SCC4, CPM_BRG2, 1},
> + {CPM_CLK_SCC4, CPM_BRG3, 2},
> + {CPM_CLK_SCC4, CPM_BRG4, 3},
> + {CPM_CLK_SCC4, CPM_CLK5, 4},
> + {CPM_CLK_SCC4, CPM_CLK6, 5},
> + {CPM_CLK_SCC4, CPM_CLK7, 6},
> + {CPM_CLK_SCC4, CPM_CLK8, 7},
> + };
>
> im_cpmux = cpm2_map(im_cpmux);
>
> @@ -205,23 +238,80 @@ int cpm2_clk_setup(enum cpm_clk_target target,
> int clock, int mode) if (mode == CPM_CLK_RX)
> shift += 3;
>
> - for (i=0; i<24; i++) {
> + for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
> if (clk_map[i][0] == target && clk_map[i][1] ==
> clock) { bits = clk_map[i][2];
> break;
> }
> }
> - if (i == sizeof(clk_map)/3)
> + if (i == ARRAY_SIZE(clk_map))
> ret = -EINVAL;
>
> bits <<= shift;
> mask <<= shift;
> +
> out_be32(reg, (in_be32(reg) & ~mask) | bits);
>
> cpm2_unmap(im_cpmux);
> return ret;
> }
>
> +int cpm2_smc_clk_setup(enum cpm_clk_target target, int clock)
> +{
> + int ret = 0;
> + int shift;
> + int i, bits = 0;
> + cpmux_t __iomem *im_cpmux;
> + u8 __iomem *reg;
> + u8 mask = 3;
> +
> + u8 clk_map[][3] = {
> + {CPM_CLK_SMC1, CPM_BRG1, 0},
> + {CPM_CLK_SMC1, CPM_BRG7, 1},
> + {CPM_CLK_SMC1, CPM_CLK7, 2},
> + {CPM_CLK_SMC1, CPM_CLK9, 3},
> + {CPM_CLK_SMC2, CPM_BRG2, 0},
> + {CPM_CLK_SMC2, CPM_BRG8, 1},
> + {CPM_CLK_SMC2, CPM_CLK4, 2},
> + {CPM_CLK_SMC2, CPM_CLK15, 3},
> + };
> +
> + im_cpmux = cpm2_map(im_cpmux);
> +
> + switch (target) {
> + case CPM_CLK_SMC1:
> + reg = &im_cpmux->cmx_smr;
> + mask = 3;
> + shift = 4;
> + break;
> + case CPM_CLK_SMC2:
> + reg = &im_cpmux->cmx_smr;
> + mask = 3;
> + shift = 0;
> + break;
> + default:
> + printk(KERN_ERR "cpm2_smc_clock_setup: invalid clock
> target\n");
> + return -EINVAL;
> + }
> +
> + for (i = 0; i < ARRAY_SIZE(clk_map); i++) {
> + if (clk_map[i][0] == target && clk_map[i][1] ==
> clock) {
> + bits = clk_map[i][2];
> + break;
> + }
> + }
> + if (i == ARRAY_SIZE(clk_map))
> + ret = -EINVAL;
> +
> + bits <<= shift;
> + mask <<= shift;
> +
> + out_8(reg, (in_8(reg) & ~mask) | bits);
> +
> + cpm2_unmap(im_cpmux);
> + return ret;
> +}
> +
> /*
> * dpalloc / dpfree bits.
> */
> diff --git a/include/asm-powerpc/cpm2.h b/include/asm-powerpc/cpm2.h
> index c036506..41a45db 100644
> --- a/include/asm-powerpc/cpm2.h
> +++ b/include/asm-powerpc/cpm2.h
> @@ -1206,7 +1206,9 @@ enum cpm_clk_target {
> CPM_CLK_SCC4,
> CPM_CLK_FCC1,
> CPM_CLK_FCC2,
> - CPM_CLK_FCC3
> + CPM_CLK_FCC3,
> + CPM_CLK_SMC1,
> + CPM_CLK_SMC2,
> };
>
> enum cpm_clk {
> @@ -1243,6 +1245,7 @@ enum cpm_clk {
> };
>
> extern int cpm2_clk_setup(enum cpm_clk_target target, int clock, int
> mode); +extern int cpm2_smc_clk_setup(enum cpm_clk_target target, int
> clock);
> #endif /* __CPM2__ */
> #endif /* __KERNEL__ */
--
Sincerely, Vitaly
next prev parent reply other threads:[~2007-08-30 20:08 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-28 20:11 [PATCH v3 1/8] Generic bitbanged MDIO library Scott Wood
2007-08-28 20:14 ` [PATCH v3 2/8] fs_enet: Whitespace cleanup Scott Wood
2007-08-28 20:14 ` [PATCH v3 3/8] fs_enet: Include linux/string.h from linux/fs_enet_pd.h Scott Wood
2007-08-28 20:14 ` [PATCH v3 4/8] fs_enet: Don't share the interrupt Scott Wood
2007-08-28 20:14 ` [PATCH v3 5/8] fs_enet: mac-fcc: Eliminate __fcc-* macros Scott Wood
2007-08-28 20:14 ` [PATCH v3 6/8] fs_enet: Align receive buffers Scott Wood
2007-08-28 20:14 ` [PATCH v3 7/8] fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set Scott Wood
2007-08-28 20:14 ` [PATCH v3 8/8] fs_enet: sparse fixes Scott Wood
2007-08-28 20:16 ` [PATCH 1/3] fsl_soc.c cleanup Scott Wood
2007-08-29 5:30 ` David Gibson
2007-09-11 5:35 ` Kumar Gala
2007-09-11 13:57 ` Scott Wood
2007-09-11 15:48 ` Kumar Gala
2007-09-11 15:51 ` Scott Wood
2007-09-11 16:22 ` Kumar Gala
2007-09-11 16:24 ` Scott Wood
2007-09-11 16:45 ` SOC registers/immr determination from device tree (was Re: [PATCH 1/3] fsl_soc.c cleanup) Kumar Gala
2007-09-11 17:03 ` Scott Wood
2007-09-11 17:08 ` Josh Boyer
2007-09-11 17:54 ` Kumar Gala
2007-08-28 20:16 ` [PATCH 2/3] Introduce new CPM device bindings Scott Wood
2007-08-29 5:39 ` David Gibson
2007-08-29 13:58 ` Scott Wood
2007-08-30 0:55 ` David Gibson
2007-08-30 5:48 ` Scott Wood
2007-08-30 5:58 ` David Gibson
2007-08-30 14:10 ` Scott Wood
2007-08-31 2:48 ` David Gibson
2007-08-28 20:16 ` [PATCH 3/3] Add early debug console for CPM serial ports Scott Wood
2007-08-29 5:45 ` David Gibson
2007-08-29 14:02 ` Scott Wood
2007-08-29 19:58 ` Scott Wood
2007-08-30 0:58 ` David Gibson
2007-08-30 0:57 ` David Gibson
2007-08-28 20:16 ` [PATCH 1/4] ppc: Add clrbits8 and setbits8 Scott Wood
2007-08-28 20:16 ` [PATCH 2/4] cpm_uart: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set Scott Wood
2007-08-28 20:16 ` [PATCH 3/4] cpm_uart: sparse fixes Scott Wood
2007-08-28 20:16 ` [PATCH 4/4] cpm_uart: Issue STOP_TX command before initializing console Scott Wood
2007-08-28 20:17 ` [PATCH 1/9] 8xx: Fix CONFIG_PIN_TLB Scott Wood
2007-08-29 21:09 ` Vitaly Bordug
2007-08-28 20:17 ` [PATCH 2/9] 8xx: Infrastructure code cleanup Scott Wood
2007-09-13 7:11 ` David Gibson
2007-09-13 8:16 ` Vitaly Bordug
2007-09-14 4:09 ` David Gibson
2007-09-14 8:21 ` Vitaly Bordug
2007-09-15 2:25 ` David Gibson
2007-09-13 14:40 ` Scott Wood
2007-08-28 20:17 ` [PATCH 3/9] 8xx: Add pin and clock setting functions Scott Wood
2007-08-29 21:38 ` Vitaly Bordug
2007-08-31 20:44 ` Scott Wood
2007-09-05 7:39 ` Vitaly Bordug
2007-09-05 17:37 ` Scott Wood
2007-08-28 20:17 ` [PATCH 4/9] 8xx: Work around CPU15 erratum Scott Wood
2007-08-28 20:17 ` [PATCH 5/9] 8xx: Don't call non-existent Soft_emulate_8xx from SoftwareEmulation Scott Wood
2007-08-28 20:17 ` [PATCH 6/9] 8xx: Set initial memory limit John Traill
2007-08-28 20:19 ` Scott Wood
2007-08-28 20:19 ` [PATCH 7/9] 8xx: mpc885ads cleanup Scott Wood
2007-08-29 22:03 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 8/9] 8xx: Embedded Planet EP88xC support Scott Wood
2007-08-28 20:19 ` [PATCH 9/9] 8xx: Adder 875 support Scott Wood
2007-08-28 20:19 ` [PATCH 1/9] cpm2: Infrastructure code cleanup Scott Wood
2007-08-28 20:19 ` [PATCH 2/9] cpm2: Fix off-by-one error in setbrg() Scott Wood
2007-08-29 22:09 ` Vitaly Bordug
2007-08-30 20:13 ` Scott Wood
2007-08-30 21:52 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 3/9] cpm2: Add SCCs to cpm2_clk_setup(), and cpm2_smc_clk_setup() Scott Wood
2007-08-29 22:25 ` Vitaly Bordug [this message]
2007-08-30 20:15 ` Scott Wood
2007-09-04 20:43 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 4/9] cpm2: Add cpm2_set_pin() Scott Wood
2007-09-04 20:51 ` Vitaly Bordug
2007-08-28 20:19 ` [PATCH 5/9] mpc82xx: Remove a bunch of cruft that duplicates generic functionality Scott Wood
2007-08-28 20:19 ` [PATCH 6/9] mpc82xx: Rename mpc82xx_ads to mpc8272_ads Scott Wood
2007-08-29 5:55 ` David Gibson
2007-08-28 20:19 ` [PATCH 7/9] mpc8272ads: Change references from 82xx_ADS to 8272_ADS Scott Wood
2007-08-28 20:19 ` [PATCH 8/9] mpc82xx: Update mpc8272ads, and factor out PCI and reset Scott Wood
2007-08-29 22:41 ` Kumar Gala
2007-08-30 5:56 ` Scott Wood
2007-08-30 14:56 ` Kumar Gala
2007-08-30 15:17 ` Scott Wood
2007-08-28 20:19 ` [PATCH 9/9] mpc82xx: Add pq2fads board support Scott Wood
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070830022548.6e0ce296@localhost.localdomain \
--to=vitb@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=scottwood@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).