[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YwZA+1z7BDCXZn/3@lunn.ch>
Date: Wed, 24 Aug 2022 17:17:15 +0200
From: Andrew Lunn <andrew@...n.ch>
To: "xiaowu.ding" <xiaowu.ding@...uarmicro.com>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, linux@...linux.org.uk,
nicolas.ferre@...rochip.com, claudiu.beznea@...rochip.com,
palmer@...belt.com, paul.walmsley@...ive.com,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-riscv@...ts.infradead.org
Subject: Re: [PATCH net-next] driver: cadence macb driver support acpi mode
> +/* On ACPI platforms, clocks are controlled by firmware and/or
> + * ACPI, not by drivers.Need to store the clock value.
> + */
> +struct macb_acpi_config {
> + u32 hclk_rate; /* amba clock rate*/
> + u32 pclk_rate; /* amba apb clock rate*/
> + u32 txclk_rate; /* tx clock rate*/
> + u32 rxclk_rate; /* rx clock rate*/
> + u32 tsuclk_rate; /* tx clock rate*/
> + bool acpi_enable; /* is acpi or not */
> +};
> +static int macb_acpi_support(struct macb *bp)
> +{
> + struct device *dev = &bp->pdev->dev;
> + struct macb_acpi_config *config = &bp->acpicfg;
> + int ret;
> + u32 property;
> +
> + /*acpi must be report the pclk*/
> + property = 0;
> + ret = device_property_read_u32(dev, MACB_SYSPCLOCK, &property);
> + if (ret) {
> + dev_err(dev, "unable to obtain %s property\n", MACB_SYSPCLOCK);
> + return ret;
> + }
> +
> + config->pclk_rate = property;
It seems like you could make this simpler by just calling
clk_hw_register_fixed_rate(dev, "pclk", NULL, 0, property);
You then don't need to modify any other code with respect to clocks.
The clock does exist, so model it in the common clock framework.
Andrew
Powered by blists - more mailing lists