Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: sunxi-ng: add Allwinner H5 CCU support for H3 CCU driver

Allwinner H5 is a SoC that features a design which keeps the peripheral
compatible with H3, so that it have also a CCU like the one on H3 --
only one bus gate/reset is added, and the mmc sample/output phases are
removed because of MMC controller update.

Add its support in our existing H3 CCU driver.

Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

authored by

Icenowy Zheng and committed by
Maxime Ripard
9be1c8af 845d6b0f

+332 -11
+1
Documentation/devicetree/bindings/clock/sunxi-ccu.txt
··· 10 10 - "allwinner,sun8i-v3s-ccu" 11 11 - "allwinner,sun9i-a80-ccu" 12 12 - "allwinner,sun50i-a64-ccu" 13 + - "allwinner,sun50i-h5-ccu" 13 14 14 15 - reg: Must contain the registers base address and length 15 16 - clocks: phandle to the oscillators feeding the CCU. Two are needed:
+1 -1
drivers/clk/sunxi-ng/Kconfig
··· 119 119 select SUNXI_CCU_NM 120 120 select SUNXI_CCU_MP 121 121 select SUNXI_CCU_PHASE 122 - default MACH_SUN8I 122 + default MACH_SUN8I || (ARM64 && ARCH_SUNXI) 123 123 124 124 config SUN8I_V3S_CCU 125 125 bool "Support for the Allwinner V3s CCU"
+320 -7
drivers/clk/sunxi-ng/ccu-sun8i-h3.c
··· 300 300 0x06c, BIT(18), 0); 301 301 static SUNXI_CCU_GATE(bus_uart3_clk, "bus-uart3", "apb2", 302 302 0x06c, BIT(19), 0); 303 - static SUNXI_CCU_GATE(bus_scr_clk, "bus-scr", "apb2", 303 + static SUNXI_CCU_GATE(bus_scr0_clk, "bus-scr0", "apb2", 304 304 0x06c, BIT(20), 0); 305 + static SUNXI_CCU_GATE(bus_scr1_clk, "bus-scr1", "apb2", 306 + 0x06c, BIT(21), 0); 305 307 306 308 static SUNXI_CCU_GATE(bus_ephy_clk, "bus-ephy", "ahb1", 307 309 0x070, BIT(0), 0); ··· 548 546 &bus_uart1_clk.common, 549 547 &bus_uart2_clk.common, 550 548 &bus_uart3_clk.common, 551 - &bus_scr_clk.common, 549 + &bus_scr0_clk.common, 552 550 &bus_ephy_clk.common, 553 551 &bus_dbg_clk.common, 554 552 &ths_clk.common, ··· 562 560 &mmc2_clk.common, 563 561 &mmc2_sample_clk.common, 564 562 &mmc2_output_clk.common, 563 + &ts_clk.common, 564 + &ce_clk.common, 565 + &spi0_clk.common, 566 + &spi1_clk.common, 567 + &i2s0_clk.common, 568 + &i2s1_clk.common, 569 + &i2s2_clk.common, 570 + &spdif_clk.common, 571 + &usb_phy0_clk.common, 572 + &usb_phy1_clk.common, 573 + &usb_phy2_clk.common, 574 + &usb_phy3_clk.common, 575 + &usb_ohci0_clk.common, 576 + &usb_ohci1_clk.common, 577 + &usb_ohci2_clk.common, 578 + &usb_ohci3_clk.common, 579 + &dram_clk.common, 580 + &dram_ve_clk.common, 581 + &dram_csi_clk.common, 582 + &dram_deinterlace_clk.common, 583 + &dram_ts_clk.common, 584 + &de_clk.common, 585 + &tcon_clk.common, 586 + &tve_clk.common, 587 + &deinterlace_clk.common, 588 + &csi_misc_clk.common, 589 + &csi_sclk_clk.common, 590 + &csi_mclk_clk.common, 591 + &ve_clk.common, 592 + &ac_dig_clk.common, 593 + &avs_clk.common, 594 + &hdmi_clk.common, 595 + &hdmi_ddc_clk.common, 596 + &mbus_clk.common, 597 + &gpu_clk.common, 598 + }; 599 + 600 + static struct ccu_common *sun50i_h5_ccu_clks[] = { 601 + &pll_cpux_clk.common, 602 + &pll_audio_base_clk.common, 603 + &pll_video_clk.common, 604 + &pll_ve_clk.common, 605 + &pll_ddr_clk.common, 606 + &pll_periph0_clk.common, 607 + &pll_gpu_clk.common, 608 + &pll_periph1_clk.common, 609 + &pll_de_clk.common, 610 + &cpux_clk.common, 611 + &axi_clk.common, 612 + &ahb1_clk.common, 613 + &apb1_clk.common, 614 + &apb2_clk.common, 615 + &ahb2_clk.common, 616 + &bus_ce_clk.common, 617 + &bus_dma_clk.common, 618 + &bus_mmc0_clk.common, 619 + &bus_mmc1_clk.common, 620 + &bus_mmc2_clk.common, 621 + &bus_nand_clk.common, 622 + &bus_dram_clk.common, 623 + &bus_emac_clk.common, 624 + &bus_ts_clk.common, 625 + &bus_hstimer_clk.common, 626 + &bus_spi0_clk.common, 627 + &bus_spi1_clk.common, 628 + &bus_otg_clk.common, 629 + &bus_ehci0_clk.common, 630 + &bus_ehci1_clk.common, 631 + &bus_ehci2_clk.common, 632 + &bus_ehci3_clk.common, 633 + &bus_ohci0_clk.common, 634 + &bus_ohci1_clk.common, 635 + &bus_ohci2_clk.common, 636 + &bus_ohci3_clk.common, 637 + &bus_ve_clk.common, 638 + &bus_tcon0_clk.common, 639 + &bus_tcon1_clk.common, 640 + &bus_deinterlace_clk.common, 641 + &bus_csi_clk.common, 642 + &bus_tve_clk.common, 643 + &bus_hdmi_clk.common, 644 + &bus_de_clk.common, 645 + &bus_gpu_clk.common, 646 + &bus_msgbox_clk.common, 647 + &bus_spinlock_clk.common, 648 + &bus_codec_clk.common, 649 + &bus_spdif_clk.common, 650 + &bus_pio_clk.common, 651 + &bus_ths_clk.common, 652 + &bus_i2s0_clk.common, 653 + &bus_i2s1_clk.common, 654 + &bus_i2s2_clk.common, 655 + &bus_i2c0_clk.common, 656 + &bus_i2c1_clk.common, 657 + &bus_i2c2_clk.common, 658 + &bus_uart0_clk.common, 659 + &bus_uart1_clk.common, 660 + &bus_uart2_clk.common, 661 + &bus_uart3_clk.common, 662 + &bus_scr0_clk.common, 663 + &bus_scr1_clk.common, 664 + &bus_ephy_clk.common, 665 + &bus_dbg_clk.common, 666 + &ths_clk.common, 667 + &nand_clk.common, 668 + &mmc0_clk.common, 669 + &mmc1_clk.common, 670 + &mmc2_clk.common, 565 671 &ts_clk.common, 566 672 &ce_clk.common, 567 673 &spi0_clk.common, ··· 787 677 [CLK_BUS_UART1] = &bus_uart1_clk.common.hw, 788 678 [CLK_BUS_UART2] = &bus_uart2_clk.common.hw, 789 679 [CLK_BUS_UART3] = &bus_uart3_clk.common.hw, 790 - [CLK_BUS_SCR] = &bus_scr_clk.common.hw, 680 + [CLK_BUS_SCR0] = &bus_scr0_clk.common.hw, 791 681 [CLK_BUS_EPHY] = &bus_ephy_clk.common.hw, 792 682 [CLK_BUS_DBG] = &bus_dbg_clk.common.hw, 793 683 [CLK_THS] = &ths_clk.common.hw, ··· 837 727 [CLK_MBUS] = &mbus_clk.common.hw, 838 728 [CLK_GPU] = &gpu_clk.common.hw, 839 729 }, 840 - .num = CLK_NUMBER, 730 + .num = CLK_NUMBER_H3, 731 + }; 732 + 733 + static struct clk_hw_onecell_data sun50i_h5_hw_clks = { 734 + .hws = { 735 + [CLK_PLL_CPUX] = &pll_cpux_clk.common.hw, 736 + [CLK_PLL_AUDIO_BASE] = &pll_audio_base_clk.common.hw, 737 + [CLK_PLL_AUDIO] = &pll_audio_clk.hw, 738 + [CLK_PLL_AUDIO_2X] = &pll_audio_2x_clk.hw, 739 + [CLK_PLL_AUDIO_4X] = &pll_audio_4x_clk.hw, 740 + [CLK_PLL_AUDIO_8X] = &pll_audio_8x_clk.hw, 741 + [CLK_PLL_VIDEO] = &pll_video_clk.common.hw, 742 + [CLK_PLL_VE] = &pll_ve_clk.common.hw, 743 + [CLK_PLL_DDR] = &pll_ddr_clk.common.hw, 744 + [CLK_PLL_PERIPH0] = &pll_periph0_clk.common.hw, 745 + [CLK_PLL_PERIPH0_2X] = &pll_periph0_2x_clk.hw, 746 + [CLK_PLL_GPU] = &pll_gpu_clk.common.hw, 747 + [CLK_PLL_PERIPH1] = &pll_periph1_clk.common.hw, 748 + [CLK_PLL_DE] = &pll_de_clk.common.hw, 749 + [CLK_CPUX] = &cpux_clk.common.hw, 750 + [CLK_AXI] = &axi_clk.common.hw, 751 + [CLK_AHB1] = &ahb1_clk.common.hw, 752 + [CLK_APB1] = &apb1_clk.common.hw, 753 + [CLK_APB2] = &apb2_clk.common.hw, 754 + [CLK_AHB2] = &ahb2_clk.common.hw, 755 + [CLK_BUS_CE] = &bus_ce_clk.common.hw, 756 + [CLK_BUS_DMA] = &bus_dma_clk.common.hw, 757 + [CLK_BUS_MMC0] = &bus_mmc0_clk.common.hw, 758 + [CLK_BUS_MMC1] = &bus_mmc1_clk.common.hw, 759 + [CLK_BUS_MMC2] = &bus_mmc2_clk.common.hw, 760 + [CLK_BUS_NAND] = &bus_nand_clk.common.hw, 761 + [CLK_BUS_DRAM] = &bus_dram_clk.common.hw, 762 + [CLK_BUS_EMAC] = &bus_emac_clk.common.hw, 763 + [CLK_BUS_TS] = &bus_ts_clk.common.hw, 764 + [CLK_BUS_HSTIMER] = &bus_hstimer_clk.common.hw, 765 + [CLK_BUS_SPI0] = &bus_spi0_clk.common.hw, 766 + [CLK_BUS_SPI1] = &bus_spi1_clk.common.hw, 767 + [CLK_BUS_OTG] = &bus_otg_clk.common.hw, 768 + [CLK_BUS_EHCI0] = &bus_ehci0_clk.common.hw, 769 + [CLK_BUS_EHCI1] = &bus_ehci1_clk.common.hw, 770 + [CLK_BUS_EHCI2] = &bus_ehci2_clk.common.hw, 771 + [CLK_BUS_EHCI3] = &bus_ehci3_clk.common.hw, 772 + [CLK_BUS_OHCI0] = &bus_ohci0_clk.common.hw, 773 + [CLK_BUS_OHCI1] = &bus_ohci1_clk.common.hw, 774 + [CLK_BUS_OHCI2] = &bus_ohci2_clk.common.hw, 775 + [CLK_BUS_OHCI3] = &bus_ohci3_clk.common.hw, 776 + [CLK_BUS_VE] = &bus_ve_clk.common.hw, 777 + [CLK_BUS_TCON0] = &bus_tcon0_clk.common.hw, 778 + [CLK_BUS_TCON1] = &bus_tcon1_clk.common.hw, 779 + [CLK_BUS_DEINTERLACE] = &bus_deinterlace_clk.common.hw, 780 + [CLK_BUS_CSI] = &bus_csi_clk.common.hw, 781 + [CLK_BUS_TVE] = &bus_tve_clk.common.hw, 782 + [CLK_BUS_HDMI] = &bus_hdmi_clk.common.hw, 783 + [CLK_BUS_DE] = &bus_de_clk.common.hw, 784 + [CLK_BUS_GPU] = &bus_gpu_clk.common.hw, 785 + [CLK_BUS_MSGBOX] = &bus_msgbox_clk.common.hw, 786 + [CLK_BUS_SPINLOCK] = &bus_spinlock_clk.common.hw, 787 + [CLK_BUS_CODEC] = &bus_codec_clk.common.hw, 788 + [CLK_BUS_SPDIF] = &bus_spdif_clk.common.hw, 789 + [CLK_BUS_PIO] = &bus_pio_clk.common.hw, 790 + [CLK_BUS_THS] = &bus_ths_clk.common.hw, 791 + [CLK_BUS_I2S0] = &bus_i2s0_clk.common.hw, 792 + [CLK_BUS_I2S1] = &bus_i2s1_clk.common.hw, 793 + [CLK_BUS_I2S2] = &bus_i2s2_clk.common.hw, 794 + [CLK_BUS_I2C0] = &bus_i2c0_clk.common.hw, 795 + [CLK_BUS_I2C1] = &bus_i2c1_clk.common.hw, 796 + [CLK_BUS_I2C2] = &bus_i2c2_clk.common.hw, 797 + [CLK_BUS_UART0] = &bus_uart0_clk.common.hw, 798 + [CLK_BUS_UART1] = &bus_uart1_clk.common.hw, 799 + [CLK_BUS_UART2] = &bus_uart2_clk.common.hw, 800 + [CLK_BUS_UART3] = &bus_uart3_clk.common.hw, 801 + [CLK_BUS_SCR0] = &bus_scr0_clk.common.hw, 802 + [CLK_BUS_SCR1] = &bus_scr1_clk.common.hw, 803 + [CLK_BUS_EPHY] = &bus_ephy_clk.common.hw, 804 + [CLK_BUS_DBG] = &bus_dbg_clk.common.hw, 805 + [CLK_THS] = &ths_clk.common.hw, 806 + [CLK_NAND] = &nand_clk.common.hw, 807 + [CLK_MMC0] = &mmc0_clk.common.hw, 808 + [CLK_MMC1] = &mmc1_clk.common.hw, 809 + [CLK_MMC2] = &mmc2_clk.common.hw, 810 + [CLK_TS] = &ts_clk.common.hw, 811 + [CLK_CE] = &ce_clk.common.hw, 812 + [CLK_SPI0] = &spi0_clk.common.hw, 813 + [CLK_SPI1] = &spi1_clk.common.hw, 814 + [CLK_I2S0] = &i2s0_clk.common.hw, 815 + [CLK_I2S1] = &i2s1_clk.common.hw, 816 + [CLK_I2S2] = &i2s2_clk.common.hw, 817 + [CLK_SPDIF] = &spdif_clk.common.hw, 818 + [CLK_USB_PHY0] = &usb_phy0_clk.common.hw, 819 + [CLK_USB_PHY1] = &usb_phy1_clk.common.hw, 820 + [CLK_USB_PHY2] = &usb_phy2_clk.common.hw, 821 + [CLK_USB_PHY3] = &usb_phy3_clk.common.hw, 822 + [CLK_USB_OHCI0] = &usb_ohci0_clk.common.hw, 823 + [CLK_USB_OHCI1] = &usb_ohci1_clk.common.hw, 824 + [CLK_USB_OHCI2] = &usb_ohci2_clk.common.hw, 825 + [CLK_USB_OHCI3] = &usb_ohci3_clk.common.hw, 826 + [CLK_DRAM] = &dram_clk.common.hw, 827 + [CLK_DRAM_VE] = &dram_ve_clk.common.hw, 828 + [CLK_DRAM_CSI] = &dram_csi_clk.common.hw, 829 + [CLK_DRAM_DEINTERLACE] = &dram_deinterlace_clk.common.hw, 830 + [CLK_DRAM_TS] = &dram_ts_clk.common.hw, 831 + [CLK_DE] = &de_clk.common.hw, 832 + [CLK_TCON0] = &tcon_clk.common.hw, 833 + [CLK_TVE] = &tve_clk.common.hw, 834 + [CLK_DEINTERLACE] = &deinterlace_clk.common.hw, 835 + [CLK_CSI_MISC] = &csi_misc_clk.common.hw, 836 + [CLK_CSI_SCLK] = &csi_sclk_clk.common.hw, 837 + [CLK_CSI_MCLK] = &csi_mclk_clk.common.hw, 838 + [CLK_VE] = &ve_clk.common.hw, 839 + [CLK_AC_DIG] = &ac_dig_clk.common.hw, 840 + [CLK_AVS] = &avs_clk.common.hw, 841 + [CLK_HDMI] = &hdmi_clk.common.hw, 842 + [CLK_HDMI_DDC] = &hdmi_ddc_clk.common.hw, 843 + [CLK_MBUS] = &mbus_clk.common.hw, 844 + [CLK_GPU] = &gpu_clk.common.hw, 845 + }, 846 + .num = CLK_NUMBER_H5, 841 847 }; 842 848 843 849 static struct ccu_reset_map sun8i_h3_ccu_resets[] = { ··· 1016 790 [RST_BUS_UART1] = { 0x2d8, BIT(17) }, 1017 791 [RST_BUS_UART2] = { 0x2d8, BIT(18) }, 1018 792 [RST_BUS_UART3] = { 0x2d8, BIT(19) }, 1019 - [RST_BUS_SCR] = { 0x2d8, BIT(20) }, 793 + [RST_BUS_SCR0] = { 0x2d8, BIT(20) }, 794 + }; 795 + 796 + static struct ccu_reset_map sun50i_h5_ccu_resets[] = { 797 + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, 798 + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, 799 + [RST_USB_PHY2] = { 0x0cc, BIT(2) }, 800 + [RST_USB_PHY3] = { 0x0cc, BIT(3) }, 801 + 802 + [RST_MBUS] = { 0x0fc, BIT(31) }, 803 + 804 + [RST_BUS_CE] = { 0x2c0, BIT(5) }, 805 + [RST_BUS_DMA] = { 0x2c0, BIT(6) }, 806 + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, 807 + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, 808 + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, 809 + [RST_BUS_NAND] = { 0x2c0, BIT(13) }, 810 + [RST_BUS_DRAM] = { 0x2c0, BIT(14) }, 811 + [RST_BUS_EMAC] = { 0x2c0, BIT(17) }, 812 + [RST_BUS_TS] = { 0x2c0, BIT(18) }, 813 + [RST_BUS_HSTIMER] = { 0x2c0, BIT(19) }, 814 + [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, 815 + [RST_BUS_SPI1] = { 0x2c0, BIT(21) }, 816 + [RST_BUS_OTG] = { 0x2c0, BIT(23) }, 817 + [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, 818 + [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, 819 + [RST_BUS_EHCI2] = { 0x2c0, BIT(26) }, 820 + [RST_BUS_EHCI3] = { 0x2c0, BIT(27) }, 821 + [RST_BUS_OHCI0] = { 0x2c0, BIT(28) }, 822 + [RST_BUS_OHCI1] = { 0x2c0, BIT(29) }, 823 + [RST_BUS_OHCI2] = { 0x2c0, BIT(30) }, 824 + [RST_BUS_OHCI3] = { 0x2c0, BIT(31) }, 825 + 826 + [RST_BUS_VE] = { 0x2c4, BIT(0) }, 827 + [RST_BUS_TCON0] = { 0x2c4, BIT(3) }, 828 + [RST_BUS_TCON1] = { 0x2c4, BIT(4) }, 829 + [RST_BUS_DEINTERLACE] = { 0x2c4, BIT(5) }, 830 + [RST_BUS_CSI] = { 0x2c4, BIT(8) }, 831 + [RST_BUS_TVE] = { 0x2c4, BIT(9) }, 832 + [RST_BUS_HDMI0] = { 0x2c4, BIT(10) }, 833 + [RST_BUS_HDMI1] = { 0x2c4, BIT(11) }, 834 + [RST_BUS_DE] = { 0x2c4, BIT(12) }, 835 + [RST_BUS_GPU] = { 0x2c4, BIT(20) }, 836 + [RST_BUS_MSGBOX] = { 0x2c4, BIT(21) }, 837 + [RST_BUS_SPINLOCK] = { 0x2c4, BIT(22) }, 838 + [RST_BUS_DBG] = { 0x2c4, BIT(31) }, 839 + 840 + [RST_BUS_EPHY] = { 0x2c8, BIT(2) }, 841 + 842 + [RST_BUS_CODEC] = { 0x2d0, BIT(0) }, 843 + [RST_BUS_SPDIF] = { 0x2d0, BIT(1) }, 844 + [RST_BUS_THS] = { 0x2d0, BIT(8) }, 845 + [RST_BUS_I2S0] = { 0x2d0, BIT(12) }, 846 + [RST_BUS_I2S1] = { 0x2d0, BIT(13) }, 847 + [RST_BUS_I2S2] = { 0x2d0, BIT(14) }, 848 + 849 + [RST_BUS_I2C0] = { 0x2d8, BIT(0) }, 850 + [RST_BUS_I2C1] = { 0x2d8, BIT(1) }, 851 + [RST_BUS_I2C2] = { 0x2d8, BIT(2) }, 852 + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, 853 + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, 854 + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, 855 + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, 856 + [RST_BUS_SCR0] = { 0x2d8, BIT(20) }, 857 + [RST_BUS_SCR1] = { 0x2d8, BIT(20) }, 1020 858 }; 1021 859 1022 860 static const struct sunxi_ccu_desc sun8i_h3_ccu_desc = { ··· 1093 803 .num_resets = ARRAY_SIZE(sun8i_h3_ccu_resets), 1094 804 }; 1095 805 806 + static const struct sunxi_ccu_desc sun50i_h5_ccu_desc = { 807 + .ccu_clks = sun50i_h5_ccu_clks, 808 + .num_ccu_clks = ARRAY_SIZE(sun50i_h5_ccu_clks), 809 + 810 + .hw_clks = &sun50i_h5_hw_clks, 811 + 812 + .resets = sun50i_h5_ccu_resets, 813 + .num_resets = ARRAY_SIZE(sun50i_h5_ccu_resets), 814 + }; 815 + 1096 816 static struct ccu_mux_nb sun8i_h3_cpu_nb = { 1097 817 .common = &cpux_clk.common, 1098 818 .cm = &cpux_clk.mux, ··· 1110 810 .bypass_index = 1, /* index of 24 MHz oscillator */ 1111 811 }; 1112 812 1113 - static void __init sun8i_h3_ccu_setup(struct device_node *node) 813 + static void __init sunxi_h3_h5_ccu_init(struct device_node *node, 814 + const struct sunxi_ccu_desc *desc) 1114 815 { 1115 816 void __iomem *reg; 1116 817 u32 val; ··· 1128 827 val &= ~GENMASK(19, 16); 1129 828 writel(val | (3 << 16), reg + SUN8I_H3_PLL_AUDIO_REG); 1130 829 1131 - sunxi_ccu_probe(node, reg, &sun8i_h3_ccu_desc); 830 + sunxi_ccu_probe(node, reg, desc); 1132 831 1133 832 ccu_mux_notifier_register(pll_cpux_clk.common.hw.clk, 1134 833 &sun8i_h3_cpu_nb); 1135 834 } 835 + 836 + static void __init sun8i_h3_ccu_setup(struct device_node *node) 837 + { 838 + sunxi_h3_h5_ccu_init(node, &sun8i_h3_ccu_desc); 839 + } 1136 840 CLK_OF_DECLARE(sun8i_h3_ccu, "allwinner,sun8i-h3-ccu", 1137 841 sun8i_h3_ccu_setup); 842 + 843 + static void __init sun50i_h5_ccu_setup(struct device_node *node) 844 + { 845 + sunxi_h3_h5_ccu_init(node, &sun50i_h5_ccu_desc); 846 + } 847 + CLK_OF_DECLARE(sun50i_h5_ccu, "allwinner,sun50i-h5-ccu", 848 + sun50i_h5_ccu_setup);
+2 -1
drivers/clk/sunxi-ng/ccu-sun8i-h3.h
··· 57 57 58 58 /* And the GPU module clock is exported */ 59 59 60 - #define CLK_NUMBER (CLK_GPU + 1) 60 + #define CLK_NUMBER_H3 (CLK_GPU + 1) 61 + #define CLK_NUMBER_H5 (CLK_BUS_SCR1 + 1) 61 62 62 63 #endif /* _CCU_SUN8I_H3_H_ */
+4 -1
include/dt-bindings/clock/sun8i-h3-ccu.h
··· 91 91 #define CLK_BUS_UART1 63 92 92 #define CLK_BUS_UART2 64 93 93 #define CLK_BUS_UART3 65 94 - #define CLK_BUS_SCR 66 94 + #define CLK_BUS_SCR0 66 95 95 #define CLK_BUS_EPHY 67 96 96 #define CLK_BUS_DBG 68 97 97 ··· 141 141 #define CLK_HDMI_DDC 112 142 142 143 143 #define CLK_GPU 114 144 + 145 + /* New clocks imported in H5 */ 146 + #define CLK_BUS_SCR1 115 144 147 145 148 #endif /* _DT_BINDINGS_CLK_SUN8I_H3_H_ */
+4 -1
include/dt-bindings/reset/sun8i-h3-ccu.h
··· 98 98 #define RST_BUS_UART1 50 99 99 #define RST_BUS_UART2 51 100 100 #define RST_BUS_UART3 52 101 - #define RST_BUS_SCR 53 101 + #define RST_BUS_SCR0 53 102 + 103 + /* New resets imported in H5 */ 104 + #define RST_BUS_SCR1 54 102 105 103 106 #endif /* _DT_BINDINGS_RST_SUN8I_H3_H_ */