diff options
author | ganbold <ganbold@FreeBSD.org> | 2014-03-03 11:00:52 +0000 |
---|---|---|
committer | ganbold <ganbold@FreeBSD.org> | 2014-03-03 11:00:52 +0000 |
commit | e1bf6a5f62b63db8dcbe88e0de8f5c5aff176070 (patch) | |
tree | c1f64267c17526915f9f12b51519611613b91559 /sys/arm/allwinner/a10_clk.c | |
parent | c7ed23130a9d3bd99ad49c207482e6a41091d780 (diff) | |
download | FreeBSD-src-e1bf6a5f62b63db8dcbe88e0de8f5c5aff176070.zip FreeBSD-src-e1bf6a5f62b63db8dcbe88e0de8f5c5aff176070.tar.gz |
Add gpio and clock bits for A10/A20's EMAC ethernet controller driver, such as:
- EMAC gpio configuration
- EMAC clock activation
Approved by: stas (mentor)
Diffstat (limited to 'sys/arm/allwinner/a10_clk.c')
-rw-r--r-- | sys/arm/allwinner/a10_clk.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/arm/allwinner/a10_clk.c b/sys/arm/allwinner/a10_clk.c index aca137d..3354c02 100644 --- a/sys/arm/allwinner/a10_clk.c +++ b/sys/arm/allwinner/a10_clk.c @@ -127,7 +127,7 @@ a10_clk_usb_activate(void) uint32_t reg_value; if (sc == NULL) - return ENXIO; + return (ENXIO); /* Gating AHB clock for USB */ reg_value = ccm_read_4(sc, CCM_AHB_GATING0); @@ -154,7 +154,7 @@ a10_clk_usb_deactivate(void) uint32_t reg_value; if (sc == NULL) - return ENXIO; + return (ENXIO); /* Disable clock for USB */ reg_value = ccm_read_4(sc, CCM_USB_CLK); @@ -173,3 +173,19 @@ a10_clk_usb_deactivate(void) return (0); } +int +a10_clk_emac_activate(void) { + struct a10_ccm_softc *sc = a10_ccm_sc; + uint32_t reg_value; + + if (sc == NULL) + return (ENXIO); + + /* Gating AHB clock for EMAC */ + reg_value = ccm_read_4(sc, CCM_AHB_GATING0); + reg_value |= CCM_AHB_GATING_EMAC; + ccm_write_4(sc, CCM_AHB_GATING0, reg_value); + + return (0); +} + |