diff options
| -rw-r--r-- | drivers/clk/hisilicon/clk-hix5hd2.c | 21 | ||||
| -rw-r--r-- | include/dt-bindings/clock/hix5hd2-clock.h | 4 |
2 files changed, 19 insertions, 6 deletions
diff --git a/drivers/clk/hisilicon/clk-hix5hd2.c b/drivers/clk/hisilicon/clk-hix5hd2.c index da9ca05e6fb7..13d6ec24af12 100644 --- a/drivers/clk/hisilicon/clk-hix5hd2.c +++ b/drivers/clk/hisilicon/clk-hix5hd2.c | |||
| @@ -50,9 +50,9 @@ static const char *sfc_mux_p[] __initconst = { | |||
| 50 | "24m", "150m", "200m", "100m", "75m", }; | 50 | "24m", "150m", "200m", "100m", "75m", }; |
| 51 | static u32 sfc_mux_table[] = {0, 4, 5, 6, 7}; | 51 | static u32 sfc_mux_table[] = {0, 4, 5, 6, 7}; |
| 52 | 52 | ||
| 53 | static const char *sdio1_mux_p[] __initconst = { | 53 | static const char *sdio_mux_p[] __initconst = { |
| 54 | "75m", "100m", "50m", "15m", }; | 54 | "75m", "100m", "50m", "15m", }; |
| 55 | static u32 sdio1_mux_table[] = {0, 1, 2, 3}; | 55 | static u32 sdio_mux_table[] = {0, 1, 2, 3}; |
| 56 | 56 | ||
| 57 | static const char *fephy_mux_p[] __initconst = { "25m", "125m"}; | 57 | static const char *fephy_mux_p[] __initconst = { "25m", "125m"}; |
| 58 | static u32 fephy_mux_table[] = {0, 1}; | 58 | static u32 fephy_mux_table[] = {0, 1}; |
| @@ -61,20 +61,29 @@ static u32 fephy_mux_table[] = {0, 1}; | |||
| 61 | static struct hisi_mux_clock hix5hd2_mux_clks[] __initdata = { | 61 | static struct hisi_mux_clock hix5hd2_mux_clks[] __initdata = { |
| 62 | { HIX5HD2_SFC_MUX, "sfc_mux", sfc_mux_p, ARRAY_SIZE(sfc_mux_p), | 62 | { HIX5HD2_SFC_MUX, "sfc_mux", sfc_mux_p, ARRAY_SIZE(sfc_mux_p), |
| 63 | CLK_SET_RATE_PARENT, 0x5c, 8, 3, 0, sfc_mux_table, }, | 63 | CLK_SET_RATE_PARENT, 0x5c, 8, 3, 0, sfc_mux_table, }, |
| 64 | { HIX5HD2_MMC_MUX, "mmc_mux", sdio1_mux_p, ARRAY_SIZE(sdio1_mux_p), | 64 | { HIX5HD2_MMC_MUX, "mmc_mux", sdio_mux_p, ARRAY_SIZE(sdio_mux_p), |
| 65 | CLK_SET_RATE_PARENT, 0xa0, 8, 2, 0, sdio1_mux_table, }, | 65 | CLK_SET_RATE_PARENT, 0xa0, 8, 2, 0, sdio_mux_table, }, |
| 66 | { HIX5HD2_SD_MUX, "sd_mux", sdio_mux_p, ARRAY_SIZE(sdio_mux_p), | ||
| 67 | CLK_SET_RATE_PARENT, 0x9c, 8, 2, 0, sdio_mux_table, }, | ||
| 66 | { HIX5HD2_FEPHY_MUX, "fephy_mux", | 68 | { HIX5HD2_FEPHY_MUX, "fephy_mux", |
| 67 | fephy_mux_p, ARRAY_SIZE(fephy_mux_p), | 69 | fephy_mux_p, ARRAY_SIZE(fephy_mux_p), |
| 68 | CLK_SET_RATE_PARENT, 0x120, 8, 2, 0, fephy_mux_table, }, | 70 | CLK_SET_RATE_PARENT, 0x120, 8, 2, 0, fephy_mux_table, }, |
| 69 | }; | 71 | }; |
| 70 | 72 | ||
| 71 | static struct hisi_gate_clock hix5hd2_gate_clks[] __initdata = { | 73 | static struct hisi_gate_clock hix5hd2_gate_clks[] __initdata = { |
| 72 | /*sfc*/ | 74 | /* sfc */ |
| 73 | { HIX5HD2_SFC_CLK, "clk_sfc", "sfc_mux", | 75 | { HIX5HD2_SFC_CLK, "clk_sfc", "sfc_mux", |
| 74 | CLK_SET_RATE_PARENT, 0x5c, 0, 0, }, | 76 | CLK_SET_RATE_PARENT, 0x5c, 0, 0, }, |
| 75 | { HIX5HD2_SFC_RST, "rst_sfc", "clk_sfc", | 77 | { HIX5HD2_SFC_RST, "rst_sfc", "clk_sfc", |
| 76 | CLK_SET_RATE_PARENT, 0x5c, 4, CLK_GATE_SET_TO_DISABLE, }, | 78 | CLK_SET_RATE_PARENT, 0x5c, 4, CLK_GATE_SET_TO_DISABLE, }, |
| 77 | /*sdio1*/ | 79 | /* sdio0 */ |
| 80 | { HIX5HD2_SD_BIU_CLK, "clk_sd_biu", "200m", | ||
| 81 | CLK_SET_RATE_PARENT, 0x9c, 0, 0, }, | ||
| 82 | { HIX5HD2_SD_CIU_CLK, "clk_sd_ciu", "sd_mux", | ||
| 83 | CLK_SET_RATE_PARENT, 0x9c, 1, 0, }, | ||
| 84 | { HIX5HD2_SD_CIU_RST, "rst_sd_ciu", "clk_sd_ciu", | ||
| 85 | CLK_SET_RATE_PARENT, 0x9c, 4, CLK_GATE_SET_TO_DISABLE, }, | ||
| 86 | /* sdio1 */ | ||
| 78 | { HIX5HD2_MMC_BIU_CLK, "clk_mmc_biu", "200m", | 87 | { HIX5HD2_MMC_BIU_CLK, "clk_mmc_biu", "200m", |
| 79 | CLK_SET_RATE_PARENT, 0xa0, 0, 0, }, | 88 | CLK_SET_RATE_PARENT, 0xa0, 0, 0, }, |
| 80 | { HIX5HD2_MMC_CIU_CLK, "clk_mmc_ciu", "mmc_mux", | 89 | { HIX5HD2_MMC_CIU_CLK, "clk_mmc_ciu", "mmc_mux", |
diff --git a/include/dt-bindings/clock/hix5hd2-clock.h b/include/dt-bindings/clock/hix5hd2-clock.h index e3286695382d..5bd4135c9544 100644 --- a/include/dt-bindings/clock/hix5hd2-clock.h +++ b/include/dt-bindings/clock/hix5hd2-clock.h | |||
| @@ -46,6 +46,7 @@ | |||
| 46 | #define HIX5HD2_SFC_MUX 64 | 46 | #define HIX5HD2_SFC_MUX 64 |
| 47 | #define HIX5HD2_MMC_MUX 65 | 47 | #define HIX5HD2_MMC_MUX 65 |
| 48 | #define HIX5HD2_FEPHY_MUX 66 | 48 | #define HIX5HD2_FEPHY_MUX 66 |
| 49 | #define HIX5HD2_SD_MUX 67 | ||
| 49 | 50 | ||
| 50 | /* gate clocks */ | 51 | /* gate clocks */ |
| 51 | #define HIX5HD2_SFC_RST 128 | 52 | #define HIX5HD2_SFC_RST 128 |
| @@ -56,6 +57,9 @@ | |||
| 56 | #define HIX5HD2_FWD_BUS_CLK 133 | 57 | #define HIX5HD2_FWD_BUS_CLK 133 |
| 57 | #define HIX5HD2_FWD_SYS_CLK 134 | 58 | #define HIX5HD2_FWD_SYS_CLK 134 |
| 58 | #define HIX5HD2_MAC0_PHY_CLK 135 | 59 | #define HIX5HD2_MAC0_PHY_CLK 135 |
| 60 | #define HIX5HD2_SD_CIU_CLK 136 | ||
| 61 | #define HIX5HD2_SD_BIU_CLK 137 | ||
| 62 | #define HIX5HD2_SD_CIU_RST 138 | ||
| 59 | 63 | ||
| 60 | /* complex */ | 64 | /* complex */ |
| 61 | #define HIX5HD2_MAC0_CLK 192 | 65 | #define HIX5HD2_MAC0_CLK 192 |
