Age | Commit message (Collapse) | Author | Files | Lines |
|
Add Dubhe FPGA defconfig.
Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
|
|
Add StarFive Dubhe Kconfig option which selects SoC specific
and common drivers that is required for this SoC.
Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
|
|
Add Dubhe FPGA device tree support. Dubhe is a RISC-V CPU with ISA rv64imafdcbhnv.
Dubhe FPGA consists of one Dubhe CPU, PLIC, CLINT, SPI, UART and 8GB
memory in hardware.
Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com>
|
|
For convenience this also adds a small beaglev_defconfig and the
firmware needed for the brcmfmac driver along with the signed regulatory
database.
The firmware is from the linux-firmware repo and the regulatory database
from the wireless-regdb Fedora package.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Drew Fustini <drew@beagleboard.org>
|
|
Signed-off-by: TekkamanV <tekkamanv@starfivetech.com>
|
|
Based on the device tree in https://github.com/starfive-tech/u-boot/
with contributions from:
yanhong.wang <yanhong.wang@starfivetech.com>
Huan.Feng <huan.feng@starfivetech.com>
ke.zhu <ke.zhu@starfivetech.com>
yiming.li <yiming.li@starfivetech.com>
jack.zhu <jack.zhu@starfivetech.com>
Samin Guo <samin.guo@starfivetech.com>
Chenjieqin <Jessica.Chen@starfivetech.com>
bo.li <bo.li@starfivetech.com>
Rearranged, cleanups, fixes and TPS65086 added by Emil.
Cleanups, fixes, LED and clocks added by Geert.
Cleanups and GPIO fixes from Drew.
Thermal zone added by Stephen.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Stephen L Arnold <nerdboy@gentoo.org>
Signed-off-by: Drew Fustini <drew@beagleboard.org>
|
|
** Do not upstream **
This is hacky fix just for testing. The actual patch would read the
RISCV_UNCACHED_OFFSET from the DT for only the non-coherent devices.
All other devices on beagleV and all other platform should just set
dma_default_coherent to true.
[Emil: remove spurious whitespace and fix format string warning]
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
This IP is also used on the StarFive JH7100 riscv64 SoC and presumably
also the upcoming JH7110 SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Additional update from Prashant Gaikwad <pgaikwad@nvidia.com>
Adapted for Linux 5.13 and the BeagleV Starlight board by
<cybergaszcz@gmail.com>
|
|
_ALIGN_UP() is being removed by commit efcec32fe84ab4ee ("riscv: Cleanup
unused functions") in riscv/for-next:
drivers/video/fbdev/starfive/starfive_displayer.c: In function ‘of_parse_wr_cmd’:
drivers/video/fbdev/starfive/starfive_displayer.c:616:27: error: implicit declaration of function ‘_ALIGN_UP’ [-Werror=implic
it-function-declaration]
616 | dev_cmds->cmds = kzalloc(_ALIGN_UP(alloc_bytes, 4), GFP_KERNEL);
| ^~~~~~~~~
Just use roundup() instead.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
starfive,vpp-lcdc 12000000.sfivefb: can't request region for resource [mem 0xfb000000-0xfcffffff]
starfive,vpp-lcdc 12000000.sfivefb: Fail to allocate video RAM
starfive,vpp-lcdc 12000000.sfivefb: starfive fb init fail
starfive,vpp-lcdc 12000000.sfivefb: fb info init FAIL
starfive,vpp-lcdc: probe of 12000000.sfivefb failed with error -16
devm_ioremap_resource() calls devm_request_mem_region(), which fails as
the reserved memory for the frame buffer is already present in the
resource list, cfr. /proc/iomem:
fb000000-fcffffff : Reserved
Fix this by mapping the frame buffer memory using devm_ioremap().
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L0 ':
tda998x.c:(.text+0x51c): undefined reference to `drm_encoder_cleanup'
riscv64-linux-gnu-ld: tda998x.c:(.text+0x534): undefined reference to `drm_encoder_cleanup'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L75':
tda998x.c:(.text+0x564): undefined reference to `drm_of_find_possible_crtcs'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `tda998x_encoder_destroy':
tda998x.c:(.text+0x58a): undefined reference to `drm_encoder_init'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `tda998x_bind':
tda998x.c:(.text+0x5b2): undefined reference to `drm_bridge_attach'
riscv64-linux-gnu-ld: tda998x.c:(.text+0x5c0): undefined reference to `drm_encoder_cleanup'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L0 ':
tda998x.c:(.text+0x692): undefined reference to `drm_bridge_remove'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L124':
tda998x.c:(.text+0x904): undefined reference to `hdmi_infoframe_pack'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L135':
tda998x.c:(.text+0x9e8): undefined reference to `drm_connector_cleanup'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L0 ':
tda998x.c:(.text+0xa00): undefined reference to `drm_connector_cleanup'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L143':
tda998x.c:(.text+0xa56): undefined reference to `drm_connector_init'
riscv64-linux-gnu-ld: tda998x.c:(.text+0xa66): undefined reference to `drm_connector_attach_encoder'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `tda998x_bridge_detach':
tda998x.c:(.text+0xa8a): undefined reference to `__drm_err'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L189':
tda998x.c:(.text+0xd16): undefined reference to `drm_do_get_edid'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L0 ':
tda998x.c:(.text+0xd34): undefined reference to `drm_connector_update_edid_property'
riscv64-linux-gnu-ld: tda998x.c:(.text+0xd4e): undefined reference to `drm_add_edid_modes'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L165':
tda998x.c:(.text+0xd5a): undefined reference to `drm_detect_monitor_audio'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L0 ':
tda998x.c:(.text+0xfb0): undefined reference to `__drm_dbg'
riscv64-linux-gnu-ld: tda998x.c:(.text+0x108a): undefined reference to `drm_kms_helper_hotplug_event'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L283':
tda998x.c:(.text+0x1844): undefined reference to `drm_hdmi_avi_infoframe_from_display_mode'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.L361':
tda998x.c:(.text+0x2078): undefined reference to `drm_bridge_add'
riscv64-linux-gnu-ld: drivers/video/fbdev/starfive/tda998x.o: in function `.LANCHOR0':
tda998x.c:(.rodata+0x90): undefined reference to `drm_helper_connector_dpms'
riscv64-linux-gnu-ld: tda998x.c:(.rodata+0x98): undefined reference to `drm_atomic_helper_connector_reset'
riscv64-linux-gnu-ld: tda998x.c:(.rodata+0xb0): undefined reference to `drm_helper_probe_single_connector_modes'
riscv64-linux-gnu-ld: tda998x.c:(.rodata+0xd8): undefined reference to `drm_atomic_helper_connector_duplicate_state'
riscv64-linux-gnu-ld: tda998x.c:(.rodata+0xe0): undefined reference to `drm_atomic_helper_connector_destroy_state'
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
|
|
Signed-off-by: Stephen L Arnold <nerdboy@gentoo.org>
|
|
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Fix sf_fb_map_video_memory in starfive_fb.c
|
|
|
|
This macro was never implemented and completely removed upstream.
Signed-off-by: TekkamanV <tekkamanv@starfivetech.com>
|
|
1, add ov5640&sc2235 drivers, update stf_isp
2, add MIPI/CSI/DSI drivers for VIC7100
|
|
Signed-off-by: Matteo Croce <mcroce@microsoft.com>
|
|
|
|
[FIXME] why we can not do it in U-boot?
[geert: Rebase to v5.13-rc1]
[emil: Initialize gpios before registering driver]
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
iort_dma_setup() is being removed by commit db59e1b6e49201be ("ACPI:
arm64: Move DMA setup operations out of IORT") in iommu/next:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_async_
do_memcpy’:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:152:2: error: implicit decl
aration of function ‘iort_dma_setup’ [-Werror=implicit-function-declaration]
152 | iort_dma_setup(dma_dev, &dma_addr, &dma_size);
| ^~~~~~~~~~~~~~
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:153:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
153 | iommu = iort_iommu_configure_id(dma_dev, NULL);
| ^
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_memcpy_raw’:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:223:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
223 | iommu = iort_iommu_configure_id(dma_dev, NULL);
| ^
iort_dma_setup() and iort_iommu_configure_id() are part of the ARM64
ACPI implementation. As CONFIG_ACPI_IORT cannot be enabled on RISC-V,
they were dummies anyway, so these calls can just be removed.
[Emil: remove unused local variables too]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
---
Boot-tested, but the affected code paths were not exercised.
|
|
Descriptor management was simplified with commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ef6fb2d6f1abd56cc067c694253ea362159b5ac3
Code added to dw-axi-dmac-platform driver due to VIC7100 Cache Coherency
issues needed follow those changes.
Signed-off-by: Michael Scott <mike@foundries.io>
|
|
|
|
Clear CNTR of PWM after setting period & duty_cycle
|
|
|
|
|
|
[Emil: fix suggested by Geert Uytterhoeven <geert@linux-m68k.org>]
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
This makes it easier to find out which driver passes a wrong address
range.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
The first DMAC instance in the StarFive JH7100 SoC supports 16 DMA
channels.
FIXME Given there are more changes to the driver than just increasing
DMAC_MAX_CHANNELS, we probably need a new compatible value, too.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
The only way to reset the BeagleV Starlight v0.9 board[1] properly is to
tell the PMIC to reset itself which will then assert the external reset
lines of the SoC, USB hub and ethernet phy.
This adds an mfd cell entry for the reset driver doing just that.
[1] https://github.com/beagleboard/beaglev-starlight
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
The only way to reset the BeagleV Starlight v0.9 board[1] properly is to
tell the PMIC to reset itself which will then assert the external reset
lines of the SoC, USB hub and ethernet phy.
This adds a driver to register a reset handler to do just that.
[1] https://github.com/beagleboard/beaglev-starlight
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
|
The BeagleV Starlight v0.9 board[1] doesn't have the IRQB line routed to
the SoC, but it is still useful to be able to reach the PMIC over I2C
for the other functionality it provides such as GPIOs and regulator
settings.
[1] https://github.com/beagleboard/beaglev-starlight
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
|
|
This converts the tps65086.txt binding description to YAML schema so
dts files can be verified automatically.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Register definitions and conversion constants based on sfctemp driver by
Samin in the StarFive 5.10 kernel.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Signed-off-by: Samin Guo <samin.guo@starfivetech.com>
|
|
Add bindings for the temperature sensor on the StarFive JH7100 SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Reviewed-by: Rob Herring <robh@kernel.org>
|
|
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Add GPIO driver for the StarFive JH7100 SoC [1] used on the
BeagleV Starlight JH7100 board [2].
[1] https://github.com/starfive-tech/beaglev_doc/
[2] https://github.com/beagleboard/beaglev-starlight
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
Signed-off-by: Huan Feng <huan.feng@starfivetech.com>
Signed-off-by: Drew Fustini <drew@beagleboard.org>
|
|
Add bindings for the GPIO controller in the StarFive JH7100 SoC [1].
[1] https://github.com/starfive-tech/beaglev_doc
Signed-off-by: Drew Fustini <drew@beagleboard.org>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Add a preliminary driver for the StarFive JH7100 Clock Generator,
based on work by Ahmad Fatoum for Barebox.
Functional differences compared to the Barebox driver:
- Addition of starfive_clk_pll_mult(), to make the PLL outputs
reasonable,
- Add temporary overrides for critical clocks (uart, i2c, spi) until
we get the clock tree right, so we don't have to keep dummy clocks
like uartclk and hs_uartclk in the DTS.
This driver sets clk_ignore_unused, else the system locks up when all
clocks deemed unused are disabled.
To be updated when the documentation becomes available.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Make clk_ignore_unused public, so the StarFive JH7100 Clock Generator
driver can set the flag.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Add preliminary Device Tree bindings for the StarFive JH7100 Clock
Generator.
To be verified against documentation when it becomes available.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Add all resets for the StarFive JH7100 Reset Controller.
Based on work by Ahmad Fatoum for Barebox, with "JH7100_" prefixes added
to all definitions.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
|
Add all clock outputs for the StarFive JH7100 Clock Generator.
Based on work by Ahmad Fatoum for Barebox, with "JH7100_" prefixes added
to all definitions.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|