Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assign fixed PCI domain numbers to the host bridge. #124

Open
wants to merge 92 commits into
base: JH7110_VisionFive2_upstream
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
d141aaf
pinctrl: starfive: jh7110: Fix failure to set irq after CONFIG_PM is …
hal-feng Sep 5, 2023
f691a9c
pinctrl: starfive: jh7110: Add system pm ops to save and restore context
hal-feng Sep 5, 2023
aa9843e
dt-bindings: clock: Add StarFive JH7110 PLL clock generator
SFxingyuwu Jul 17, 2023
46854f1
dt-bindings: soc: starfive: Add StarFive syscon module
littleqyp Jul 17, 2023
f724cac
dt-bindings: clock: jh7110-syscrg: Add PLL clock inputs
SFxingyuwu Jul 17, 2023
f4767c5
dt-bindings: clock: Add StarFive JH7110 System-Top-Group clock and re…
SFxingyuwu Jul 13, 2023
77a0a40
dt-bindings: clock: Add StarFive JH7110 Image-Signal-Process clock an…
SFxingyuwu Jul 13, 2023
54dac13
dt-bindings: clock: Add StarFive JH7110 Video-Output clock and reset …
SFxingyuwu Jul 13, 2023
1c25b88
clk: starfive: Add StarFive JH7110 PLL clock driver
SFxingyuwu Jul 17, 2023
c671f4f
clk: starfive: jh7110-sys: Add PLL clocks source from DTS
SFxingyuwu Jul 17, 2023
8c8dc30
clk: starfive: Add StarFive JH7110 System-Top-Group clock driver
esmil Jul 13, 2023
a9689d9
clk: starfive: Add StarFive JH7110 Image-Signal-Process clock driver
SFxingyuwu Jul 13, 2023
52f4ed0
clk: starfive: Add StarFive JH7110 Video-Output clock driver
SFxingyuwu Jul 13, 2023
108c23b
reset: starfive: jh7110: Add StarFive STG/ISP/VOUT resets support
SFxingyuwu Jul 24, 2023
88a95b7
clk: starfive: jh7110-sys: Fix lower rate of CPUfreq by setting PLL0 …
SFxingyuwu Aug 21, 2023
1848389
watchdog: starfive: Remove #ifdef guards for PM related functions
pcercuei Jul 6, 2023
3db9a11
dt-bindings: timer: Add timer for StarFive JH7110 SoC
SFxingyuwu Aug 14, 2023
895975d
clocksource: Add JH7110 timer driver
SFxingyuwu Aug 14, 2023
4c1d138
dt-bindings: net: motorcomm: Add pad driver strength cfg
SaminGuo Jul 20, 2023
17db06c
net: phy: motorcomm: Add pad drive strength cfg support
SaminGuo Jul 20, 2023
77fbacf
dt-bindings: qspi: cdns,qspi-nor: Add clocks for StarFive JH7110 SoC
littleqyp Aug 4, 2023
46e228b
spi: cadence-quadspi: Add clock configuration for StarFive JH7110 QSPI
littleqyp Aug 4, 2023
0c2db63
dt-bindings: pwm: Add StarFive PWM module
littleqyp Jun 1, 2023
fb841ea
pwm: starfive: Add PWM driver support
littleqyp Jun 1, 2023
09cd548
dt-bindings: spi: add reference file to YAML
littleqyp Jul 24, 2023
5856d83
riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE
jiajieho May 25, 2023
7bcf8ed
crypto: starfive - Convert to platform remove callback returning void
Jul 7, 2023
c30d686
crypto: starfive - Add AES skcipher and aead support
jiajieho Jul 17, 2023
e8427a1
crypto: starfive - fix return value check in starfive_aes_prepare_req()
Jul 31, 2023
fa2a510
dt-bindings: phy: Add StarFive JH7110 USB PHY
mindachen1987 Jun 29, 2023
224e54f
dt-bindings: phy: Add StarFive JH7110 PCIe PHY
mindachen1987 Jun 29, 2023
fb46b52
phy: starfive: Add JH7110 USB 2.0 PHY driver
mindachen1987 Jun 29, 2023
41d07a6
phy: starfive: Add JH7110 PCIE 2.0 PHY driver
mindachen1987 Jun 29, 2023
a702f9a
phy: starfive: fix error code in probe
Jul 18, 2023
fb858bf
usb: cdns3: starfive: Convert to platform remove callback returning void
Jul 7, 2023
74fbbe0
usb: cdns3: Add PHY mode switch to usb2 PHY
mindachen1987 Jul 21, 2023
6b804a6
PCI: microchip: Correct the DED and SEC interrupt bit offsets
Jul 28, 2023
73f3574
PCI: microchip: Enable building driver as a module
Jul 28, 2023
216d50b
PCI: microchip: Align register, offset, and mask names with hw docs
Jul 28, 2023
047b6db
PCI: microchip: Enable event handlers to access bridge and ctrl ptrs
Jul 28, 2023
453badf
PCI: microchip: Clean up initialisation of interrupts
Jul 28, 2023
b168007
PCI: microchip: Gather MSI information from hardware config registers
Jul 28, 2023
214fe2d
PCI: microchip: Re-partition code between probe() and init()
Jul 28, 2023
8a054fb
dt-bindings: PCI: Add PLDA XpressRICH PCIe host common properties
mindachen1987 Sep 7, 2023
528969a
PCI: microchip: Move pcie-microchip-host.c to plda directory
mindachen1987 Sep 7, 2023
172448a
PCI: microchip: Move PLDA IP register macros to pcie-plda.h
mindachen1987 Sep 7, 2023
82e3057
PCI: microchip: Rename data structure and functions
mindachen1987 Sep 7, 2023
fc472b9
PCI: plda: Move the common functions to pcie-plda-host.c
mindachen1987 Sep 7, 2023
0034acc
PCI: plda: Add event interrupt codes and IRQ domain ops
mindachen1987 Sep 7, 2023
3e3818b
PCI: microchip: Rename IRQ init function
mindachen1987 Sep 7, 2023
c1a2e8e
PCI: microchip: Move IRQ init functions to pcie-plda-host.c
mindachen1987 Sep 7, 2023
8f6f6b2
dt-bindings: PCI: Add StarFive JH7110 PCIe controller
mindachen1987 Sep 7, 2023
43f48d1
PCI: starfive: Add JH7110 PCIe controller
mindachen1987 Sep 7, 2023
05160af
ASoC: starfive: jh7110_tdm: Convert to platform remove callback retur…
Jul 7, 2023
3457d5f
ASoC: dt-bindings: Add StarFive JH7110 PWM-DAC controller
hal-feng Aug 14, 2023
395886d
ASoC: starfive: Add JH7110 PWM-DAC driver
hal-feng Aug 14, 2023
4d1f339
ASoC: dt-bindings: snps,designware-i2s: Add StarFive JH7110 SoC support
SFxingyuwu Aug 21, 2023
63b54b1
ASoC: dwc: Use ops to get platform data
SFxingyuwu Aug 21, 2023
05777a8
ASoC: dwc: i2s: Add StarFive JH7110 SoC support
SFxingyuwu Aug 21, 2023
dace284
riscv: dts: starfive: pinfunc: Fix the pins name of I2STX1
SFxingyuwu Aug 2, 2023
1274e1d
dt-bindings: power: Add power-domain header for JH7110
changhuangliang May 19, 2023
0299dff
soc: starfive: Replace SOC_STARFIVE with ARCH_STARFIVE
changhuangliang May 19, 2023
6fd2e3d
soc: starfive: Extract JH7110 pmu private operations
changhuangliang May 19, 2023
c17d77a
soc: starfive: Add JH7110 AON PMU support
changhuangliang May 19, 2023
e153289
dt-bindings: phy: Add starfive,jh7110-dphy-rx
changhuangliang Jul 18, 2023
6353ced
phy: starfive: Add mipi dphy rx support
changhuangliang Jul 18, 2023
c5e5863
phy: starfive: make phys depend on HAS_IOMEM
vinodkoul Jul 25, 2023
2d909fb
phy: starfive: StarFive PHYs should depend on ARCH_STARFIVE
geertu Jul 25, 2023
e2e44e4
media: dt-bindings: cadence-csi2rx: Convert to DT schema
jackzhustf May 23, 2023
b3693eb
media: dt-bindings: cadence-csi2rx: Add resets property
jackzhustf May 23, 2023
858ff55
media: cadence: Add operation on reset
jackzhustf May 23, 2023
b4dc0dc
media: cadence: Add support for external dphy
jackzhustf May 23, 2023
e353ca7
media: cadence: Add support for JH7110 SoC
jackzhustf May 23, 2023
bb10c54
media: dt-bindings: Add JH7110 Camera Subsystem
jackzhustf Aug 24, 2023
b918d5f
media: admin-guide: Add starfive_camss.rst for Starfive Camera Subsystem
jackzhustf Aug 24, 2023
1ace0ff
media: staging: media: starfive: camss: Add core driver
jackzhustf Aug 24, 2023
6cca95e
media: staging: media: starfive: camss: Add video driver
jackzhustf Aug 24, 2023
6c9e274
media: staging: media: starfive: camss: Add ISP driver
jackzhustf Aug 24, 2023
72abbe9
media: staging: media: starfive: camss: Add capture driver
jackzhustf Aug 24, 2023
3a39213
media: staging: media: starfive: camss: Add interrupt handling
jackzhustf Aug 24, 2023
e223b1e
media: staging: media: starfive: camss: Register devices
jackzhustf Aug 24, 2023
d883b40
dt-bindings: display: Add yamls for JH7110 display system
kJugg Aug 1, 2023
9f257a7
drm/fourcc: Add drm/vs tiled modifiers
kJugg Aug 1, 2023
4af2e5f
drm/vs: Register DRM device
kJugg Aug 1, 2023
4dd0e97
drm/vs: Add KMS crtc&plane
kJugg Aug 1, 2023
bafa580
drm/vs: Add hdmi
kJugg Aug 1, 2023
003a1ee
riscv: dts: Enable device-tree overlay support for starfive devices
fmoessbauer Jun 27, 2023
48aa08b
riscv: dts: starfive: Add full support for JH7110 and VisionFive 2 board
hal-feng Apr 11, 2023
596ab26
MAINTAINERS: Update all StarFive entries
hal-feng Apr 11, 2023
20ab944
[NOT-FOR-UPSTREAM] Add starfive_visionfive2_defconfig for test
hal-feng Apr 26, 2023
73a14d3
[NOT-FOR-UPSTREAM] Add readme
hal-feng Dec 20, 2022
bdb039e
Assign fixed PCI domain numbers to the host bridge.
inindev Nov 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions Documentation/admin-guide/media/starfive_camss.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
.. SPDX-License-Identifier: GPL-2.0

.. include:: <isonum.txt>

================================
Starfive Camera Subsystem driver
================================

Introduction
------------

This file documents the driver for the Starfive Camera Subsystem found on
Starfive JH7110 SoC. The driver is located under drivers/staging/media/starfive/
camss.

The driver implements V4L2, Media controller and v4l2_subdev interfaces. Camera
sensor using V4L2 subdev interface in the kernel is supported.

The driver has been successfully used on the Gstreamer 1.18.5 with v4l2src
plugin.


Starfive Camera Subsystem hardware
----------------------------------

The Starfive Camera Subsystem hardware consists of::

|\ +---------------+ +-----------+
+----------+ | \ | | | |
| | | | | | | |
| MIPI |----->| |----->| ISP |----->| |
| | | | | | | |
+----------+ | | | | | Memory |
|MUX| +---------------+ | Interface |
+----------+ | | | |
| | | |---------------------------->| |
| Parallel |----->| | | |
| | | | | |
+----------+ | / | |
|/ +-----------+

- MIPI: The MIPI interface, receiving data from a MIPI CSI-2 camera sensor.

- Parallel: The parallel interface, receiving data from a parallel sensor.

- ISP: The ISP, processing raw Bayer data from an image sensor and producing
YUV frames.


Topology
--------

The media controller pipeline graph is as follows:

.. _starfive_camss_graph:

.. kernel-figure:: starfive_camss_graph.dot
:alt: starfive_camss_graph.dot
:align: center

The driver has 2 video devices:

- capture_raw: The capture device, capturing image data directly from a sensor.
- capture_yuv: The capture device, capturing YUV frame data processed by the
ISP module

The driver has 3 subdevices:

- stf_isp: is responsible for all the isp operations, outputs YUV frames.
- cdns_csi2rx: a CSI-2 bridge supporting up to 4 CSI lanes in input, and 4
different pixel streams in output.
- imx219: an image sensor, image data is sent through MIPI CSI-2.
12 changes: 12 additions & 0 deletions Documentation/admin-guide/media/starfive_camss_graph.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
digraph board {
rankdir=TB
n00000001 [label="{{<port0> 0} | stf_isp\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
n00000001:port1 -> n00000008 [style=dashed]
n00000004 [label="capture_raw\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
n0000000e [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
n0000000e:port1 -> n00000001:port0 [style=dashed]
n0000000e:port1 -> n00000004 [style=dashed]
n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n00000018:port0 -> n0000000e:port0 [style=bold]
}
1 change: 1 addition & 0 deletions Documentation/admin-guide/media/v4l-drivers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Video4Linux (V4L) driver-specific documentation
si470x
si4713
si476x
starfive_camss
vimc
visl
vivid
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/starfive,jh7110-ispcrg.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: StarFive JH7110 Image-Signal-Process Clock and Reset Generator

maintainers:
- Xingyu Wu <[email protected]>

properties:
compatible:
const: starfive,jh7110-ispcrg

reg:
maxItems: 1

clocks:
items:
- description: ISP Top core
- description: ISP Top Axi
- description: NOC ISP Bus
- description: external DVP

clock-names:
items:
- const: isp_top_core
- const: isp_top_axi
- const: noc_bus_isp_axi
- const: dvp_clk

resets:
items:
- description: ISP Top core
- description: ISP Top Axi
- description: NOC ISP Bus

'#clock-cells':
const: 1
description:
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.

'#reset-cells':
const: 1
description:
See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices.

power-domains:
maxItems: 1
description:
ISP domain power

required:
- compatible
- reg
- clocks
- clock-names
- resets
- '#clock-cells'
- '#reset-cells'
- power-domains

additionalProperties: false

examples:
- |
#include <dt-bindings/clock/starfive,jh7110-crg.h>
#include <dt-bindings/power/starfive,jh7110-pmu.h>
#include <dt-bindings/reset/starfive,jh7110-crg.h>

ispcrg: clock-controller@19810000 {
compatible = "starfive,jh7110-ispcrg";
reg = <0x19810000 0x10000>;
clocks = <&syscrg JH7110_SYSCLK_ISP_TOP_CORE>,
<&syscrg JH7110_SYSCLK_ISP_TOP_AXI>,
<&syscrg JH7110_SYSCLK_NOC_BUS_ISP_AXI>,
<&dvp_clk>;
clock-names = "isp_top_core", "isp_top_axi",
"noc_bus_isp_axi", "dvp_clk";
resets = <&syscrg JH7110_SYSRST_ISP_TOP>,
<&syscrg JH7110_SYSRST_ISP_TOP_AXI>,
<&syscrg JH7110_SYSRST_NOC_BUS_ISP_AXI>;
#clock-cells = <1>;
#reset-cells = <1>;
power-domains = <&pwrc JH7110_PD_ISP>;
};
46 changes: 46 additions & 0 deletions Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/starfive,jh7110-pll.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: StarFive JH7110 PLL Clock Generator

description:
These PLLs are high speed, low jitter frequency synthesizers in the JH7110.
Each PLL works in integer mode or fraction mode, with configuration
registers in the sys syscon. So the PLLs node should be a child of
SYS-SYSCON node.
The formula for calculating frequency is
Fvco = Fref * (NI + NF) / M / Q1

maintainers:
- Xingyu Wu <[email protected]>

properties:
compatible:
const: starfive,jh7110-pll

clocks:
maxItems: 1
description: Main Oscillator (24 MHz)

'#clock-cells':
const: 1
description:
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.

required:
- compatible
- clocks
- '#clock-cells'

additionalProperties: false

examples:
- |
clock-controller {
compatible = "starfive,jh7110-pll";
clocks = <&osc>;
#clock-cells = <1>;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/starfive,jh7110-stgcrg.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: StarFive JH7110 System-Top-Group Clock and Reset Generator

maintainers:
- Xingyu Wu <[email protected]>

properties:
compatible:
const: starfive,jh7110-stgcrg

reg:
maxItems: 1

clocks:
items:
- description: Main Oscillator (24 MHz)
- description: HIFI4 core
- description: STG AXI/AHB
- description: USB (125 MHz)
- description: CPU Bus
- description: HIFI4 Axi
- description: NOC STG Bus
- description: APB Bus

clock-names:
items:
- const: osc
- const: hifi4_core
- const: stg_axiahb
- const: usb_125m
- const: cpu_bus
- const: hifi4_axi
- const: nocstg_bus
- const: apb_bus

'#clock-cells':
const: 1
description:
See <dt-bindings/clock/starfive,jh7110-crg.h> for valid indices.

'#reset-cells':
const: 1
description:
See <dt-bindings/reset/starfive,jh7110-crg.h> for valid indices.

required:
- compatible
- reg
- clocks
- clock-names
- '#clock-cells'
- '#reset-cells'

additionalProperties: false

examples:
- |
#include <dt-bindings/clock/starfive,jh7110-crg.h>

stgcrg: clock-controller@10230000 {
compatible = "starfive,jh7110-stgcrg";
reg = <0x10230000 0x10000>;
clocks = <&osc>,
<&syscrg JH7110_SYSCLK_HIFI4_CORE>,
<&syscrg JH7110_SYSCLK_STG_AXIAHB>,
<&syscrg JH7110_SYSCLK_USB_125M>,
<&syscrg JH7110_SYSCLK_CPU_BUS>,
<&syscrg JH7110_SYSCLK_HIFI4_AXI>,
<&syscrg JH7110_SYSCLK_NOCSTG_BUS>,
<&syscrg JH7110_SYSCLK_APB_BUS>;
clock-names = "osc", "hifi4_core",
"stg_axiahb", "usb_125m",
"cpu_bus", "hifi4_axi",
"nocstg_bus", "apb_bus";
#clock-cells = <1>;
#reset-cells = <1>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ properties:
- description: External I2S RX left/right channel clock
- description: External TDM clock
- description: External audio master clock
- description: PLL0
- description: PLL1
- description: PLL2

- items:
- description: Main Oscillator (24 MHz)
Expand All @@ -38,6 +41,9 @@ properties:
- description: External I2S RX left/right channel clock
- description: External TDM clock
- description: External audio master clock
- description: PLL0
- description: PLL1
- description: PLL2

clock-names:
oneOf:
Expand All @@ -52,6 +58,9 @@ properties:
- const: i2srx_lrck_ext
- const: tdm_ext
- const: mclk_ext
- const: pll0_out
- const: pll1_out
- const: pll2_out

- items:
- const: osc
Expand All @@ -63,6 +72,9 @@ properties:
- const: i2srx_lrck_ext
- const: tdm_ext
- const: mclk_ext
- const: pll0_out
- const: pll1_out
- const: pll2_out

'#clock-cells':
const: 1
Expand Down Expand Up @@ -93,12 +105,14 @@ examples:
<&gmac1_rgmii_rxin>,
<&i2stx_bclk_ext>, <&i2stx_lrck_ext>,
<&i2srx_bclk_ext>, <&i2srx_lrck_ext>,
<&tdm_ext>, <&mclk_ext>;
<&tdm_ext>, <&mclk_ext>,
<&pllclk 0>, <&pllclk 1>, <&pllclk 2>;
clock-names = "osc", "gmac1_rmii_refin",
"gmac1_rgmii_rxin",
"i2stx_bclk_ext", "i2stx_lrck_ext",
"i2srx_bclk_ext", "i2srx_lrck_ext",
"tdm_ext", "mclk_ext";
"tdm_ext", "mclk_ext",
"pll0_out", "pll1_out", "pll2_out";
#clock-cells = <1>;
#reset-cells = <1>;
};
Loading