From: Maxime Ripard <maxime@cerno.tech> To: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Cc: linux-rpi-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Dave Stevenson <dave.stevenson@raspberrypi.com>, Tim Gover <tim.gover@raspberrypi.com>, Phil Elwell <phil@raspberrypi.com>, Maxime Ripard <maxime@cerno.tech> Subject: [PATCH v3 20/25] clk: bcm: rpi: Add an enum for the firmware clocks Date: Wed, 27 May 2020 17:45:16 +0200 [thread overview] Message-ID: <c56fb0a912fe254416ed5a247e6fb6d79fb604bc.1590594293.git-series.maxime@cerno.tech> (raw) In-Reply-To: <cover.662a8d401787ef33780d91252a352de91dc4be10.1590594293.git-series.maxime@cerno.tech> While the firmware allows us to discover the available clocks, we need to discriminate those clocks to only register the ones meaningful to Linux. The firmware also doesn't provide a clock name, so having a list of the ID will help us to give clocks a proper name later on. Signed-off-by: Maxime Ripard <maxime@cerno.tech> --- drivers/clk/bcm/clk-raspberrypi.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c index 5f4e2d49432f..eebd16040f8a 100644 --- a/drivers/clk/bcm/clk-raspberrypi.c +++ b/drivers/clk/bcm/clk-raspberrypi.c @@ -18,7 +18,23 @@ #include <soc/bcm2835/raspberrypi-firmware.h> -#define RPI_FIRMWARE_ARM_CLK_ID 0x00000003 +enum rpi_firmware_clk_id { + RPI_FIRMWARE_EMMC_CLK_ID = 1, + RPI_FIRMWARE_UART_CLK_ID, + RPI_FIRMWARE_ARM_CLK_ID, + RPI_FIRMWARE_CORE_CLK_ID, + RPI_FIRMWARE_V3D_CLK_ID, + RPI_FIRMWARE_H264_CLK_ID, + RPI_FIRMWARE_ISP_CLK_ID, + RPI_FIRMWARE_SDRAM_CLK_ID, + RPI_FIRMWARE_PIXEL_CLK_ID, + RPI_FIRMWARE_PWM_CLK_ID, + RPI_FIRMWARE_HEVC_CLK_ID, + RPI_FIRMWARE_EMMC2_CLK_ID, + RPI_FIRMWARE_M2MC_CLK_ID, + RPI_FIRMWARE_PIXEL_BVB_CLK_ID, + RPI_FIRMWARE_NUM_CLK_ID, +}; #define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0) #define RPI_FIRMWARE_STATE_WAIT_BIT BIT(1) @@ -31,8 +47,6 @@ #define A2W_PLL_FRAC_BITS 20 -#define NUM_FW_CLKS 16 - struct raspberrypi_clk { struct device *dev; struct rpi_firmware *firmware; @@ -320,7 +334,8 @@ static int raspberrypi_clk_probe(struct platform_device *pdev) rpi->firmware = firmware; platform_set_drvdata(pdev, rpi); - clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, NUM_FW_CLKS), + clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, + RPI_FIRMWARE_NUM_CLK_ID), GFP_KERNEL); if (!clk_data) return -ENOMEM; -- git-series 0.9.1
WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime@cerno.tech> To: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Cc: Tim Gover <tim.gover@raspberrypi.com>, Dave Stevenson <dave.stevenson@raspberrypi.com>, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, Phil Elwell <phil@raspberrypi.com>, linux-arm-kernel@lists.infradead.org, Maxime Ripard <maxime@cerno.tech> Subject: [PATCH v3 20/25] clk: bcm: rpi: Add an enum for the firmware clocks Date: Wed, 27 May 2020 17:45:16 +0200 [thread overview] Message-ID: <c56fb0a912fe254416ed5a247e6fb6d79fb604bc.1590594293.git-series.maxime@cerno.tech> (raw) In-Reply-To: <cover.662a8d401787ef33780d91252a352de91dc4be10.1590594293.git-series.maxime@cerno.tech> While the firmware allows us to discover the available clocks, we need to discriminate those clocks to only register the ones meaningful to Linux. The firmware also doesn't provide a clock name, so having a list of the ID will help us to give clocks a proper name later on. Signed-off-by: Maxime Ripard <maxime@cerno.tech> --- drivers/clk/bcm/clk-raspberrypi.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/clk/bcm/clk-raspberrypi.c b/drivers/clk/bcm/clk-raspberrypi.c index 5f4e2d49432f..eebd16040f8a 100644 --- a/drivers/clk/bcm/clk-raspberrypi.c +++ b/drivers/clk/bcm/clk-raspberrypi.c @@ -18,7 +18,23 @@ #include <soc/bcm2835/raspberrypi-firmware.h> -#define RPI_FIRMWARE_ARM_CLK_ID 0x00000003 +enum rpi_firmware_clk_id { + RPI_FIRMWARE_EMMC_CLK_ID = 1, + RPI_FIRMWARE_UART_CLK_ID, + RPI_FIRMWARE_ARM_CLK_ID, + RPI_FIRMWARE_CORE_CLK_ID, + RPI_FIRMWARE_V3D_CLK_ID, + RPI_FIRMWARE_H264_CLK_ID, + RPI_FIRMWARE_ISP_CLK_ID, + RPI_FIRMWARE_SDRAM_CLK_ID, + RPI_FIRMWARE_PIXEL_CLK_ID, + RPI_FIRMWARE_PWM_CLK_ID, + RPI_FIRMWARE_HEVC_CLK_ID, + RPI_FIRMWARE_EMMC2_CLK_ID, + RPI_FIRMWARE_M2MC_CLK_ID, + RPI_FIRMWARE_PIXEL_BVB_CLK_ID, + RPI_FIRMWARE_NUM_CLK_ID, +}; #define RPI_FIRMWARE_STATE_ENABLE_BIT BIT(0) #define RPI_FIRMWARE_STATE_WAIT_BIT BIT(1) @@ -31,8 +47,6 @@ #define A2W_PLL_FRAC_BITS 20 -#define NUM_FW_CLKS 16 - struct raspberrypi_clk { struct device *dev; struct rpi_firmware *firmware; @@ -320,7 +334,8 @@ static int raspberrypi_clk_probe(struct platform_device *pdev) rpi->firmware = firmware; platform_set_drvdata(pdev, rpi); - clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, NUM_FW_CLKS), + clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, + RPI_FIRMWARE_NUM_CLK_ID), GFP_KERNEL); if (!clk_data) return -ENOMEM; -- git-series 0.9.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-05-27 15:46 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-27 15:44 [PATCH v3 00/25] clk: bcm: rpi: Add support for BCM2711 firmware clocks Maxime Ripard 2020-05-27 15:44 ` Maxime Ripard 2020-05-27 15:44 ` [PATCH v3 01/25] dt-bindings: arm: bcm: Convert BCM2835 firmware binding to YAML Maxime Ripard 2020-05-27 15:44 ` Maxime Ripard 2020-05-27 15:44 ` [PATCH v3 02/25] dt-bindings: clock: Add a binding for the RPi Firmware clocks Maxime Ripard 2020-05-27 15:44 ` Maxime Ripard 2020-05-29 18:14 ` Rob Herring 2020-05-29 18:14 ` Rob Herring 2020-05-29 21:17 ` Stephen Boyd 2020-05-29 21:17 ` Stephen Boyd 2020-05-30 16:23 ` Maxime Ripard 2020-05-30 16:23 ` Maxime Ripard 2020-05-27 15:44 ` [PATCH v3 03/25] firmware: rpi: Only create clocks device if we don't have a node for it Maxime Ripard 2020-05-27 15:44 ` Maxime Ripard 2020-06-04 17:50 ` Nicolas Saenz Julienne 2020-06-04 17:50 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 04/25] clk: bcm: rpi: Allow the driver to be probed by DT Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-29 21:17 ` Stephen Boyd 2020-05-29 21:17 ` Stephen Boyd 2020-06-04 17:52 ` Nicolas Saenz Julienne 2020-06-04 17:52 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 05/25] clk: bcm: rpi: Statically init clk_init_data Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 06/25] clk: bcm: rpi: Use clk_hw_register for pllb_arm Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 07/25] clk: bcm: rpi: Remove global pllb_arm clock pointer Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 08/25] clk: bcm: rpi: Make sure pllb_arm is removed Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 09/25] clk: bcm: rpi: Remove pllb_arm_lookup global pointer Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 10/25] clk: bcm: rpi: Switch to clk_hw_register_clkdev Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 11/25] clk: bcm: rpi: Make sure the clkdev lookup is removed Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 12/25] clk: bcm: rpi: Use CCF boundaries instead of rolling our own Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-04 18:02 ` Nicolas Saenz Julienne 2020-06-04 18:02 ` Nicolas Saenz Julienne 2020-06-05 9:28 ` Maxime Ripard 2020-06-05 9:28 ` Maxime Ripard 2020-06-05 9:34 ` Nicolas Saenz Julienne 2020-06-05 9:34 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 13/25] clk: bcm: rpi: Create a data structure for the clocks Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 14/25] clk: bcm: rpi: Add clock id to data Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 15/25] clk: bcm: rpi: Pass the clocks data to the firmware function Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 16/25] clk: bcm: rpi: Rename is_prepared function Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 17/25] clk: bcm: rpi: Split pllb clock hooks Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-05 10:34 ` Nicolas Saenz Julienne 2020-06-05 10:34 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 18/25] clk: bcm: rpi: Make the PLLB registration function return a clk_hw Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-05 10:38 ` Nicolas Saenz Julienne 2020-06-05 10:38 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 19/25] clk: bcm: rpi: Add DT provider for the clocks Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-05 10:42 ` Nicolas Saenz Julienne 2020-06-05 10:42 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` Maxime Ripard [this message] 2020-05-27 15:45 ` [PATCH v3 20/25] clk: bcm: rpi: Add an enum for the firmware clocks Maxime Ripard 2020-06-05 12:04 ` Nicolas Saenz Julienne 2020-06-05 12:04 ` Nicolas Saenz Julienne 2020-06-05 13:09 ` Nicolas Saenz Julienne 2020-06-05 13:09 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 21/25] clk: bcm: rpi: Discover " Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-05 12:45 ` Nicolas Saenz Julienne 2020-06-05 12:45 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 22/25] clk: bcm: rpi: Give firmware clocks a name Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-06-05 12:49 ` Nicolas Saenz Julienne 2020-06-05 12:49 ` Nicolas Saenz Julienne 2020-05-27 15:45 ` [PATCH v3 23/25] Revert "clk: bcm2835: remove pllb" Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 24/25] clk: bcm: rpi: Remove the quirks for the CPU clock Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard 2020-05-27 15:45 ` [PATCH v3 25/25] ARM: dts: bcm2711: Add firmware clocks node Maxime Ripard 2020-05-27 15:45 ` Maxime Ripard
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=c56fb0a912fe254416ed5a247e6fb6d79fb604bc.1590594293.git-series.maxime@cerno.tech \ --to=maxime@cerno.tech \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=dave.stevenson@raspberrypi.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=nsaenzjulienne@suse.de \ --cc=phil@raspberrypi.com \ --cc=tim.gover@raspberrypi.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.