From owner-svn-src-all@freebsd.org Sat May 4 10:48:46 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB80B1589CAC; Sat, 4 May 2019 10:48:45 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 82DA984046; Sat, 4 May 2019 10:48:45 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5BA46739B; Sat, 4 May 2019 10:48:45 +0000 (UTC) (envelope-from ganbold@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x44Amjsn019343; Sat, 4 May 2019 10:48:45 GMT (envelope-from ganbold@FreeBSD.org) Received: (from ganbold@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x44AmjMd019342; Sat, 4 May 2019 10:48:45 GMT (envelope-from ganbold@FreeBSD.org) Message-Id: <201905041048.x44AmjMd019342@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ganbold set sender to ganbold@FreeBSD.org using -f From: Ganbold Tsagaankhuu Date: Sat, 4 May 2019 10:48:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r347097 - head/sys/arm64/rockchip/clk X-SVN-Group: head X-SVN-Commit-Author: ganbold X-SVN-Commit-Paths: head/sys/arm64/rockchip/clk X-SVN-Commit-Revision: 347097 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 82DA984046 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.96 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.96)[-0.960,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 May 2019 10:48:46 -0000 Author: ganbold Date: Sat May 4 10:48:44 2019 New Revision: 347097 URL: https://svnweb.freebsd.org/changeset/base/347097 Log: Add emmc clock definitions for Rockchip RK3399 SoC. Modified: head/sys/arm64/rockchip/clk/rk3399_cru.c Modified: head/sys/arm64/rockchip/clk/rk3399_cru.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk3399_cru.c Sat May 4 10:38:54 2019 (r347096) +++ head/sys/arm64/rockchip/clk/rk3399_cru.c Sat May 4 10:48:44 2019 (r347097) @@ -52,6 +52,9 @@ __FBSDID("$FreeBSD$"); /* GATES */ +#define ACLK_EMMC_CORE 241 +#define ACLK_EMMC_NOC 242 +#define ACLK_EMMC_GRF 243 #define PCLK_GPIO2 336 #define PCLK_GPIO3 337 #define PCLK_GPIO4 338 @@ -80,6 +83,10 @@ static struct rk_cru_gate rk3399_gates[] = { CRU_GATE(0, "cpll_aclk_perihp_src", "cpll", 0x314, 0) CRU_GATE(0, "gpll_aclk_perihp_src", "gpll", 0x314, 1) + /* CRU_CLKGATE_CON6 */ + CRU_GATE(0, "gpll_aclk_emmc_src", "gpll", 0x318, 12) + CRU_GATE(0, "cpll_aclk_emmc_src", "cpll", 0x318, 13) + /* CRU_CLKGATE_CON7 */ CRU_GATE(0, "gpll_aclk_perilp0_src", "gpll", 0x31C, 0) CRU_GATE(0, "cpll_aclk_perilp0_src", "cpll", 0x31C, 1) @@ -101,6 +108,11 @@ static struct rk_cru_gate rk3399_gates[] = { CRU_GATE(PCLK_GPIO3, "pclk_gpio3", "pclk_alive", 0x37c, 4) CRU_GATE(PCLK_GPIO4, "pclk_gpio4", "pclk_alive", 0x37c, 5) + /* CRU_CLKGATE_CON32 */ + CRU_GATE(ACLK_EMMC_CORE, "aclk_emmccore", "aclk_emmc", 0x380, 8) + CRU_GATE(ACLK_EMMC_NOC, "aclk_emmc_noc", "aclk_emmc", 0x380, 9) + CRU_GATE(ACLK_EMMC_GRF, "aclk_emmcgrf", "aclk_emmc", 0x380, 10) + /* CRU_CLKGATE_CON33 */ CRU_GATE(HCLK_SDMMC, "hclk_sdmmc", "hclk_sd", 0x384, 8) }; @@ -1443,6 +1455,60 @@ static struct rk_clk_composite_def sclk_sdmmc = { .flags = RK_CLK_COMPOSITE_HAVE_MUX | RK_CLK_COMPOSITE_HAVE_GATE, }; +/* + * emmc + */ + +#define SCLK_EMMC 78 + +static const char *sclk_emmc_parents[] = {"cpll", "gpll", "npll"}; + +static struct rk_clk_composite_def sclk_emmc = { + .clkdef = { + .id = SCLK_EMMC, + .name = "sclk_emmc", + .parent_names = sclk_emmc_parents, + .parent_cnt = nitems(sclk_emmc_parents), + }, + + .muxdiv_offset = 0x158, + .mux_shift = 8, + .mux_width = 3, + + .div_shift = 0, + .div_width = 7, + + .gate_offset = 0x318, + .gate_shift = 14, + + .flags = RK_CLK_COMPOSITE_HAVE_MUX | RK_CLK_COMPOSITE_HAVE_GATE, +}; + +#define ACLK_EMMC 240 + +static const char *aclk_emmc_parents[] = { + "cpll_aclk_emmc_src", + "gpll_aclk_emmc_src" +}; + +static struct rk_clk_composite_def aclk_emmc = { + .clkdef = { + .id = ACLK_EMMC, + .name = "aclk_emmc", + .parent_names = aclk_emmc_parents, + .parent_cnt = nitems(aclk_emmc_parents), + }, + + .muxdiv_offset = 0x154, + .mux_shift = 7, + .mux_width = 1, + + .div_shift = 0, + .div_width = 5, + + .flags = RK_CLK_COMPOSITE_HAVE_MUX, +}; + static struct rk_clk rk3399_clks[] = { { .type = RK3399_CLK_PLL, @@ -1550,6 +1616,15 @@ static struct rk_clk rk3399_clks[] = { { .type = RK_CLK_COMPOSITE, .clk.composite = &sclk_sdmmc, + }, + + { + .type = RK_CLK_COMPOSITE, + .clk.composite = &sclk_emmc, + }, + { + .type = RK_CLK_COMPOSITE, + .clk.composite = &aclk_emmc, }, };