Skip to content
Open
Changes from 1 commit
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
ab23b18
ODROID-XU4: ARM: dma-mapping: increase DMA coherent pool size to 2M
mihailescu2m Oct 21, 2019
a74c9e7
ODROID-XU4: soc: samsung: chipid: Make exynos_chipid_early_init() static
Sep 4, 2019
a82e01e
ODROID-XU4: ARM: dts: exynos: Add support ARM architected timers on E…
mszyprow Aug 28, 2019
c585582
ODROID-XU4: phy: exynos5-usbdrd: Calibrating makes sense only for USB…
mszyprow Jul 19, 2019
b6e5819
ODROID-XU4: drm/exynos/hdmi: add 'HPD' and 'vout' as boot parameters
bkrepo Jan 5, 2017
860fcf7
ODROID-XU4: drm/exynos: add new HDMI PHY pll and resolutions + pre-bu…
mdrjr Jan 1, 2017
a4c0c28
ODROID-XU4: drm/exynos/mixer: never blend the base layer
OtherCrashOverride Apr 9, 2017
a19ce3b
ODROID-XU4: media: s5p-jpeg: Enable decoding with multiple buffers
mihailescu2m Jan 24, 2019
2310715
ODROID-XU4: media: exynos-gsc: fix v4l2 SELECTION api
mihailescu2m Jul 10, 2018
79d5eaa
ODROID-XU4: videobuf2-dc: Move vb2_dc_get_base_sgt() above mmap callb…
Oct 26, 2016
303d1da
ODROID-XU4: videobuf2-dc: Support cacheable MMAP
Oct 26, 2016
e5f91a9
ODROID-XU4: ARM: dma-mapping: add support for non-consistent dma_mmap
mszyprow Feb 15, 2017
831c904
ODROID-XU4: media: s5p-mfc: use cacheable DMA buffers to improve perf…
mihailescu2m Oct 29, 2017
8f0da09
ODROID-XU4: media: s5p-mfc: copy timestamp and timecode in encoder ou…
mihailescu2m Jul 10, 2018
85eafee
ODROID-XU4: media: s5p-mfc: stop streaming before releasing queues
OtherCrashOverride May 19, 2017
b08c0c1
ODROID-XU4: clk: samsung: exynos5420: add VPLL rate table
mihailescu2m Oct 15, 2019
e202388
ODROID-XU4: clk: samsung: exynos5420: Add SET_RATE_PARENT flag to clo…
mszyprow Oct 25, 2019
689cdab
ODROID-XU4: clk: samsung: exynos5420: Keep top G3D clocks enabled
mszyprow Nov 21, 2019
3830820
ODROID-XU4: ARM: dts: exynos5420: add mali dt node and enable mali on…
mihailescu2m Nov 14, 2019
553eeab
ODROID-XU4: thermal: exynos: add support for 8 trip points on Exynos5…
mihailescu2m Jul 10, 2018
6fc99dd
ODROID-XU4: arm: dts: exynos5422: enable Exynos5422 TMU
mihailescu2m Jan 22, 2019
cfbb0fb
ODROID-XU4: arm: dts: exynos: correct the cpu frequencies and voltage…
mihailescu2m Oct 18, 2019
0a56173
ODROID-XU4: thermal: add irq-mode configuration for trip point
Nov 7, 2018
c4b647b
ODROID-XU4: thermal: add new sysfs file for irq-mode
Nov 7, 2018
9fc0476
ODROID-XU4: arm: dts: exynos: enable per cpu thermal trips with irq-m…
mihailescu2m Oct 15, 2019
98a4e76
ODROID-XU4: arm: dts: exynos: enable per cpu thermal trips with irq-m…
mihailescu2m Mar 12, 2019
aebfe71
ODROID-XU4: dt-bindings: ddr: rename lpddr2 directory
Aug 21, 2019
faeeba0
ODROID-XU4: dt-bindings: ddr: add LPDDR3 memories
Aug 21, 2019
25abd88
ODROID-XU4: drivers: memory: extend of_memory by LPDDR3 support
Aug 21, 2019
7cd7ae0
ODROID-XU4: dt-bindings: memory-controllers: add Exynos5422 DMC devic…
Aug 21, 2019
9eeb237
ODROID-XU4: drivers: memory: add DMC driver for Exynos5422
Aug 21, 2019
f8f287e
ODROID-XU4: ARM: dts: exynos: add syscon to clock compatible
Aug 21, 2019
488f252
ODROID-XU4: ARM: dts: exynos: add DMC device for exynos5422
Aug 21, 2019
9a2fba3
ODROID-XU4: ARM: exynos_defconfig: enable DMC driver
Aug 21, 2019
3685fe5
ODROID-XU4: memory: samsung: exynos5422-dmc: Fix kfree() of devm-allo…
Sep 19, 2019
b639d00
ODROID-XU4: dt-bindings: ddr: Add bindings for Samsung LPDDR3 memories
Sep 19, 2019
f0614e4
ODROID-XU4: dt-bindings: memory-controllers: Add Exynos5422 DMC inter…
Oct 2, 2019
28b0636
ODROID-XU4: ARM: dts: exynos: Add interrupt to DMC controller in Exyn…
Oct 2, 2019
564dd71
ODROID-XU4: ARM: dts: exynos: map 0x10000 SFR instead of 0x100 in DMC…
Oct 2, 2019
3b37cbc
ODROID-XU4: memory: samsung: exynos5422-dmc: Add support for interrup…
Oct 2, 2019
91a738e
ODROID-XU4: dt-bindings: memory-controllers: exynos5422-dmc: Correct …
krzk Oct 2, 2019
afa8e39
ODROID-XU4: ARM: dts: Add "syscon" compatible string to chipid node
Sep 10, 2019
37f8113
ODROID-XU4: ARM: dts: Add samsung,asv-bin property for odroidxu3-lite
Sep 10, 2019
1e4ebb6
ODROID-XU4: dt-bindings: arm: samsung: Convert Exynos Chipid bindings…
krzk Sep 7, 2019
c543f0f
ODROID-XU4: PM / OPP: Support adjusting OPP voltages at runtime
bebarino Oct 16, 2019
ca147c5
ODROID-XU4: dt-bindings: arm: samsung: Update the CHIPID binding for ASV
Oct 16, 2019
f7b16d5
ODROID-XU4: soc: samsung: Add Exynos Adaptive Supply Voltage driver
Oct 16, 2019
13610b8
ODROID-XU4: ARM: EXYNOS: Enable exynos-asv driver for ARCH_EXYNOS
Oct 16, 2019
272199d
ODROID-XU4: devfreq: exynos-bus: workaround dev_pm_opp_set_rate() err…
Oct 8, 2019
06aca82
ODROID-XU4: regulator: s2mps11: call shutdown function to poweroff
moonlinux Jul 12, 2015
3dc73d4
ODROID-XU4: regulator: s2mps11: add ethernet power reset in shutdown …
mihailescu2m Jan 18, 2019
322727a
ODROID-XU4: fix eMMC clock settings
mihailescu2m Nov 14, 2019
915454a
ODROID-XU4: config: add default config for odroid-xu4
mihailescu2m Oct 28, 2019
b6a3b5d
ODROID-XU4: ODROID-XU4: Replace defconfig with a ported one from 4.14.y
awesometic Dec 2, 2019
0fd8b85
ODROID-XU4: dts: Add i2c-1, i2c-5 nodes
awesometic Nov 7, 2019
0c4fc21
ODROID-XU4: Add support for SPI1 on the 40 pin header
awesometic Nov 14, 2019
be24829
ODROID-XU4: char: exynos: add /dev/gpiomem device for rootless user G…
bkrepo Jan 10, 2017
98c4000
ODROID-XU4: arm: Set the system revision information
bkrepo Nov 21, 2017
03f9557
ODROID-XU4: defconfig: Enable CONFIG_EXYNOS_GPIOMEM
awesometic Dec 4, 2019
c4c1405
ODROID-XU4: ARM: exynos: add machine description for ODROID-XU3/4
tobetter Nov 10, 2017
64e4707
ODROID-XU4: arm/exynos: No need to use enynos_init_late
awesometic Dec 5, 2019
ea4fba7
ODROID-XU4: arm/exynos: Add vendor name Hardkernel to its H/W informa…
awesometic Dec 5, 2019
51c6103
ODROID-XU4: char/exynos-gpiomem: Remove unnecessary kernel logs notic…
awesometic Oct 22, 2019
9d4c597
ODROID-XU4: drivers/fbtft: Add fb_hktft35 module for Hardkernel 3.5 i…
awesometic Nov 18, 2019
d4c18c1
ODROID-XU4: drivers/fbtft: Add fb_hktft32 module for Hardkernel 3.2 i…
awesometic Nov 21, 2019
005a5a1
ODROID-XU4: defconfig: Enable FB_TFT for Hardkernel LCDs
awesometic Dec 5, 2019
283d779
ODROID-XU4: dts: Add nodes for Hardkernel LCDs of 2 HATs, Cloudshell,…
awesometic Dec 5, 2019
84f93bc
ODROID-XU4: Introduce device tree overlay
awesometic Dec 5, 2019
13f754d
ODROID-N2: doc: dt: bindings: usb: dwc3: Update entries for disabling…
superna9999 Oct 14, 2019
79ebf51
ODROID-N2: usb: dwc3: gadget: Add support for disabling SS instances …
superna9999 Oct 14, 2019
d0e023e
ODROID-N2: arm64: dts: g12-common: add parkmode_disable_ss_quirk on D…
superna9999 Oct 14, 2019
e7f5c4c
ODROID-N2: arm64/dts: add 'meson64_odroidn2.dts' for compability
tobetter Oct 1, 2019
f7eeda5
ODROID-N2: arm64: dts: meson: add audio fifo depths
jbrun3t Dec 18, 2019
5d5e734
ODROID-N2: ASoC: meson: rework: g12a tohdmitx codec
jbrun3t Aug 8, 2019
7a1c911
ODROID-N2: ASoC: meson: add toacodec dt-bindings
jbrun3t Aug 12, 2019
005efe2
ODROID-N2: ASoC: meson: add g12 internal DAC glue
jbrun3t Aug 12, 2019
f6cbf0a
ODROID-N2: ASoC: meson: add t9015 internal DAC driver
jbrun3t Aug 14, 2019
b2bb325
ODROID-N2: ASoC: meson: axg-card: add toacodec support
jbrun3t Aug 14, 2019
c18b115
ODROID-N2: arm64: dts: meson: g12a: add internal DAC
jbrun3t Aug 14, 2019
1abe791
ODROID-N2: arm64: dts: meson: g12a: add internal DAC glue
jbrun3t Aug 14, 2019
1d71e90
ODROID-N2: arm64: dts: meson: u200: add audio support
jbrun3t Mar 18, 2019
3789f81
ODROID-N2: ASoC: meson: add aiu bus support
jbrun3t Oct 22, 2019
17de731
ODROID-N2: ASoC: meson: aiu: add i2s fifo support
jbrun3t Oct 22, 2019
e318ee2
ODROID-N2: ASoC: meson: aiu: add spdif fifo support
jbrun3t Oct 22, 2019
a747a52
ODROID-N2: ASoC: meson: aiu: add i2s encoder support
jbrun3t Oct 22, 2019
23644c6
ODROID-N2: ASoC: meson: aiu: add spdif encoder support
jbrun3t Oct 22, 2019
ff9ad90
ODROID-N2: ASoC: meson: extract utils from axg sound card
jbrun3t Oct 22, 2019
07cf7ba
ODROID-N2: ASoC: meson: add gx card support
jbrun3t Oct 22, 2019
9f03164
ODROID-N2: arm64: dts: meson-gx: add playback audio devices
jbrun3t Oct 22, 2019
6db8a6e
ODROID-N2: arm64: dts: meson: enable audio playback on p230/q200
jbrun3t Oct 22, 2019
133b15c
ODROID-N2: arm64: dts: meson: add libretech cc s905x audio playback
jbrun3t Oct 22, 2019
2b146f7
ODROID-N2: arm64: dts: meson: add libretech ac s805x audio playback
jbrun3t Dec 4, 2019
f9e9925
ODROID-N2: ASoC: hdmi-codec: re-introduce mutex locking again
jbrun3t Oct 23, 2019
d81e14e
ODROID-N2: sound/soc: remove mono channel as it currently doesn't wor…
ckkim Feb 20, 2020
c5d6996
ODROID-N2: arm64/dts: Add default sound card
ckkim Feb 20, 2020
3cb5c07
ODROID-N2: sound/soc: add audio module for g12a, g12b, sm1
ckkim Feb 20, 2020
db623d8
ODROID-N2: arm64/dts: Fix sound card bug
ckkim Feb 21, 2020
421813e
ODOROID-XU4: FIXME: Revert "regulator: core: Let boot-on regulators b…
tobetter Feb 27, 2020
121f457
Merge tag 'v5.4.23' into stable-v5.4
tobetter Mar 6, 2020
4127ecc
Merge tag 'v5.4.24' into stable-v5.4
tobetter Mar 6, 2020
da37d8b
ODROID-C2: arm64/dts: add 'meson64_odroidc2.dts' for compability
tobetter Mar 9, 2020
e389d51
Merge tag 'v5.4.25' into stable-v5.4
tobetter Mar 13, 2020
2d4ec07
ODROID-N2: arm64/dts: support Ulta High Speed MMC card
ckkim Mar 3, 2020
6edffda
ODROID-XU4: arm/dts: remove write-protect pin from SD card
ckkim Mar 5, 2020
e424b12
ODROID-XU4: Update hack avoiding the invalid temperature by TMU broken
charles-park Jun 1, 2018
94f6a09
ODROID-N2: dt-bindings: clk: g12a-clkc: add SPICC SCLK Source clock IDs
superna9999 Feb 19, 2020
016dffa
ODROID-N2: clk: meson: g12a: add support for the SPICC SCLK Source cl…
superna9999 Feb 19, 2020
778dd3f
ODROID-N2: spi: meson-spicc: remove unused variables
superna9999 Mar 12, 2020
b06f077
ODROID-N2: spi: meson-spicc: enhance output enable feature
Mar 12, 2020
2bf8cc6
ODROID-N2: spi: meson-spicc: add a linear clock divider support
Mar 12, 2020
6249988
ODROID-N2: spi: meson-spicc: support max 80MHz clock
superna9999 Mar 12, 2020
f99f193
ODROID-N2: spi: meson-spicc: add min sclk for each compatible
superna9999 Mar 12, 2020
3d4b46f
ODROID-N2: spi: meson-spicc: setup IO line delay
superna9999 Mar 12, 2020
dc622c3
ODROID-N2: spi: meson-spicc: adapt burst handling for G12A support
superna9999 Mar 12, 2020
365248b
ODROID-N2: dt-bindings: spi: amlogic, meson-gx-spicc: add Amlogic G12…
superna9999 Mar 12, 2020
f1fdfe9
ODROID-N2: spi: meson-spicc: add support for Amlogic G12A
superna9999 Mar 12, 2020
08dbcae
ODROID-N2: arm64: dts: meson-g12-common: add spicc controller nodes
superna9999 Mar 13, 2020
0ed97c0
Merge tag 'v5.4.26' into odroid-5.4.y
tobetter Mar 21, 2020
afbb709
Merge tag 'v5.4.27' into odroid-5.4.y
tobetter Mar 25, 2020
7ed9082
Merge tag 'v5.4.28' into odroid-5.4.y
tobetter Mar 25, 2020
69361cd
ODROID-C4: arm64/dts: add new board for Hardkernel ODROID-C4
tobetter Mar 14, 2020
e84454b
ODROID-N2: arm64/dts: Add gpio-line-names
hhk7734 Mar 13, 2020
67fe759
ODROID-N2: ARM64/dts: add spicc0 node
hhk7734 Mar 27, 2020
7f92f2d
ODROID-N2: ARM64/dts: add uart_A node
hhk7734 Mar 27, 2020
12cf79a
ODROID-N2: ARM64/dts: add i2c2, i2c3 node
hhk7734 Mar 27, 2020
d4e3b27
ODROID-N2: ARM64/dts: add saradc node
hhk7734 Mar 27, 2020
eea48b9
ODROID-N2: Add D-WAV Multitouch driver.
hhk7734 Mar 5, 2020
b46dd57
Merge tag 'v5.4.29' into odroid-5.4.y
tobetter Apr 5, 2020
d7f2f07
Merge tag 'v5.4.30' into odroid-5.4.y
tobetter Apr 5, 2020
3b4dc50
Merge tag 'v5.4.31' into odroid-5.4.y
tobetter Apr 8, 2020
4681005
Merge tag 'v5.4.32' into odroid-5.4.y
tobetter Apr 13, 2020
c4c9009
ODROID-C4: arm64/dts: add saradc node
hhk7734 Apr 14, 2020
e50729e
ODROID-C4: arm64/dts: add spicc0 node
hhk7734 Apr 14, 2020
e97e366
ODROID-C4: arm64/dts: add uart_A node
hhk7734 Apr 14, 2020
56cc8c9
ODROID-C4: arm64/dts: add gpio-line-names
hhk7734 Apr 14, 2020
537a0b7
Merge tag 'v5.4.33' into odroid-5.4.y
tobetter Apr 20, 2020
44f7dc4
ODROID-C4: arm64/dts: fix regulator control GPIO
hhk7734 Apr 14, 2020
ecfece8
ODROID-N2: arm64: dts: meson: sm1: set gpio interrupt controller comp…
jbrun3t Sep 2, 2019
383ba12
ODROID-N2: thermal: amlogic: Add thermal driver to support G12 SoCs
glaroque Oct 4, 2019
53e88d9
ODROID-N2: thermal: amlogic: Appease the kernel-doc deity
Nov 20, 2019
0fd7c5b
ODROID-N2: arm64: dts: meson: g12: add temperature sensor
glaroque Oct 4, 2019
453919d
ODROID-N2: arm64/dts: modify gpio-line-names
hhk7734 Apr 21, 2020
40b58dc
ODROID-N2: arm64/dts: modify i2c alias bus number
hhk7734 Apr 21, 2020
2a749af
Odroid-N2: arm64/dts: fix audio model name
pvizeli Apr 27, 2020
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
Prev Previous commit
Next Next commit
ODROID-N2: spi: meson-spicc: add support for Amlogic G12A
Add support for the SPICC controllers on the Amlogic G12A SoCs family.

The G12A SPICC controllers inherit from the AXG enhanced registers but
takes an external pclk for the baud rate generator and can achieve up to
166MHz SCLK.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Change-Id: I2e96db3e3fba657a3f136e7a4c70f369a11b77bc
  • Loading branch information
superna9999 authored and tobetter committed Mar 17, 2020
commit f1fdfe9fe98c19d211bdb40ff5708feb2b186f9c
54 changes: 46 additions & 8 deletions drivers/spi/spi-meson-spicc.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,15 @@ struct meson_spicc_data {
unsigned int fifo_size;
bool has_oen;
bool has_enhance_clk_div;
bool has_pclk;
};

struct meson_spicc_device {
struct spi_master *master;
struct platform_device *pdev;
void __iomem *base;
struct clk *core;
struct clk *pclk;
struct clk *clk;
struct spi_message *message;
struct spi_transfer *xfer;
Expand Down Expand Up @@ -536,6 +538,10 @@ static void meson_spicc_cleanup(struct spi_device *spi)
* Clk path for AXG series:
* src -> pow2 fixed div -> pow2 div -> mux -> out
* src -> enh fixed div -> enh div -> mux -> out
*
* Clk path for G12A series:
* pclk -> pow2 fixed div -> pow2 div -> mux -> out
* pclk -> enh fixed div -> enh div -> mux -> out
*/

static int meson_spicc_clk_init(struct meson_spicc_device *spicc)
Expand Down Expand Up @@ -564,7 +570,10 @@ static int meson_spicc_clk_init(struct meson_spicc_device *spicc)
init.name = name;
init.ops = &clk_fixed_factor_ops;
init.flags = 0;
parent_data[0].hw = __clk_get_hw(spicc->core);
if (spicc->data->has_pclk)
parent_data[0].hw = __clk_get_hw(spicc->pclk);
else
parent_data[0].hw = __clk_get_hw(spicc->core);
init.num_parents = 1;

pow2_fixed_div->mult = 1,
Expand Down Expand Up @@ -611,7 +620,10 @@ static int meson_spicc_clk_init(struct meson_spicc_device *spicc)
init.name = name;
init.ops = &clk_fixed_factor_ops;
init.flags = 0;
parent_data[0].hw = __clk_get_hw(spicc->core);
if (spicc->data->has_pclk)
parent_data[0].hw = __clk_get_hw(spicc->pclk);
else
parent_data[0].hw = __clk_get_hw(spicc->core);
init.num_parents = 1;

enh_fixed_div->mult = 1,
Expand Down Expand Up @@ -670,7 +682,7 @@ static int meson_spicc_probe(struct platform_device *pdev)
{
struct spi_master *master;
struct meson_spicc_device *spicc;
int ret, irq, rate;
int ret, irq;

master = spi_alloc_master(&pdev->dev, sizeof(*spicc));
if (!master) {
Expand Down Expand Up @@ -719,12 +731,26 @@ static int meson_spicc_probe(struct platform_device *pdev)
goto out_master;
}

if (spicc->data->has_pclk) {
spicc->pclk = devm_clk_get(&pdev->dev, "pclk");
if (IS_ERR(spicc->pclk)) {
dev_err(&pdev->dev, "pclk clock request failed\n");
ret = PTR_ERR(spicc->pclk);
goto out_master;
}
}

ret = clk_prepare_enable(spicc->core);
if (ret) {
dev_err(&pdev->dev, "core clock enable failed\n");
goto out_master;
}
rate = clk_get_rate(spicc->core);

ret = clk_prepare_enable(spicc->pclk);
if (ret) {
dev_err(&pdev->dev, "pclk clock enable failed\n");
goto out_master;
}

device_reset_optional(&pdev->dev);

Expand All @@ -737,17 +763,14 @@ static int meson_spicc_probe(struct platform_device *pdev)
SPI_BPW_MASK(8);
master->flags = (SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX);
master->min_speed_hz = spicc->data->min_speed_hz;
master->max_speed_hz = spicc->data->max_speed_hz;
master->setup = meson_spicc_setup;
master->cleanup = meson_spicc_cleanup;
master->prepare_message = meson_spicc_prepare_message;
master->unprepare_transfer_hardware = meson_spicc_unprepare_transfer;
master->transfer_one = meson_spicc_transfer_one;
master->use_gpio_descriptors = true;

/* Setup max rate according to the Meson datasheet */
master->max_speed_hz = min_t(unsigned int, rate >> 1,
spicc->data->max_speed_hz);

meson_spicc_oen_enable(spicc);

ret = meson_spicc_clk_init(spicc);
Expand All @@ -766,6 +789,7 @@ static int meson_spicc_probe(struct platform_device *pdev)

out_clk:
clk_disable_unprepare(spicc->core);
clk_disable_unprepare(spicc->pclk);

out_master:
spi_master_put(master);
Expand All @@ -781,6 +805,7 @@ static int meson_spicc_remove(struct platform_device *pdev)
writel(0, spicc->base + SPICC_CONREG);

clk_disable_unprepare(spicc->core);
clk_disable_unprepare(spicc->pclk);

return 0;
}
Expand All @@ -799,6 +824,15 @@ static const struct meson_spicc_data meson_spicc_axg_data = {
.has_enhance_clk_div = true,
};

static const struct meson_spicc_data meson_spicc_g12a_data = {
.max_speed_hz = 166666666,
.min_speed_hz = 50000,
.fifo_size = 15,
.has_oen = true,
.has_enhance_clk_div = true,
.has_pclk = true,
};

static const struct of_device_id meson_spicc_of_match[] = {
{
.compatible = "amlogic,meson-gx-spicc",
Expand All @@ -808,6 +842,10 @@ static const struct of_device_id meson_spicc_of_match[] = {
.compatible = "amlogic,meson-axg-spicc",
.data = &meson_spicc_axg_data,
},
{
.compatible = "amlogic,meson-g12a-spicc",
.data = &meson_spicc_g12a_data,
},
{ /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, meson_spicc_of_match);
Expand Down