Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/ti/am335x/am335x_ehrpwm.c
Show All 12 Lines | |||||
goto fail; | goto fail; | ||||
} | } | ||||
/* Init sysctl interface */ | /* Init sysctl interface */ | ||||
ctx = device_get_sysctl_ctx(sc->sc_dev); | ctx = device_get_sysctl_ctx(sc->sc_dev); | ||||
tree = device_get_sysctl_tree(sc->sc_dev); | tree = device_get_sysctl_tree(sc->sc_dev); | ||||
sc->sc_clkdiv_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | sc->sc_clkdiv_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"clkdiv", CTLTYPE_INT | CTLFLAG_RW, sc, 0, | "clkdiv", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, | ||||
am335x_ehrpwm_sysctl_clkdiv, "I", "PWM clock prescaler"); | am335x_ehrpwm_sysctl_clkdiv, "I", "PWM clock prescaler"); | ||||
sc->sc_freq_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | sc->sc_freq_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"freq", CTLTYPE_INT | CTLFLAG_RW, sc, 0, | "freq", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, | ||||
am335x_ehrpwm_sysctl_freq, "I", "PWM frequency"); | am335x_ehrpwm_sysctl_freq, "I", "PWM frequency"); | ||||
sc->sc_period_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | sc->sc_period_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"period", CTLTYPE_INT | CTLFLAG_RW, sc, 0, | "period", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, | ||||
am335x_ehrpwm_sysctl_period, "I", "PWM period"); | am335x_ehrpwm_sysctl_period, "I", "PWM period"); | ||||
sc->sc_chanA_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | sc->sc_chanA_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"dutyA", CTLTYPE_INT | CTLFLAG_RW, sc, 0, | "dutyA", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, | ||||
am335x_ehrpwm_sysctl_duty, "I", "Channel A duty cycles"); | am335x_ehrpwm_sysctl_duty, "I", "Channel A duty cycles"); | ||||
sc->sc_chanB_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | sc->sc_chanB_oid = SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, | ||||
"dutyB", CTLTYPE_INT | CTLFLAG_RW, sc, 0, | "dutyB", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc, 0, | ||||
am335x_ehrpwm_sysctl_duty, "I", "Channel B duty cycles"); | am335x_ehrpwm_sysctl_duty, "I", "Channel B duty cycles"); | ||||
/* CONFIGURE EPWM1 */ | /* CONFIGURE EPWM1 */ | ||||
reg = EPWM_READ2(sc, EPWM_TBCTL); | reg = EPWM_READ2(sc, EPWM_TBCTL); | ||||
reg &= ~(TBCTL_CLKDIV_MASK | TBCTL_HSPCLKDIV_MASK); | reg &= ~(TBCTL_CLKDIV_MASK | TBCTL_HSPCLKDIV_MASK); | ||||
EPWM_WRITE2(sc, EPWM_TBCTL, reg); | EPWM_WRITE2(sc, EPWM_TBCTL, reg); | ||||
sc->sc_pwm_period = DEFAULT_PWM_PERIOD; | sc->sc_pwm_period = DEFAULT_PWM_PERIOD; | ||||
Show All 12 Lines |