MIPS: BCM63XX: add missing clocks for BCM6328 and BCM6362
Add some mosty unused, but missing clocks for BCM6328 and BCM6362. This also fixes PCIe init on BCM6362. Signed-off-by: Jonas Gorski <jogo@openwrt.org> Patchwork: http://patchwork.linux-mips.org/patch/5200/ Acked-by: John Crispin <blogic@openwrt.org>
This commit is contained in:
parent
9b75733b7b
commit
1cd1c04927
|
@ -125,11 +125,18 @@ static struct clk clk_ephy = {
|
||||||
*/
|
*/
|
||||||
static void enetsw_set(struct clk *clk, int enable)
|
static void enetsw_set(struct clk *clk, int enable)
|
||||||
{
|
{
|
||||||
if (!BCMCPU_IS_6368())
|
if (BCMCPU_IS_6328())
|
||||||
|
bcm_hwclock_set(CKCTL_6328_ROBOSW_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6362())
|
||||||
|
bcm_hwclock_set(CKCTL_6362_ROBOSW_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6368())
|
||||||
|
bcm_hwclock_set(CKCTL_6368_ROBOSW_EN |
|
||||||
|
CKCTL_6368_SWPKT_USB_EN |
|
||||||
|
CKCTL_6368_SWPKT_SAR_EN,
|
||||||
|
enable);
|
||||||
|
else
|
||||||
return;
|
return;
|
||||||
bcm_hwclock_set(CKCTL_6368_ROBOSW_EN |
|
|
||||||
CKCTL_6368_SWPKT_USB_EN |
|
|
||||||
CKCTL_6368_SWPKT_SAR_EN, enable);
|
|
||||||
if (enable) {
|
if (enable) {
|
||||||
/* reset switch core afer clock change */
|
/* reset switch core afer clock change */
|
||||||
bcm63xx_core_set_reset(BCM63XX_RESET_ENETSW, 1);
|
bcm63xx_core_set_reset(BCM63XX_RESET_ENETSW, 1);
|
||||||
|
@ -166,6 +173,8 @@ static void usbh_set(struct clk *clk, int enable)
|
||||||
bcm_hwclock_set(CKCTL_6328_USBH_EN, enable);
|
bcm_hwclock_set(CKCTL_6328_USBH_EN, enable);
|
||||||
else if (BCMCPU_IS_6348())
|
else if (BCMCPU_IS_6348())
|
||||||
bcm_hwclock_set(CKCTL_6348_USBH_EN, enable);
|
bcm_hwclock_set(CKCTL_6348_USBH_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6362())
|
||||||
|
bcm_hwclock_set(CKCTL_6362_USBH_EN, enable);
|
||||||
else if (BCMCPU_IS_6368())
|
else if (BCMCPU_IS_6368())
|
||||||
bcm_hwclock_set(CKCTL_6368_USBH_EN, enable);
|
bcm_hwclock_set(CKCTL_6368_USBH_EN, enable);
|
||||||
}
|
}
|
||||||
|
@ -181,6 +190,8 @@ static void usbd_set(struct clk *clk, int enable)
|
||||||
{
|
{
|
||||||
if (BCMCPU_IS_6328())
|
if (BCMCPU_IS_6328())
|
||||||
bcm_hwclock_set(CKCTL_6328_USBD_EN, enable);
|
bcm_hwclock_set(CKCTL_6328_USBD_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6362())
|
||||||
|
bcm_hwclock_set(CKCTL_6362_USBD_EN, enable);
|
||||||
else if (BCMCPU_IS_6368())
|
else if (BCMCPU_IS_6368())
|
||||||
bcm_hwclock_set(CKCTL_6368_USBD_EN, enable);
|
bcm_hwclock_set(CKCTL_6368_USBD_EN, enable);
|
||||||
}
|
}
|
||||||
|
@ -244,7 +255,10 @@ static struct clk clk_xtm = {
|
||||||
*/
|
*/
|
||||||
static void ipsec_set(struct clk *clk, int enable)
|
static void ipsec_set(struct clk *clk, int enable)
|
||||||
{
|
{
|
||||||
bcm_hwclock_set(CKCTL_6368_IPSEC_EN, enable);
|
if (BCMCPU_IS_6362())
|
||||||
|
bcm_hwclock_set(CKCTL_6362_IPSEC_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6368())
|
||||||
|
bcm_hwclock_set(CKCTL_6368_IPSEC_EN, enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct clk clk_ipsec = {
|
static struct clk clk_ipsec = {
|
||||||
|
@ -257,7 +271,10 @@ static struct clk clk_ipsec = {
|
||||||
|
|
||||||
static void pcie_set(struct clk *clk, int enable)
|
static void pcie_set(struct clk *clk, int enable)
|
||||||
{
|
{
|
||||||
bcm_hwclock_set(CKCTL_6328_PCIE_EN, enable);
|
if (BCMCPU_IS_6328())
|
||||||
|
bcm_hwclock_set(CKCTL_6328_PCIE_EN, enable);
|
||||||
|
else if (BCMCPU_IS_6362())
|
||||||
|
bcm_hwclock_set(CKCTL_6362_PCIE_EN, enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct clk clk_pcie = {
|
static struct clk clk_pcie = {
|
||||||
|
@ -323,9 +340,9 @@ struct clk *clk_get(struct device *dev, const char *id)
|
||||||
return &clk_periph;
|
return &clk_periph;
|
||||||
if (BCMCPU_IS_6358() && !strcmp(id, "pcm"))
|
if (BCMCPU_IS_6358() && !strcmp(id, "pcm"))
|
||||||
return &clk_pcm;
|
return &clk_pcm;
|
||||||
if (BCMCPU_IS_6368() && !strcmp(id, "ipsec"))
|
if ((BCMCPU_IS_6362() || BCMCPU_IS_6368()) && !strcmp(id, "ipsec"))
|
||||||
return &clk_ipsec;
|
return &clk_ipsec;
|
||||||
if (BCMCPU_IS_6328() && !strcmp(id, "pcie"))
|
if ((BCMCPU_IS_6328() || BCMCPU_IS_6362()) && !strcmp(id, "pcie"))
|
||||||
return &clk_pcie;
|
return &clk_pcie;
|
||||||
return ERR_PTR(-ENOENT);
|
return ERR_PTR(-ENOENT);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue