netbird_v2: enable wlan clock in u-boot
This commit is contained in:
parent
4642adbd4e
commit
d661aae654
|
|
@ -410,7 +410,7 @@ struct cm_dpll {
|
|||
unsigned int resv1;
|
||||
unsigned int clktimer2clk; /* offset 0x04 */
|
||||
unsigned int resv2[11];
|
||||
unsigned int clkselmacclk; /* offset 0x34 */
|
||||
unsigned int clkselmacclk; /* offset 0x34 */
|
||||
};
|
||||
#endif /* CONFIG_AM43XX */
|
||||
|
||||
|
|
@ -530,10 +530,12 @@ struct ctrl_dev {
|
|||
unsigned int macid1h; /* offset 0x3c */
|
||||
unsigned int resv4[4];
|
||||
unsigned int miisel; /* offset 0x50 */
|
||||
unsigned int resv5[7];
|
||||
unsigned int resv5[4];
|
||||
unsigned int pwmssctrl; /* offset 0x64 */
|
||||
unsigned int resv6[2];
|
||||
unsigned int mreqprio_0; /* offset 0x70 */
|
||||
unsigned int mreqprio_1; /* offset 0x74 */
|
||||
unsigned int resv6[97];
|
||||
unsigned int resv7[97];
|
||||
unsigned int efuse_sma; /* offset 0x1FC */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -355,6 +355,58 @@ int board_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Enable the ecap2 pwm see siemens/pxm2 */
|
||||
static int enable_pwm(void)
|
||||
{
|
||||
#define PWM_TICKS 0xBEB
|
||||
#define PWM_DUTY 0x5F5
|
||||
#define AM33XX_ECAP2_BASE 0x48304100
|
||||
#define PWMSS2_BASE 0x48304000
|
||||
struct pwmss_regs *pwmss = (struct pwmss_regs *)PWMSS2_BASE;
|
||||
struct pwmss_ecap_regs *ecap;
|
||||
int ticks = PWM_TICKS;
|
||||
int duty = PWM_DUTY;
|
||||
|
||||
ecap = (struct pwmss_ecap_regs *)AM33XX_ECAP2_BASE;
|
||||
/* enable clock */
|
||||
setbits_le32(&pwmss->clkconfig, ECAP_CLK_EN);
|
||||
/* TimeStamp Counter register */
|
||||
writel(0x0, &ecap->ctrphs);
|
||||
|
||||
setbits_le16(&ecap->ecctl2,
|
||||
(ECTRL2_MDSL_ECAP | ECTRL2_SYNCOSEL_MASK));
|
||||
|
||||
/* config period */
|
||||
writel(ticks - 1, &ecap->cap3);
|
||||
writel(ticks - 1, &ecap->cap1);
|
||||
/* config duty */
|
||||
writel(duty, &ecap->cap2);
|
||||
writel(duty, &ecap->cap4);
|
||||
/* start */
|
||||
setbits_le16(&ecap->ecctl2, ECTRL2_CTRSTP_FREERUN);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Enable the input clock for ecap2 and then enable the pwm */
|
||||
static void enable_wlan_clock(void)
|
||||
{
|
||||
struct cm_perpll *const cmper = (struct cm_perpll*)CM_PER;
|
||||
struct ctrl_dev *const cdev= (struct ctrl_dev*)CTRL_DEVICE_BASE;
|
||||
u32 *const clk_domains[] = { 0 };
|
||||
|
||||
u32 *const clk_modules_nmspecific[] = {
|
||||
&cmper->epwmss2clkctrl,
|
||||
0
|
||||
};
|
||||
|
||||
do_enable_clocks(clk_domains, clk_modules_nmspecific, 1);
|
||||
|
||||
/* Enable timebase clock for pwmss2 */
|
||||
writel(0x04, &cdev->pwmssctrl);
|
||||
|
||||
enable_pwm();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INIT
|
||||
int board_late_init(void)
|
||||
{
|
||||
|
|
@ -394,6 +446,8 @@ int board_late_init(void)
|
|||
set_board_info_env(name);
|
||||
#endif
|
||||
|
||||
enable_wlan_clock();
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ static struct module_pin_mux gpio_netbird_pin_mux[] = {
|
|||
{OFFSET(mii1_rxdv), (MODE(7) | PULLUDDIS)}, /* (J17) gmii1_rxdv.gpio3[4] */ /* BT_EN */
|
||||
{OFFSET(mii1_rxdv), (MODE(7) | RXACTIVE)}, /* (K18) gmii1_txclk.gpio3[9] */ /* WLAN_IRQ */
|
||||
{OFFSET(mii1_rxclk), (MODE(7) | PULLUDDIS)}, /* (L18) gmii1_rxclk.gpio3[10] */ /* WLAN_EN */
|
||||
{OFFSET(mcasp0_ahclkr), (MODE(7) | PULLUDDIS)}, /* (C12) mcasp0_ahclkr.gpio3[17] */ /* WLAN_CLK (32k Linux only) */
|
||||
{OFFSET(mcasp0_ahclkr), (MODE(4) | PULLUDEN | PULLUP_EN)}, /* (C12) mcasp0_ahclkr.ecap2_in_pwm2_out */ /* WLAN_CLK */
|
||||
{-1},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue